diff options
| -rw-r--r-- | android/fixture.go | 14 | ||||
| -rw-r--r-- | etc/prebuilt_etc_test.go | 50 | ||||
| -rw-r--r-- | genrule/genrule_test.go | 52 |
3 files changed, 48 insertions, 68 deletions
diff --git a/android/fixture.go b/android/fixture.go index d8893f7d9..928967d8c 100644 --- a/android/fixture.go +++ b/android/fixture.go @@ -221,7 +221,8 @@ type FixtureFactory interface { // // The buildDirSupplier is a pointer to the package level buildDir variable that is initialized by // the package level setUp method. It has to be a pointer to the variable as the variable will not -// have been initialized at the time the factory is created. +// have been initialized at the time the factory is created. If it is nil then a test specific +// temporary directory will be created instead. func NewFixtureFactory(buildDirSupplier *string, preparers ...FixturePreparer) FixtureFactory { return &fixtureFactory{ buildDirSupplier: buildDirSupplier, @@ -585,7 +586,16 @@ func (f *fixtureFactory) Extend(preparers ...FixturePreparer) FixtureFactory { } func (f *fixtureFactory) Fixture(t *testing.T, preparers ...FixturePreparer) Fixture { - config := TestConfig(*f.buildDirSupplier, nil, "", nil) + var buildDir string + if f.buildDirSupplier == nil { + // Create a new temporary directory for this run. It will be automatically cleaned up when the + // test finishes. + buildDir = t.TempDir() + } else { + // Retrieve the buildDir from the supplier. + buildDir = *f.buildDirSupplier + } + config := TestConfig(buildDir, nil, "", nil) ctx := NewTestContext(config) fixture := &fixture{ factory: f, diff --git a/etc/prebuilt_etc_test.go b/etc/prebuilt_etc_test.go index 09f2e8cf0..f800c48f2 100644 --- a/etc/prebuilt_etc_test.go +++ b/etc/prebuilt_etc_test.go @@ -15,7 +15,6 @@ package etc import ( - "io/ioutil" "os" "path/filepath" "testing" @@ -23,33 +22,12 @@ import ( "android/soong/android" ) -var buildDir string - -func setUp() { - var err error - buildDir, err = ioutil.TempDir("", "soong_etc_test") - if err != nil { - panic(err) - } -} - -func tearDown() { - os.RemoveAll(buildDir) -} - func TestMain(m *testing.M) { - run := func() int { - setUp() - defer tearDown() - - return m.Run() - } - - os.Exit(run()) + os.Exit(m.Run()) } var prebuiltEtcFixtureFactory = android.NewFixtureFactory( - &buildDir, + nil, android.PrepareForTestWithArchMutator, PrepareForTestWithPrebuiltEtc, android.FixtureMergeMockFs(android.MockFS{ @@ -170,8 +148,8 @@ func TestPrebuiltEtcRelativeInstallPathInstallDirPath(t *testing.T) { `) p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) - expected := buildDir + "/target/product/test_device/system/etc/bar" - android.AssertStringEquals(t, "install dir", expected, p.installDirPath.String()) + expected := "out/soong/target/product/test_device/system/etc/bar" + android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath) } func TestPrebuiltEtcCannotSetRelativeInstallPathAndSubDir(t *testing.T) { @@ -212,8 +190,8 @@ func TestPrebuiltUserShareInstallDirPath(t *testing.T) { `) p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) - expected := buildDir + "/target/product/test_device/system/usr/share/bar" - android.AssertStringEquals(t, "install dir", expected, p.installDirPath.String()) + expected := "out/soong/target/product/test_device/system/usr/share/bar" + android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath) } func TestPrebuiltUserShareHostInstallDirPath(t *testing.T) { @@ -227,8 +205,8 @@ func TestPrebuiltUserShareHostInstallDirPath(t *testing.T) { buildOS := android.BuildOs.String() p := result.Module("foo.conf", buildOS+"_common").(*PrebuiltEtc) - expected := filepath.Join(buildDir, "host", result.Config.PrebuiltOS(), "usr", "share", "bar") - android.AssertStringEquals(t, "install dir", expected, p.installDirPath.String()) + expected := filepath.Join("out/soong/host", result.Config.PrebuiltOS(), "usr", "share", "bar") + android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath) } func TestPrebuiltFontInstallDirPath(t *testing.T) { @@ -240,12 +218,12 @@ func TestPrebuiltFontInstallDirPath(t *testing.T) { `) p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) - expected := buildDir + "/target/product/test_device/system/fonts" - android.AssertStringEquals(t, "install dir", expected, p.installDirPath.String()) + expected := "out/soong/target/product/test_device/system/fonts" + android.AssertPathRelativeToTopEquals(t, "install dir", expected, p.installDirPath) } func TestPrebuiltFirmwareDirPath(t *testing.T) { - targetPath := buildDir + "/target/product/test_device" + targetPath := "out/soong/target/product/test_device" tests := []struct { description string config string @@ -273,13 +251,13 @@ func TestPrebuiltFirmwareDirPath(t *testing.T) { t.Run(tt.description, func(t *testing.T) { result := prebuiltEtcFixtureFactory.RunTestWithBp(t, tt.config) p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) - android.AssertStringEquals(t, "install dir", tt.expectedPath, p.installDirPath.String()) + android.AssertPathRelativeToTopEquals(t, "install dir", tt.expectedPath, p.installDirPath) }) } } func TestPrebuiltDSPDirPath(t *testing.T) { - targetPath := filepath.Join(buildDir, "/target/product/test_device") + targetPath := "out/soong/target/product/test_device" tests := []struct { description string config string @@ -307,7 +285,7 @@ func TestPrebuiltDSPDirPath(t *testing.T) { t.Run(tt.description, func(t *testing.T) { result := prebuiltEtcFixtureFactory.RunTestWithBp(t, tt.config) p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) - android.AssertStringEquals(t, "install dir", tt.expectedPath, p.installDirPath.String()) + android.AssertPathRelativeToTopEquals(t, "install dir", tt.expectedPath, p.installDirPath) }) } } diff --git a/genrule/genrule_test.go b/genrule/genrule_test.go index 690277c66..d131e94f9 100644 --- a/genrule/genrule_test.go +++ b/genrule/genrule_test.go @@ -15,7 +15,6 @@ package genrule import ( - "io/ioutil" "os" "regexp" "testing" @@ -25,33 +24,12 @@ import ( "github.com/google/blueprint/proptools" ) -var buildDir string - -func setUp() { - var err error - buildDir, err = ioutil.TempDir("", "genrule_test") - if err != nil { - panic(err) - } -} - -func tearDown() { - os.RemoveAll(buildDir) -} - func TestMain(m *testing.M) { - run := func() int { - setUp() - defer tearDown() - - return m.Run() - } - - os.Exit(run()) + os.Exit(m.Run()) } var genruleFixtureFactory = android.NewFixtureFactory( - &buildDir, + nil, android.PrepareForTestWithArchMutator, android.PrepareForTestWithDefaults, @@ -572,8 +550,14 @@ func TestGenSrcs(t *testing.T) { cmds: []string{ "bash -c '__SBOX_SANDBOX_DIR__/tools/out/bin/tool in1.txt > __SBOX_SANDBOX_DIR__/out/in1.h' && bash -c '__SBOX_SANDBOX_DIR__/tools/out/bin/tool in2.txt > __SBOX_SANDBOX_DIR__/out/in2.h'", }, - deps: []string{buildDir + "/.intermediates/gen/gen/gensrcs/in1.h", buildDir + "/.intermediates/gen/gen/gensrcs/in2.h"}, - files: []string{buildDir + "/.intermediates/gen/gen/gensrcs/in1.h", buildDir + "/.intermediates/gen/gen/gensrcs/in2.h"}, + deps: []string{ + "out/soong/.intermediates/gen/gen/gensrcs/in1.h", + "out/soong/.intermediates/gen/gen/gensrcs/in2.h", + }, + files: []string{ + "out/soong/.intermediates/gen/gen/gensrcs/in1.h", + "out/soong/.intermediates/gen/gen/gensrcs/in2.h", + }, }, { name: "shards", @@ -587,8 +571,16 @@ func TestGenSrcs(t *testing.T) { "bash -c '__SBOX_SANDBOX_DIR__/tools/out/bin/tool in1.txt > __SBOX_SANDBOX_DIR__/out/in1.h' && bash -c '__SBOX_SANDBOX_DIR__/tools/out/bin/tool in2.txt > __SBOX_SANDBOX_DIR__/out/in2.h'", "bash -c '__SBOX_SANDBOX_DIR__/tools/out/bin/tool in3.txt > __SBOX_SANDBOX_DIR__/out/in3.h'", }, - deps: []string{buildDir + "/.intermediates/gen/gen/gensrcs/in1.h", buildDir + "/.intermediates/gen/gen/gensrcs/in2.h", buildDir + "/.intermediates/gen/gen/gensrcs/in3.h"}, - files: []string{buildDir + "/.intermediates/gen/gen/gensrcs/in1.h", buildDir + "/.intermediates/gen/gen/gensrcs/in2.h", buildDir + "/.intermediates/gen/gen/gensrcs/in3.h"}, + deps: []string{ + "out/soong/.intermediates/gen/gen/gensrcs/in1.h", + "out/soong/.intermediates/gen/gen/gensrcs/in2.h", + "out/soong/.intermediates/gen/gen/gensrcs/in3.h", + }, + files: []string{ + "out/soong/.intermediates/gen/gen/gensrcs/in1.h", + "out/soong/.intermediates/gen/gen/gensrcs/in2.h", + "out/soong/.intermediates/gen/gen/gensrcs/in3.h", + }, }, } @@ -616,9 +608,9 @@ func TestGenSrcs(t *testing.T) { gen := result.Module("gen", "").(*Module) android.AssertDeepEquals(t, "cmd", test.cmds, gen.rawCommands) - android.AssertDeepEquals(t, "deps", test.deps, gen.outputDeps.Strings()) + android.AssertPathsRelativeToTopEquals(t, "deps", test.deps, gen.outputDeps) - android.AssertDeepEquals(t, "files", test.files, gen.outputFiles.Strings()) + android.AssertPathsRelativeToTopEquals(t, "files", test.files, gen.outputFiles) }) } } |