From 0d614dd222db217a4ed34c090628349bb1e531dc Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 14 Oct 2016 15:38:43 -0700 Subject: [PATCH] Re-enable prebuilt_test Use a temporary directory as the build directory during tests so files don't get written to the source tree. Also add a few more tests for prebuilts with no file specified. Bug: 31800129 Test: m -j, make sure .soong.environment is not written to the source tree Change-Id: I623bc114b2ff534c8df9fb3ce273e804711f8f05 --- Android.bp | 2 +- android/config.go | 6 ++++-- android/prebuilt_test.go | 39 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/Android.bp b/Android.bp index 966c9b39d..88210983a 100644 --- a/Android.bp +++ b/Android.bp @@ -82,7 +82,7 @@ bootstrap_go_package { ], testSrcs: [ "android/paths_test.go", - //"android/prebuilt_test.go", + "android/prebuilt_test.go", ], } diff --git a/android/config.go b/android/config.go index 1d3fba216..483ec911a 100644 --- a/android/config.go +++ b/android/config.go @@ -152,8 +152,10 @@ func saveToConfigFile(config jsonConfigurable, filename string) error { } // TestConfig returns a Config object suitable for using for tests -func TestConfig() Config { - return Config{&config{}} +func TestConfig(buildDir string) Config { + return Config{&config{ + buildDir: buildDir, + }} } // New creates a new Config object. The srcDir argument specifies the path to diff --git a/android/prebuilt_test.go b/android/prebuilt_test.go index 92d64817e..311f821a3 100644 --- a/android/prebuilt_test.go +++ b/android/prebuilt_test.go @@ -15,6 +15,8 @@ package android import ( + "io/ioutil" + "os" "testing" "github.com/google/blueprint" @@ -81,9 +83,43 @@ var prebuiltsTests = []struct { }`, prebuilt: true, }, + { + name: "prebuilt no file not preferred", + modules: ` + source { + name: "bar", + } + + prebuilt { + name: "bar", + prefer: false, + }`, + prebuilt: false, + }, + { + name: "prebuilt no file preferred", + modules: ` + source { + name: "bar", + } + + prebuilt { + name: "bar", + prefer: true, + }`, + prebuilt: false, + }, } func TestPrebuilts(t *testing.T) { + buildDir, err := ioutil.TempDir("", "soong_prebuilt_test") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(buildDir) + + config := TestConfig(buildDir) + for _, test := range prebuiltsTests { t.Run(test.name, func(t *testing.T) { ctx := NewContext() @@ -98,8 +134,6 @@ func TestPrebuilts(t *testing.T) { ` + test.modules), }) - config := TestConfig() - _, errs := ctx.ParseBlueprintsFiles("Blueprints") fail(t, errs) _, errs = ctx.PrepareBuildActions(config) @@ -129,7 +163,6 @@ func TestPrebuilts(t *testing.T) { } }) } - } type prebuiltModule struct {