OLD | NEW |
1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 // Looking up a library should not make the symbols reachable from main lookup | 5 // Looking up a library should not make the symbols reachable from main lookup |
6 // unless we explicitly pass the global flag. | 6 // unless we explicitly pass the global flag. |
7 | 7 |
8 import 'dart:fletch.ffi'; | 8 import 'dart:dartino.ffi'; |
9 import "package:expect/expect.dart"; | 9 import "package:expect/expect.dart"; |
10 | 10 |
11 bool isArgumentError(e) => e is ArgumentError; | 11 bool isArgumentError(e) => e is ArgumentError; |
12 | 12 |
13 void main() { | 13 void main() { |
14 var libPath = ForeignLibrary.bundleLibraryName('ffi_test_local_library'); | 14 var libPath = ForeignLibrary.bundleLibraryName('ffi_test_local_library'); |
15 ForeignLibrary fl = new ForeignLibrary.fromName(libPath); | 15 ForeignLibrary fl = new ForeignLibrary.fromName(libPath); |
16 Expect.throws( | 16 Expect.throws( |
17 () => ForeignLibrary.main.lookup('memuint32'), | 17 () => ForeignLibrary.main.lookup('memuint32'), |
18 isArgumentError); | 18 isArgumentError); |
19 | 19 |
20 libPath = ForeignLibrary.bundleLibraryName('ffi_test_library'); | 20 libPath = ForeignLibrary.bundleLibraryName('ffi_test_library'); |
21 ForeignLibrary flGlobal = new ForeignLibrary.fromName(libPath, global: true); | 21 ForeignLibrary flGlobal = new ForeignLibrary.fromName(libPath, global: true); |
22 var memuint32 = ForeignLibrary.main.lookup('memuint32'); | 22 var memuint32 = ForeignLibrary.main.lookup('memuint32'); |
23 var memory = | 23 var memory = |
24 new ForeignMemory.fromAddressFinalized(memuint32.pcall$0().address, 16); | 24 new ForeignMemory.fromAddressFinalized(memuint32.pcall$0().address, 16); |
25 Expect.equals(memory.getUint32(0), 0); | 25 Expect.equals(memory.getUint32(0), 0); |
26 Expect.equals(memory.getUint32(4), 1); | 26 Expect.equals(memory.getUint32(4), 1); |
27 Expect.equals(memory.getUint32(8), 65536); | 27 Expect.equals(memory.getUint32(8), 65536); |
28 Expect.equals(memory.getUint32(12), 4294967295); | 28 Expect.equals(memory.getUint32(12), 4294967295); |
29 } | 29 } |
OLD | NEW |