From b274ed3252dfadfd5a7edf70e470b61cf074c0de Mon Sep 17 00:00:00 2001 From: Jeff Gaston Date: Fri, 1 Dec 2017 17:10:33 -0800 Subject: Make ninja file deterministic even with dup module names Bug: 65683273 Test: ./build/soong/scripts/diff_build_graphs.sh \ --products=aosp_arm '' '' Change-Id: Ie01ff579d69e94b12363f53aec5d25810211c451 --- android/namespace_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'android/namespace_test.go') diff --git a/android/namespace_test.go b/android/namespace_test.go index 13da88b42..9ab186b00 100644 --- a/android/namespace_test.go +++ b/android/namespace_test.go @@ -19,6 +19,7 @@ import ( "io/ioutil" "os" "path/filepath" + "reflect" "testing" "github.com/google/blueprint" @@ -562,6 +563,25 @@ func TestDeclaringNamespaceInNonAndroidBpFile(t *testing.T) { } } +// so that the generated .ninja file will have consistent names +func TestConsistentNamespaceNames(t *testing.T) { + ctx := setupTest(t, + map[string]string{ + "dir1": "soong_namespace{}", + "dir2": "soong_namespace{}", + "dir3": "soong_namespace{}", + }) + + ns1, _ := ctx.NameResolver.namespaceAt("dir1") + ns2, _ := ctx.NameResolver.namespaceAt("dir2") + ns3, _ := ctx.NameResolver.namespaceAt("dir3") + actualIds := []string{ns1.id, ns2.id, ns3.id} + expectedIds := []string{"1", "2", "3"} + if !reflect.DeepEqual(actualIds, expectedIds) { + t.Errorf("Incorrect namespace ids.\nactual: %s\nexpected: %s\n", actualIds, expectedIds) + } +} + // some utils to support the tests func mockFiles(bps map[string]string) (files map[string][]byte) { -- cgit v1.2.3-59-g8ed1b