From b04a4997b80c9cdad1b66e60d3d995a2598a53a4 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Fri, 13 Mar 2020 18:57:35 +0900 Subject: [PATCH] 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 --- cc/cc_test.go | 23 +++++++++++++++++++++++ cc/library.go | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/cc/cc_test.go b/cc/cc_test.go index 56b36df57..9a9678f1d 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -2387,6 +2387,17 @@ func TestStaticLibDepReorderingWithShared(t *testing.T) { } } +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 TestVersionedStubs(t *testing.T) { } } +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 6bd93f969..335b18e18 100644 --- a/cc/library.go +++ b/cc/library.go @@ -1329,7 +1329,7 @@ var charsNotForMacro = regexp.MustCompile("[^a-zA-Z0-9_]+") func versioningMacroName(moduleName string) string { macroName := charsNotForMacro.ReplaceAllString(moduleName, "_") - macroName = strings.ToUpper(moduleName) + macroName = strings.ToUpper(macroName) return "__" + macroName + "_API__" }