Merge "Store missing profile files into a Make variable"
diff --git a/android/mutator.go b/android/mutator.go
index 2f13f6c..64d9fdd 100644
--- a/android/mutator.go
+++ b/android/mutator.go
@@ -76,6 +76,7 @@
func(ctx RegisterMutatorsContext) {
ctx.TopDown("load_hooks", loadHookMutator).Parallel()
},
+ RegisterNamespaceMutator,
RegisterPrebuiltsPreArchMutators,
RegisterDefaultsPreArchMutators,
}
@@ -86,7 +87,6 @@
}
var preDeps = []RegisterMutatorFunc{
- RegisterNamespaceMutator,
registerArchMutator,
}
diff --git a/android/namespace_test.go b/android/namespace_test.go
index 9ab186b..a6fc9d5 100644
--- a/android/namespace_test.go
+++ b/android/namespace_test.go
@@ -606,7 +606,7 @@
ctx.MockFileSystem(bps)
ctx.RegisterModuleType("test_module", ModuleFactoryAdaptor(newTestModule))
ctx.RegisterModuleType("soong_namespace", ModuleFactoryAdaptor(NamespaceFactory))
- ctx.PreDepsMutators(RegisterNamespaceMutator)
+ ctx.PreArchMutators(RegisterNamespaceMutator)
ctx.Register()
_, errs = ctx.ParseBlueprintsFiles("Android.bp")
diff --git a/java/jacoco.go b/java/jacoco.go
index 8f1ceb2..541a84a 100644
--- a/java/jacoco.go
+++ b/java/jacoco.go
@@ -22,6 +22,7 @@
"strings"
"github.com/google/blueprint"
+ "github.com/google/blueprint/proptools"
"android/soong/android"
)
@@ -105,13 +106,22 @@
return nil, err
}
}
- return specs, nil
+ return proptools.NinjaAndShellEscape(specs), nil
}
func jacocoFilterToSpec(filter string) (string, error) {
- wildcard := strings.HasSuffix(filter, "*")
- filter = strings.TrimSuffix(filter, "*")
- recursiveWildcard := wildcard && (strings.HasSuffix(filter, ".") || filter == "")
+ recursiveWildcard := strings.HasSuffix(filter, "**")
+ nonRecursiveWildcard := false
+ if !recursiveWildcard {
+ nonRecursiveWildcard = strings.HasSuffix(filter, "*")
+ filter = strings.TrimSuffix(filter, "*")
+ } else {
+ filter = strings.TrimSuffix(filter, "**")
+ }
+
+ if recursiveWildcard && !(strings.HasSuffix(filter, ".") || filter == "") {
+ return "", fmt.Errorf("only '**' or '.**' is supported as recursive wildcard in a filter")
+ }
if strings.ContainsRune(filter, '*') {
return "", fmt.Errorf("'*' is only supported as the last character in a filter")
@@ -121,7 +131,7 @@
if recursiveWildcard {
spec += "**/*.class"
- } else if wildcard {
+ } else if nonRecursiveWildcard {
spec += "*.class"
} else {
spec += ".class"
diff --git a/java/jacoco_test.go b/java/jacoco_test.go
index 6e8b026..91f0553 100644
--- a/java/jacoco_test.go
+++ b/java/jacoco_test.go
@@ -33,13 +33,23 @@
{
name: "package wildcard",
in: "package.*",
+ out: "package/*.class",
+ },
+ {
+ name: "package recursive wildcard",
+ in: "package.**",
out: "package/**/*.class",
},
{
- name: "all wildcard",
- in: "*",
+ name: "recursive wildcard only",
+ in: "**",
out: "**/*.class",
},
+ {
+ name: "single wildcard only",
+ in: "*",
+ out: "*.class",
+ },
}
for _, testCase := range testCases {