dart-sdk/tests/ffi/vmspecific_object_gc_test.dart
Martin Kustermann c52acadd15 [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific
The separation will allow flutter/flutter integration tests to run the
non-vmspecific parts.

Change-Id: I0e771f1247ec62d2f0c3faa95ee10560e62524f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127144
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2019-12-04 15:56:08 +00:00

35 lines
823 B
Dart

// Copyright (c) 2019, 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.
//
// Tests GC of Pointer objects.
//
// SharedObjects=ffi_test_functions
import 'dart:ffi';
import "package:expect/expect.dart";
import 'dylib_utils.dart';
DynamicLibrary ffiTestFunctions = dlopenPlatformSpecific("ffi_test_functions");
final triggerGc = ffiTestFunctions
.lookupFunction<Void Function(), void Function()>("TriggerGC");
void main() async {
testGC();
}
dynamic bar;
Future<void> testGC() async {
bar = Pointer<Int8>.fromAddress(11);
// Verify that the objects manufactured by 'fromAddress' can be scanned by the
// GC.
triggerGc();
Expect.equals(11, bar.address);
}