From 3340d6091c108e93d29c19a347e152b6cc8ee930 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Tue, 27 Dec 2016 14:40:40 -0800 Subject: [PATCH] Allow disabling the named test directory for cc_test Some external test suites (LTP in this case), have their own expected layout, and don't fit well with our /data/nativetest// layout, nor do they work with test_per_src. So allow setting no_named_install_directory along with relative_module_path to specify a custom test path: no_named_install_directory: true, relative_module_path: "ltp/testcases/bin", Test: Convert LTP Change-Id: Ib002c058674e8b960a4fdc3af1a25c8bcaeb1d63 --- cc/test.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cc/test.go b/cc/test.go index 07eb621a6..f60996c73 100644 --- a/cc/test.go +++ b/cc/test.go @@ -33,6 +33,11 @@ type TestBinaryProperties struct { // Create a separate binary for each source file. Useful when there is // global state that can not be torn down and reset between each test suite. Test_per_src *bool + + // Disables the creation of a test-specific directory when used with + // relative_install_path. Useful if several tests need to be in the same + // directory, but test_per_src doesn't work. + No_named_install_directory *bool } func init() { @@ -214,7 +219,13 @@ func (test *testBinary) linkerFlags(ctx ModuleContext, flags Flags) Flags { func (test *testBinary) install(ctx ModuleContext, file android.Path) { test.binaryDecorator.baseInstaller.dir = "nativetest" test.binaryDecorator.baseInstaller.dir64 = "nativetest64" - test.binaryDecorator.baseInstaller.relative = ctx.ModuleName() + + if !Bool(test.Properties.No_named_install_directory) { + test.binaryDecorator.baseInstaller.relative = ctx.ModuleName() + } else if test.binaryDecorator.baseInstaller.Properties.Relative_install_path == "" { + ctx.PropertyErrorf("no_named_install_directory", "Module install directory may only be disabled if relative_install_path is set") + } + test.binaryDecorator.baseInstaller.install(ctx, file) }