Let tests override environment
Pass an environment to TestConfig that will be used for
all Config.Getenv calls.
Test: none
Change-Id: I683cd9c9e0db61c9bfd2adb27fca78f558f225c4
diff --git a/android/config.go b/android/config.go
index a70fa76..9061652 100644
--- a/android/config.go
+++ b/android/config.go
@@ -78,6 +78,7 @@
srcDir string // the path of the root source directory
buildDir string // the path of the build output directory
+ env map[string]string
envLock sync.Mutex
envDeps map[string]string
envFrozen bool
@@ -168,15 +169,15 @@
}
// TestConfig returns a Config object suitable for using for tests
-func TestConfig(buildDir string) Config {
+func TestConfig(buildDir string, env map[string]string) Config {
config := &config{
ProductVariables: productVariables{
DeviceName: stringPtr("test_device"),
},
- buildDir: buildDir,
- captureBuild: true,
- ignoreEnvironment: true,
+ buildDir: buildDir,
+ captureBuild: true,
+ env: env,
}
config.deviceConfig = &deviceConfig{
config: config,
@@ -186,8 +187,8 @@
}
// TestConfig returns a Config object suitable for using for tests that need to run the arch mutator
-func TestArchConfig(buildDir string) Config {
- testConfig := TestConfig(buildDir)
+func TestArchConfig(buildDir string, env map[string]string) Config {
+ testConfig := TestConfig(buildDir, env)
config := testConfig.config
config.Targets = map[OsClass][]Target{
@@ -212,6 +213,8 @@
ConfigFileName: filepath.Join(buildDir, configFileName),
ProductVariablesFileName: filepath.Join(buildDir, productVariablesFileName),
+ env: originalEnv,
+
srcDir: srcDir,
buildDir: buildDir,
}
@@ -335,9 +338,7 @@
if c.envFrozen {
panic("Cannot access new environment variables after envdeps are frozen")
}
- if !c.ignoreEnvironment {
- val, _ = originalEnv[key]
- }
+ val, _ = c.env[key]
c.envDeps[key] = val
}
return val
diff --git a/android/paths_test.go b/android/paths_test.go
index 3986b71..248f4d4 100644
--- a/android/paths_test.go
+++ b/android/paths_test.go
@@ -209,7 +209,7 @@
}
func TestPathForModuleInstall(t *testing.T) {
- testConfig := TestConfig("")
+ testConfig := TestConfig("", nil)
hostTarget := Target{Os: Linux}
deviceTarget := Target{Os: Android}
diff --git a/android/prebuilt_test.go b/android/prebuilt_test.go
index 9a1de9c..93f5805 100644
--- a/android/prebuilt_test.go
+++ b/android/prebuilt_test.go
@@ -118,7 +118,7 @@
}
defer os.RemoveAll(buildDir)
- config := TestConfig(buildDir)
+ config := TestConfig(buildDir, nil)
for _, test := range prebuiltsTests {
t.Run(test.name, func(t *testing.T) {