diff options
Diffstat (limited to 'rust/test.go')
| -rw-r--r-- | rust/test.go | 61 |
1 files changed, 34 insertions, 27 deletions
diff --git a/rust/test.go b/rust/test.go index cedced260..9ca295b25 100644 --- a/rust/test.go +++ b/rust/test.go @@ -204,29 +204,17 @@ func (test *testDecorator) install(ctx ModuleContext) { test.Properties.Test_options.Unit_test = proptools.BoolPtr(true) } - if !ctx.Config().KatiEnabled() { // TODO(spandandas): Remove the special case for kati - // Install the test config in testcases/ directory for atest. - r, ok := ctx.Module().(*Module) - if !ok { - ctx.ModuleErrorf("Not a rust test module") - } - // Install configs in the root of $PRODUCT_OUT/testcases/$module - testCases := android.PathForModuleInPartitionInstall(ctx, "testcases", ctx.ModuleName()+r.SubName()) - if ctx.PrimaryArch() { - if test.testConfig != nil { - ctx.InstallFile(testCases, ctx.ModuleName()+".config", test.testConfig) - } - dynamicConfig := android.ExistentPathForSource(ctx, ctx.ModuleDir(), "DynamicConfig.xml") - if dynamicConfig.Valid() { - ctx.InstallFile(testCases, ctx.ModuleName()+".dynamic", dynamicConfig.Path()) - } - } - // Install tests and data in arch specific subdir $PRODUCT_OUT/testcases/$module/$arch - testCases = testCases.Join(ctx, ctx.Target().Arch.ArchType.String()) - ctx.InstallTestData(testCases, test.data) - testPath := ctx.RustModule().OutputFile().Path() - ctx.InstallFile(testCases, testPath.Base(), testPath) - } + // Install the test config in testcases/ directory for atest. + mainFile := ctx.RustModule().OutputFile().Path() + ctx.SetTestSuiteInfo(android.TestSuiteInfo{ + NameSuffix: ctx.RustModule().SubName(), + TestSuites: test.Properties.Test_suites, + MainFile: mainFile, + MainFileStem: mainFile.Base(), + ConfigFile: test.testConfig, + Data: test.data, + NeedsArchFolder: true, + }) test.binaryDecorator.installTestData(ctx, test.data) test.binaryDecorator.install(ctx) @@ -267,12 +255,22 @@ func RustTestFactory() android.Module { // rustTestHostMultilib load hook to set MultilibFirst for the // host target. android.AddLoadHook(module, rustTestHostMultilib) + + // Windows tests are currently unsupported, so disable them. + // To support Windows test modules, we likely need to switch + // to panic=unwind. + android.AddLoadHook(module, rustTestDisableWindows) module.testModule = true return module.Init() } func RustTestHostFactory() android.Module { module, _ := NewRustTest(android.HostSupported) + + // Windows tests are unsupported, so disable them. + // To support Windows test modules, we likely need to switch + // to panic=unwind. + android.AddLoadHook(module, rustTestDisableWindows) module.testModule = true return module.Init() } @@ -320,10 +318,6 @@ func (test *testDecorator) moduleInfoJSON(ctx ModuleContext, moduleInfoJSON *and } else { moduleInfoJSON.CompatibilitySuites = append(moduleInfoJSON.CompatibilitySuites, "null-suite") } - - android.SetProvider(ctx, android.TestSuiteInfoProvider, android.TestSuiteInfo{ - TestSuites: test.Properties.Test_suites, - }) } func rustTestHostMultilib(ctx android.LoadHookContext) { @@ -338,3 +332,16 @@ func rustTestHostMultilib(ctx android.LoadHookContext) { p.Target.Host.Compile_multilib = proptools.StringPtr("first") ctx.AppendProperties(p) } + +func rustTestDisableWindows(ctx android.LoadHookContext) { + type props struct { + Target struct { + Windows struct { + Enabled bool + } + } + } + p := &props{} + p.Target.Windows.Enabled = false + ctx.AppendProperties(p) +} |
