From 600c9dfe7bbd9d90652471944cba7cf05354ecf2 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 13 Sep 2016 12:26:16 -0700 Subject: [PATCH] Improve test support for art tests Make gtest property a *bool so it can be overriden by defaults. Make per-test install directory come after relative_install_path property. Change-Id: I2da38965c99c40415a39bf97b706b2d40bb082d6 --- cc/installer.go | 5 +++-- cc/test.go | 17 ++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/cc/installer.go b/cc/installer.go index a133bf208..fa8fc3212 100644 --- a/cc/installer.go +++ b/cc/installer.go @@ -24,7 +24,7 @@ import ( type InstallerProperties struct { // install to a subdirectory of the default install path for the module - Relative_install_path string + Relative_install_path string `android:"arch_variant"` // install symlinks to the module Symlinks []string `android:"arch_variant"` @@ -50,6 +50,7 @@ type baseInstaller struct { dir string dir64 string + relative string location installLocation path android.OutputPath @@ -69,7 +70,7 @@ func (installer *baseInstaller) install(ctx ModuleContext, file android.Path) { if !ctx.Host() && !ctx.Arch().Native { subDir = filepath.Join(subDir, ctx.Arch().ArchType.String()) } - dir := android.PathForModuleInstall(ctx, subDir, installer.Properties.Relative_install_path) + dir := android.PathForModuleInstall(ctx, subDir, installer.Properties.Relative_install_path, installer.relative) installer.path = ctx.InstallFile(dir, file) for _, symlink := range installer.Properties.Symlinks { ctx.InstallSymlink(dir, symlink, installer.path) diff --git a/cc/test.go b/cc/test.go index 5418ebff1..5a34d1ddf 100644 --- a/cc/test.go +++ b/cc/test.go @@ -26,7 +26,7 @@ import ( type TestProperties struct { // if set, build against the gtest library. Defaults to true. - Gtest bool + Gtest *bool } type TestBinaryProperties struct { @@ -116,8 +116,12 @@ type testDecorator struct { linker *baseLinker } +func (test *testDecorator) gtest() bool { + return test.Properties.Gtest == nil || *test.Properties.Gtest == true +} + func (test *testDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags { - if !test.Properties.Gtest { + if !test.gtest() { return flags } @@ -143,7 +147,7 @@ func (test *testDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags { } func (test *testDecorator) linkerDeps(ctx BaseModuleContext, deps Deps) Deps { - if test.Properties.Gtest { + if test.gtest() { if ctx.sdk() && ctx.Device() { switch ctx.selectedStl() { case "ndk_libc++_shared", "ndk_libc++_static": @@ -208,8 +212,9 @@ func (test *testBinary) linkerFlags(ctx ModuleContext, flags Flags) Flags { } func (test *testBinary) install(ctx ModuleContext, file android.Path) { - test.binaryDecorator.baseInstaller.dir = filepath.Join("nativetest", ctx.ModuleName()) - test.binaryDecorator.baseInstaller.dir64 = filepath.Join("nativetest64", ctx.ModuleName()) + test.binaryDecorator.baseInstaller.dir = "nativetest" + test.binaryDecorator.baseInstaller.dir64 = "nativetest64" + test.binaryDecorator.baseInstaller.relative = ctx.ModuleName() test.binaryDecorator.baseInstaller.install(ctx, file) } @@ -225,7 +230,6 @@ func NewTest(hod android.HostOrDeviceSupported) *Module { binaryDecorator: binary, baseCompiler: NewBaseCompiler(), } - test.testDecorator.Properties.Gtest = true module.compiler = test module.linker = test module.installer = test @@ -267,7 +271,6 @@ func NewTestLibrary(hod android.HostOrDeviceSupported) *Module { }, libraryDecorator: library, } - test.testDecorator.Properties.Gtest = true module.linker = test return module }