cc: fix a utility to make C macro name
Use the result of regex.ReplaceAllString()
Bug: 149591522 (not directly related to this)
Test: m (with new unit test)
Change-Id: Ifce07547ccc067f1ee5bd8467c2fb7d7f8387b8e
diff --git a/cc/cc_test.go b/cc/cc_test.go
index 56b36df..9a9678f 100644
--- a/cc/cc_test.go
+++ b/cc/cc_test.go
@@ -2387,6 +2387,17 @@
}
}
+func checkEquals(t *testing.T, message string, expected, actual interface{}) {
+ if !reflect.DeepEqual(actual, expected) {
+ t.Errorf(message+
+ "\nactual: %v"+
+ "\nexpected: %v",
+ actual,
+ expected,
+ )
+ }
+}
+
func TestLlndkHeaders(t *testing.T) {
ctx := testCc(t, `
llndk_headers {
@@ -2817,6 +2828,18 @@
}
}
+func TestVersioningMacro(t *testing.T) {
+ for _, tc := range []struct{ moduleName, expected string }{
+ {"libc", "__LIBC_API__"},
+ {"libfoo", "__LIBFOO_API__"},
+ {"libfoo@1", "__LIBFOO_1_API__"},
+ {"libfoo-v1", "__LIBFOO_V1_API__"},
+ {"libfoo.v1", "__LIBFOO_V1_API__"},
+ } {
+ checkEquals(t, tc.moduleName, tc.expected, versioningMacroName(tc.moduleName))
+ }
+}
+
func TestStaticExecutable(t *testing.T) {
ctx := testCc(t, `
cc_binary {
diff --git a/cc/library.go b/cc/library.go
index 6bd93f9..335b18e 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -1329,7 +1329,7 @@
func versioningMacroName(moduleName string) string {
macroName := charsNotForMacro.ReplaceAllString(moduleName, "_")
- macroName = strings.ToUpper(moduleName)
+ macroName = strings.ToUpper(macroName)
return "__" + macroName + "_API__"
}