Always propagate some environment variables to RBE
Always propagate LANG, LC_MESSAGES and PYTHONDONTWRITEBYTECODE to RBE to get more consistent behavior between local actions and RBE. Bug: 182415460 Bug: 190593001 Test: treehugger Change-Id: I726e6f02fd3ef77e158baf6fde77ffb7247a1375 Merged-In: I726e6f02fd3ef77e158baf6fde77ffb7247a1375
This commit is contained in:
parent
dce0713739
commit
fb618c387a
|
@ -361,9 +361,6 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
|||
Labels: map[string]string{"type": "tool", "name": "lint"},
|
||||
ExecStrategy: lintRBEExecStrategy(ctx),
|
||||
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
||||
EnvironmentVariables: []string{
|
||||
"LANG",
|
||||
},
|
||||
Platform: map[string]string{remoteexec.PoolKey: pool},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -52,6 +52,12 @@ const (
|
|||
var (
|
||||
defaultLabels = map[string]string{"type": "tool"}
|
||||
defaultExecStrategy = LocalExecStrategy
|
||||
defaultEnvironmentVariables = []string{
|
||||
// This is a subset of the allowlist in ui/build/ninja.go that makes sense remotely.
|
||||
"LANG",
|
||||
"LC_MESSAGES",
|
||||
"PYTHONDONTWRITEBYTECODE",
|
||||
}
|
||||
)
|
||||
|
||||
// REParams holds information pertinent to the remote execution of a rule.
|
||||
|
@ -149,8 +155,10 @@ func (r *REParams) wrapperArgs() string {
|
|||
args += " --toolchain_inputs=" + strings.Join(r.ToolchainInputs, ",")
|
||||
}
|
||||
|
||||
if len(r.EnvironmentVariables) > 0 {
|
||||
args += " --env_var_allowlist=" + strings.Join(r.EnvironmentVariables, ",")
|
||||
envVarAllowlist := append(r.EnvironmentVariables, defaultEnvironmentVariables...)
|
||||
|
||||
if len(envVarAllowlist) > 0 {
|
||||
args += " --env_var_allowlist=" + strings.Join(envVarAllowlist, ",")
|
||||
}
|
||||
|
||||
return args + " -- "
|
||||
|
|
|
@ -36,7 +36,7 @@ func TestTemplate(t *testing.T) {
|
|||
PoolKey: "default",
|
||||
},
|
||||
},
|
||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage),
|
||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage),
|
||||
},
|
||||
{
|
||||
name: "all params",
|
||||
|
@ -52,7 +52,7 @@ func TestTemplate(t *testing.T) {
|
|||
PoolKey: "default",
|
||||
},
|
||||
},
|
||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=remote --inputs=$in --input_list_paths=$out.rsp,out2.rsp --output_files=$out --toolchain_inputs=clang++ -- ", DefaultImage),
|
||||
want: fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=remote --inputs=$in --input_list_paths=$out.rsp,out2.rsp --output_files=$out --toolchain_inputs=clang++ --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage),
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
|
@ -74,7 +74,7 @@ func TestNoVarTemplate(t *testing.T) {
|
|||
PoolKey: "default",
|
||||
},
|
||||
}
|
||||
want := fmt.Sprintf("prebuilts/remoteexecution-client/live/rewrapper --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage)
|
||||
want := fmt.Sprintf("prebuilts/remoteexecution-client/live/rewrapper --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage)
|
||||
if got := params.NoVarTemplate(DefaultWrapperPath); got != want {
|
||||
t.Errorf("NoVarTemplate() returned\n%s\nwant\n%s", got, want)
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ func TestTemplateDeterminism(t *testing.T) {
|
|||
PoolKey: "default",
|
||||
},
|
||||
}
|
||||
want := fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out -- ", DefaultImage)
|
||||
want := fmt.Sprintf("${android.RBEWrapper} --labels=compiler=clang,lang=cpp,type=compile --platform=\"Pool=default,container-image=%s\" --exec_strategy=local --inputs=$in --output_files=$out --env_var_allowlist=LANG,LC_MESSAGES,PYTHONDONTWRITEBYTECODE -- ", DefaultImage)
|
||||
for i := 0; i < 1000; i++ {
|
||||
if got := r.Template(); got != want {
|
||||
t.Fatalf("Template() returned\n%s\nwant\n%s", got, want)
|
||||
|
|
Loading…
Reference in New Issue