Include "soong" in sandboxed out paths
Previously, the path to built files in the sandbox would be out/.intermediates/... instead of out/soong/.intermediates/.... After this cl, it will be out/soong/.intermediates/.... This makes it more consistent with the non-sandboxed paths, which is easier for developers. CtsApkVerityTestDebugFiles is a genrule that's used to find the paths to other modules. Developers were expected to build it, then copy all the files listed in its output file to a temporary directory. Those paths would be wrong before this change. Bug: 307824623 Test: ./build/soong/tests/genrule_sandbox_test.py CtsApkVerityTestDebugFiles Change-Id: Iadf9e3240a2c828567e46b6b02cc14004f30e8bf
This commit is contained in:
parent
cd11c9535f
commit
e8561c6108
4 changed files with 5 additions and 5 deletions
|
@ -590,7 +590,7 @@ func (r *RuleBuilder) build(name string, desc string, ninjaEscapeCommandString b
|
|||
To: proto.String(sboxOutSubDir),
|
||||
},
|
||||
{
|
||||
From: proto.String(PathForOutput(r.ctx).String()),
|
||||
From: proto.String(r.ctx.Config().OutDir()),
|
||||
To: proto.String(sboxOutSubDir),
|
||||
},
|
||||
},
|
||||
|
@ -891,7 +891,7 @@ func (r *RuleBuilder) _sboxPathForInputRel(path Path) (rel string, inSandbox boo
|
|||
// When sandboxing inputs all inputs have to be copied into the sandbox. Input files that
|
||||
// are outputs of other rules could be an arbitrary absolute path if OUT_DIR is set, so they
|
||||
// will be copied to relative paths under __SBOX_OUT_DIR__/out.
|
||||
rel, isRelOut, _ := maybeRelErr(PathForOutput(r.ctx).String(), path.String())
|
||||
rel, isRelOut, _ := maybeRelErr(r.ctx.Config().OutDir(), path.String())
|
||||
if isRelOut {
|
||||
return filepath.Join(sboxOutSubDir, rel), true
|
||||
}
|
||||
|
|
|
@ -474,7 +474,7 @@ func TestRuleBuilder(t *testing.T) {
|
|||
wantCommands := []string{
|
||||
"__SBOX_SANDBOX_DIR__/out/DepFile Flag FlagWithArg=arg FlagWithDepFile=__SBOX_SANDBOX_DIR__/out/depfile " +
|
||||
"FlagWithInput=input FlagWithOutput=__SBOX_SANDBOX_DIR__/out/output " +
|
||||
"FlagWithRspFileInputList=__SBOX_SANDBOX_DIR__/out/rsp Input __SBOX_SANDBOX_DIR__/out/Output " +
|
||||
"FlagWithRspFileInputList=__SBOX_SANDBOX_DIR__/out/soong/rsp Input __SBOX_SANDBOX_DIR__/out/Output " +
|
||||
"__SBOX_SANDBOX_DIR__/out/SymlinkOutput Text __SBOX_SANDBOX_DIR__/tools/src/Tool after command2 old cmd",
|
||||
"command2 __SBOX_SANDBOX_DIR__/out/depfile2 input2 __SBOX_SANDBOX_DIR__/out/output2 __SBOX_SANDBOX_DIR__/tools/src/tool2",
|
||||
"command3 input3 __SBOX_SANDBOX_DIR__/out/output2 __SBOX_SANDBOX_DIR__/out/output3 input3 __SBOX_SANDBOX_DIR__/out/output2",
|
||||
|
|
|
@ -213,7 +213,7 @@ func TestDroidstubsSandbox(t *testing.T) {
|
|||
}
|
||||
|
||||
manifest := android.RuleBuilderSboxProtoForTests(t, ctx, m.Output("metalava.sbox.textproto"))
|
||||
if g, w := manifest.Commands[0].GetCommand(), "reference __SBOX_SANDBOX_DIR__/out/.intermediates/foo/gen/foo.txt"; !strings.Contains(g, w) {
|
||||
if g, w := manifest.Commands[0].GetCommand(), "reference __SBOX_SANDBOX_DIR__/out/soong/.intermediates/foo/gen/foo.txt"; !strings.Contains(g, w) {
|
||||
t.Errorf("Expected command to contain %q, got %q", w, g)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2432,7 +2432,7 @@ func TestSdkLibraryProvidesSystemModulesToApiLibrary(t *testing.T) {
|
|||
manifest := m.Output("metalava.sbox.textproto")
|
||||
sboxProto := android.RuleBuilderSboxProtoForTests(t, result.TestContext, manifest)
|
||||
manifestCommand := sboxProto.Commands[0].GetCommand()
|
||||
classPathFlag := "--classpath __SBOX_SANDBOX_DIR__/out/.intermediates/bar/android_common/turbine-combined/bar.jar"
|
||||
classPathFlag := "--classpath __SBOX_SANDBOX_DIR__/out/soong/.intermediates/bar/android_common/turbine-combined/bar.jar"
|
||||
android.AssertStringDoesContain(t, "command expected to contain classpath flag", manifestCommand, classPathFlag)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue