6de2588d56
Migrates vmspecific_enable_ffi_test.dart and abi_specific_int_incomplete_aot_test.dart away from legacy multi-test markers. Since these tests verify VM/gen_snapshot compile-time errors (not CFE errors), they cannot use // [cfe] expectations. Instead, they now spawn a subprocess and verify the expected error is produced. - vmspecific_enable_ffi_test: Runs helper with --enable-ffi=false, checks for error - abi_specific_int_incomplete_aot_test: Compiles helper with `dart compile aot-snapshot`, checks for error Both tests self-spawn AOT tooling (gen_snapshot) or the JIT `dart` CLI, so they only run on the dartkp host bots and are skipped elsewhere (ia32, android, fuchsia, qemu) via tests/ffi/ffi.status. Fixes https://github.com/dart-lang/sdk/issues/60212 Change-Id: Ib2482c3172b20a4366f984da33544fc515b540c4 Cq-Include-Trybots: dart/try:vm-aot-android-debug-arm64c-try,vm-aot-android-debug-arm_x64-try,vm-aot-linux-debug-arm64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-debug-arm64-try,vm-aot-mac-debug-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try,vm-aot-win-debug-arm64-try,vm-aot-win-debug-x64-try,vm-aot-win-debug-x64c-try,vm-asan-linux-release-arm64-try,vm-asan-linux-release-x64-try,vm-asan-mac-release-arm64-try,vm-asan-win-release-x64-try,vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try,vm-fuchsia-release-x64-try,vm-msan-linux-release-arm64-try,vm-msan-linux-release-x64-try,vm-tsan-linux-release-arm64-try,vm-tsan-linux-release-x64-try,vm-tsan-mac-release-arm64-try,vm-ubsan-linux-release-arm64-try,vm-ubsan-linux-release-x64-try,vm-ubsan-mac-release-arm64-try,vm-ubsan-win-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508020 Commit-Queue: Samuel Rawlins <srawlins@google.com> Auto-Submit: Ankit Ranjan <ankitranjandev@gmail.com> Reviewed-by: Daco Harkes <dacoharkes@google.com> Reviewed-by: Samuel Rawlins <srawlins@google.com>
39 lines
1.1 KiB
Dart
39 lines
1.1 KiB
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.
|
|
//
|
|
// Dart test program for testing the --enable-ffi=false flag.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:expect/expect.dart';
|
|
import 'package:path/path.dart' as path;
|
|
|
|
final _execSuffix = Platform.isWindows ? '.exe' : '';
|
|
|
|
void main() {
|
|
final buildDir = path.dirname(Platform.executable);
|
|
final sdkDir = path.dirname(path.dirname(buildDir));
|
|
// Use the JIT `dart` executable from the build directory rather than
|
|
// `Platform.executable`, which is the AOT runtime under dartkp and cannot run
|
|
// the source helper.
|
|
final dartExecutable = path.join(buildDir, 'dart$_execSuffix');
|
|
final helperPath = path.join(
|
|
sdkDir,
|
|
'tests',
|
|
'ffi',
|
|
'vmspecific_enable_ffi_test_helper.dart',
|
|
);
|
|
|
|
final result = Process.runSync(dartExecutable, [
|
|
'--enable-ffi=false',
|
|
helperPath,
|
|
]);
|
|
|
|
Expect.equals(254, result.exitCode);
|
|
Expect.contains(
|
|
'import of dart:ffi is not supported in the current Dart runtime',
|
|
result.stderr,
|
|
);
|
|
}
|