From fba0a210e02339ca5dd003c03a3f94be1ffb5cb2 Mon Sep 17 00:00:00 2001 From: Zi Wang Date: Tue, 7 Mar 2023 16:48:19 -0800 Subject: [PATCH] Sort expectTargets and actualTargets by name in bp2build test This is to match the behavior of BUILD file generation. Test: m and all existing bp2build conversion tests Bug: 271122205 Change-Id: I6320a65aaad06114817eaed722cc0a0939c57bc1 --- bp2build/testing.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/bp2build/testing.go b/bp2build/testing.go index 43baf98db..8a8405526 100644 --- a/bp2build/testing.go +++ b/bp2build/testing.go @@ -21,6 +21,7 @@ specific-but-shared functionality among tests in package import ( "fmt" + "sort" "strings" "testing" @@ -263,6 +264,12 @@ func (b BazelTestResult) CompareBazelTargets(t *testing.T, description string, e t.Errorf("%s: Expected %d bazel target (%s), got %d (%s)", description, expectedCount, expectedContents, actualCount, actualTargets) } else { + sort.SliceStable(actualTargets, func(i, j int) bool { + return actualTargets[i].name < actualTargets[j].name + }) + sort.SliceStable(expectedContents, func(i, j int) bool { + return getTargetName(expectedContents[i]) < getTargetName(expectedContents[j]) + }) for i, actualTarget := range actualTargets { if w, g := expectedContents[i], actualTarget.content; w != g { t.Errorf( @@ -637,3 +644,13 @@ func MakeNeverlinkDuplicateTarget(moduleType string, name string) string { "exports": `[":` + name + `"]`, }) } + +func getTargetName(targetContent string) string { + data := strings.Split(targetContent, "name = \"") + if len(data) < 2 { + return "" + } else { + endIndex := strings.Index(data[1], "\"") + return data[1][:endIndex] + } +}