add testcases for rust output file paths

Prepare for changing rust rules by testing that output file names will
match. A build failure in b/301463284 was partially caused by output paths changing and resulting in old files building up on buildbots which filled the disk. This unit test will ensure that the file paths of rust modules do not change and cause the same failure.

Bug: 301463284
Bug: 286077158
Change-Id: I1baba2c63ad29a2c98e378fce0a2ed32bc319c1e
This commit is contained in:
Sam Delmerico
2023-09-27 09:29:32 +00:00
parent ec59517f6a
commit 079a97c778
2 changed files with 136 additions and 6 deletions

View File

@@ -373,17 +373,24 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl
}
rustcOutputFile := outputFile
var rustcImplicitOutputs android.WritablePaths
usesLinker := crateType == "bin" || crateType == "dylib" || crateType == "cdylib" || crateType == "proc-macro"
if usesLinker {
rustcOutputFile = android.PathForModuleOut(ctx, outputFile.Base()+".rsp")
rustcImplicitOutputs = android.WritablePaths{
android.PathForModuleOut(ctx, rustcOutputFile.Base()+".whole.a"),
android.PathForModuleOut(ctx, rustcOutputFile.Base()+".a"),
}
}
ctx.Build(pctx, android.BuildParams{
Rule: rustc,
Description: "rustc " + main.Rel(),
Output: rustcOutputFile,
Inputs: inputs,
Implicits: implicits,
Rule: rustc,
Description: "rustc " + main.Rel(),
Output: rustcOutputFile,
Inputs: inputs,
Implicits: implicits,
ImplicitOutputs: rustcImplicitOutputs,
Args: map[string]string{
"rustcFlags": strings.Join(rustcFlags, " "),
"libFlags": strings.Join(libFlags, " "),