blob: 3ff75d79b3b8961d5f0f20907b432ff5f26fa45f [file] [log] [blame] [edit]
// Copyright (c) 2024, 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.
// ignore_for_file: undefined_hidden_name
import 'package:hooks_runner/src/model/kernel_assets.dart';
import 'package:hooks_runner/src/model/target.dart';
import 'package:test/test.dart';
void main() {
final fooUri = Uri.file('path/to/libfoo.so');
final foo2Uri = Uri.file('path/to/libfoo2.so');
final foo3Uri = Uri(path: 'libfoo3.so');
final barUri = Uri(path: 'path/to/libbar.a');
final blaUri = Uri(path: 'path/with spaces/bla.dll');
final assets = KernelAssets([
KernelAsset(
id: 'foo',
path: KernelAssetAbsolutePath(fooUri),
target: Target.androidX64,
),
KernelAsset(
id: 'foo2',
path: KernelAssetRelativePath(foo2Uri),
target: Target.androidX64,
),
KernelAsset(
id: 'foo3',
path: KernelAssetSystemPath(foo3Uri),
target: Target.androidX64,
),
KernelAsset(
id: 'foo4',
path: KernelAssetInExecutable(),
target: Target.androidX64,
),
KernelAsset(
id: 'foo5',
path: KernelAssetInProcess(),
target: Target.androidX64,
),
KernelAsset(
id: 'bar',
path: KernelAssetAbsolutePath(barUri),
target: Target.linuxArm64,
),
KernelAsset(
id: 'bla',
path: KernelAssetAbsolutePath(blaUri),
target: Target.windowsX64,
),
]);
final assetsDartEncoding =
'''{
"format-version": [
1,
0,
0
],
"native-assets": {
"android_x64": {
"foo": [
"absolute",
"${fooUri.toFilePath()}"
],
"foo2": [
"relative",
"${foo2Uri.toFilePath()}"
],
"foo3": [
"system",
"${foo3Uri.toFilePath()}"
],
"foo4": [
"executable"
],
"foo5": [
"process"
]
},
"linux_arm64": {
"bar": [
"absolute",
"${barUri.toFilePath()}"
]
},
"windows_x64": {
"bla": [
"absolute",
"${blaUri.toFilePath()}"
]
}
}
}''';
test('asset yaml', () async {
final fileContents = assets.toNativeAssetsFile();
expect(
fileContents.replaceAll(r'\ ', ' ').replaceAll(r'\\', r'\'),
assetsDartEncoding,
);
});
test('path equality', () {
expect(
KernelAssetAbsolutePath(Uri.parse('/path/to/libbar.a')),
KernelAssetAbsolutePath(Uri.parse('/path/to/libbar.a')),
);
expect(
KernelAssetAbsolutePath(Uri.parse('/path/to/libbar.a')),
isNot(KernelAssetAbsolutePath(Uri.parse('/path/to/libbar2.a'))),
);
expect(
KernelAssetRelativePath(Uri.parse('path/to/libbar.a')),
KernelAssetRelativePath(Uri.parse('path/to/libbar.a')),
);
expect(
KernelAssetRelativePath(Uri.parse('path/to/libbar.a')),
isNot(KernelAssetRelativePath(Uri.parse('path/to/libbar2.a'))),
);
expect(
KernelAssetSystemPath(Uri.parse('path/to/libbar.a')),
KernelAssetSystemPath(Uri.parse('path/to/libbar.a')),
);
expect(
KernelAssetSystemPath(Uri.parse('path/to/libbar.a')),
isNot(KernelAssetSystemPath(Uri.parse('path/to/libbar2.a'))),
);
});
}