diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2017-05-09 17:05:55 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2017-05-09 17:14:15 +0900 |
commit | 0d78884a22802cffc96d3779e953e764cb4fdaa4 (patch) | |
tree | b08419b05351bb61f340575818f513f2fa95ad43 | |
parent | 7314fa3f8682c9ebff6dc820bd40c490d9ec1bec (diff) | |
download | glog-0d78884a22802cffc96d3779e953e764cb4fdaa4.tar.gz glog-0d78884a22802cffc96d3779e953e764cb4fdaa4.tar.bz2 glog-0d78884a22802cffc96d3779e953e764cb4fdaa4.zip |
Relax test for symbolize
Don't rely on an internal-linkage extern "C" function having an
unmangled name. This isn't required by the ABI, and in fact is not
valid for a conforming compiler(!). Instead, allow symbolization to
produce either a mangled or an unmangled name here.
-rw-r--r-- | src/symbolize_unittest.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/symbolize_unittest.cc b/src/symbolize_unittest.cc index 05cb8a1..26616e6 100644 --- a/src/symbolize_unittest.cc +++ b/src/symbolize_unittest.cc @@ -99,7 +99,13 @@ TEST(Symbolize, Symbolize) { // Compilers should give us pointers to them. EXPECT_STREQ("nonstatic_func", TrySymbolize((void *)(&nonstatic_func))); - EXPECT_STREQ("static_func", TrySymbolize((void *)(&static_func))); + + // The name of an internal linkage symbol is not specified; allow either a + // mangled or an unmangled name here. + const char *static_func_symbol = TrySymbolize((void *)(&static_func)); + CHECK(NULL != static_func_symbol); + EXPECT_TRUE(strcmp("static_func", static_func_symbol) == 0 || + strcmp("static_func()", static_func_symbol) == 0); EXPECT_TRUE(NULL == TrySymbolize(NULL)); } @@ -267,9 +273,13 @@ TEST(Symbolize, SymbolizeStackConsumption) { EXPECT_GT(stack_consumed, 0); EXPECT_LT(stack_consumed, kStackConsumptionUpperLimit); + // The name of an internal linkage symbol is not specified; allow either a + // mangled or an unmangled name here. symbol = SymbolizeStackConsumption((void *)(&static_func), &stack_consumed); - EXPECT_STREQ("static_func", symbol); + CHECK(NULL != symbol); + EXPECT_TRUE(strcmp("static_func", symbol) == 0 || + strcmp("static_func()", symbol) == 0); EXPECT_GT(stack_consumed, 0); EXPECT_LT(stack_consumed, kStackConsumptionUpperLimit); } |