summaryrefslogtreecommitdiff
path: root/cc
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-03-06 19:14:14 -0800
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2025-03-06 19:14:14 -0800
commit2e704899b085c22a4ef203f0a743e3c380320a68 (patch)
tree62e079eab317de123cc09af4b9fa95c5867e6f04 /cc
parentaef03537446a674206379c9d91248bd47dee6bb2 (diff)
parent7d34512284783cceb91ae515f5d1c035c1e941fb (diff)
Merge "Allow genrules to depend on tools with symlinks" into main
Diffstat (limited to 'cc')
-rw-r--r--cc/genrule_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/cc/genrule_test.go b/cc/genrule_test.go
index 438eb9880..4e700a2cd 100644
--- a/cc/genrule_test.go
+++ b/cc/genrule_test.go
@@ -17,6 +17,7 @@ package cc
import (
"reflect"
"slices"
+ "strings"
"testing"
"android/soong/android"
@@ -254,3 +255,42 @@ func TestMultilibGenruleOut(t *testing.T) {
gen_64bit,
)
}
+
+// Test that a genrule can depend on a tool with symlinks. The symlinks are ignored, but
+// at least it doesn't cause errors.
+func TestGenruleToolWithSymlinks(t *testing.T) {
+ bp := `
+ genrule {
+ name: "gen",
+ tools: ["tool_with_symlinks"],
+ cmd: "$(location tool_with_symlinks) $(in) $(out)",
+ out: ["out"],
+ }
+
+ cc_binary_host {
+ name: "tool_with_symlinks",
+ symlinks: ["symlink1", "symlink2"],
+ }
+ `
+ ctx := PrepareForIntegrationTestWithCc.
+ ExtendWithErrorHandler(android.FixtureExpectsNoErrors).
+ RunTestWithBp(t, bp)
+ gen := ctx.ModuleForTests(t, "gen", "").Output("out")
+ toolFound := false
+ symlinkFound := false
+ for _, dep := range gen.RuleParams.CommandDeps {
+ if strings.HasSuffix(dep, "/tool_with_symlinks") {
+ toolFound = true
+ }
+ if strings.HasSuffix(dep, "/symlink1") || strings.HasSuffix(dep, "/symlink2") {
+ symlinkFound = true
+ }
+ }
+ if !toolFound {
+ t.Errorf("Tool not found")
+ }
+ // We may want to change genrules to include symlinks later
+ if symlinkFound {
+ t.Errorf("Symlinks found")
+ }
+}