| // Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:kernel/binary/ast_from_binary.dart' show ParseError; |
| |
| import 'utils.dart'; |
| |
| void main() { |
| Uri uri = Uri.parse("foo://bar.dart"); |
| Library lib1 = new Library(uri, fileUri: uri); |
| Component c1 = new Component(libraries: [lib1]); |
| List<int> serialized = serializeComponent(c1); |
| // The last 4 bytes is the size entry in the index. Overwrite that with 0's. |
| for (int i = serialized.length - 4; i < serialized.length; i++) { |
| serialized[i] = 0; |
| } |
| bool gotExpectedException = false; |
| try { |
| loadComponentFromBytes(serialized); |
| throw "The above line should have thrown."; |
| } on ParseError catch (e) { |
| if (e.toString().contains("invalid size")) { |
| gotExpectedException = true; |
| } |
| } |
| if (!gotExpectedException) { |
| throw "Didn't get the right exception!"; |
| } |
| } |