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
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user