diff options
author | 2022-02-09 11:54:35 -0800 | |
---|---|---|
committer | 2022-02-11 10:36:22 -0800 | |
commit | 4101c71e63793b9a82427c550026d49a4f07e190 (patch) | |
tree | 99e66e20a309638e8431f2f9ff4b3a3d8c500539 /android/module_test.go | |
parent | def9bf2c1c22e662bec5d0a378b281aa265a1f2c (diff) |
Support multiple library names per target.
The prior interface to make supported only a single package name per
target; although, a target might have multiple licenses each with its
own package name.
Bug: 151177513
Bug: 210912771
Test: m all dist
Test: flash; About Phone -> Legal Information -> Third-party licenses
Change-Id: I1db5fcfd4c066afd162adb4eb4177960c7a503bd
Diffstat (limited to 'android/module_test.go')
-rw-r--r-- | android/module_test.go | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/android/module_test.go b/android/module_test.go index c35e66ed6..a1bab6d01 100644 --- a/android/module_test.go +++ b/android/module_test.go @@ -816,3 +816,120 @@ test { }) } } + +func TestSortedUniqueNamedPaths(t *testing.T) { + type np struct { + path, name string + } + makePaths := func(l []np) NamedPaths { + result := make(NamedPaths, 0, len(l)) + for _, p := range l { + result = append(result, NamedPath{PathForTesting(p.path), p.name}) + } + return result + } + + tests := []struct { + name string + in []np + expectedOut []np + }{ + { + name: "empty", + in: []np{}, + expectedOut: []np{}, + }, + { + name: "all_same", + in: []np{ + {"a.txt", "A"}, + {"a.txt", "A"}, + {"a.txt", "A"}, + {"a.txt", "A"}, + {"a.txt", "A"}, + }, + expectedOut: []np{ + {"a.txt", "A"}, + }, + }, + { + name: "same_path_different_names", + in: []np{ + {"a.txt", "C"}, + {"a.txt", "A"}, + {"a.txt", "D"}, + {"a.txt", "B"}, + {"a.txt", "E"}, + }, + expectedOut: []np{ + {"a.txt", "A"}, + {"a.txt", "B"}, + {"a.txt", "C"}, + {"a.txt", "D"}, + {"a.txt", "E"}, + }, + }, + { + name: "different_paths_same_name", + in: []np{ + {"b/b.txt", "A"}, + {"a/a.txt", "A"}, + {"a/txt", "A"}, + {"b", "A"}, + {"a/b/d", "A"}, + }, + expectedOut: []np{ + {"a/a.txt", "A"}, + {"a/b/d", "A"}, + {"a/txt", "A"}, + {"b/b.txt", "A"}, + {"b", "A"}, + }, + }, + { + name: "all_different", + in: []np{ + {"b/b.txt", "A"}, + {"a/a.txt", "B"}, + {"a/txt", "D"}, + {"b", "C"}, + {"a/b/d", "E"}, + }, + expectedOut: []np{ + {"a/a.txt", "B"}, + {"a/b/d", "E"}, + {"a/txt", "D"}, + {"b/b.txt", "A"}, + {"b", "C"}, + }, + }, + { + name: "some_different", + in: []np{ + {"b/b.txt", "A"}, + {"a/a.txt", "B"}, + {"a/txt", "D"}, + {"a/b/d", "E"}, + {"b", "C"}, + {"a/a.txt", "B"}, + {"a/b/d", "E"}, + }, + expectedOut: []np{ + {"a/a.txt", "B"}, + {"a/b/d", "E"}, + {"a/txt", "D"}, + {"b/b.txt", "A"}, + {"b", "C"}, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + actual := SortedUniqueNamedPaths(makePaths(tt.in)) + expected := makePaths(tt.expectedOut) + t.Logf("actual: %v", actual) + t.Logf("expected: %v", expected) + AssertDeepEquals(t, "SortedUniqueNamedPaths ", expected, actual) + }) + } +} |