Install rust tests under nativetest(64)
* Now the installation directories match those for C/C++ tests:
* The relative_install_path refers to path under nativetest(64).
* Device test files are installed in data/nativetest(64).
* Automatically generated configuration files and copied test binaries
are still in the "testcases" directory.
* Change host test configuration to run test binary files
in testcases/<mutated_module_name>/<arch_type>/<stem_name>
Bug: 140938178
Test: atest --include-subdirs under external/rust/crates
Change-Id: I4b29afb897f4ba8749e87f79857c5b1a959bb2b0
diff --git a/rust/test.go b/rust/test.go
index b391103..04f844c 100644
--- a/rust/test.go
+++ b/rust/test.go
@@ -55,8 +55,7 @@
test := &testDecorator{
binaryDecorator: &binaryDecorator{
- // TODO(chh): set up dir64?
- baseCompiler: NewBaseCompiler("testcases", ""),
+ baseCompiler: NewBaseCompiler("nativetest", "nativetest64", InstallInData),
},
}
@@ -79,22 +78,26 @@
}
func (test *testDecorator) install(ctx ModuleContext, file android.Path) {
- name := ctx.ModuleName() // default executable name
- if ctx.Device() { // on device, use mutated module name
- name = name + test.getMutatedModuleSubName(name)
- } else { // on host, use stem name in relative_install_path
- if stem := String(test.baseCompiler.Properties.Stem); stem != "" {
- name = stem
+ name := ctx.ModuleName()
+ path := test.baseCompiler.relativeInstallPath()
+ // on device, use mutated module name
+ name = name + test.getMutatedModuleSubName(name)
+ if !ctx.Device() { // on host, use mutated module name + arch type + stem name
+ stem := String(test.baseCompiler.Properties.Stem)
+ if stem == "" {
+ stem = name
}
- if path := test.baseCompiler.relativeInstallPath(); path != "" {
- name = path + "/" + name
- }
+ name = filepath.Join(name, ctx.Arch().ArchType.String(), stem)
}
test.testConfig = tradefed.AutoGenRustTestConfig(ctx, name,
test.Properties.Test_config,
test.Properties.Test_config_template,
test.Properties.Test_suites,
test.Properties.Auto_gen_config)
+ // default relative install path is module name
+ if path == "" {
+ test.baseCompiler.relative = ctx.ModuleName()
+ }
test.binaryDecorator.install(ctx, file)
}