Index: src/tools/windows/dump_syms/dump_syms_unittest.cc |
diff --git a/src/tools/windows/dump_syms/dump_syms_unittest.cc b/src/tools/windows/dump_syms/dump_syms_unittest.cc |
index 61f84431ede46c84f3c8525c7dd57ac8e6806ddb..80205dcfec5c5bed7998bff9d48ab80381ff46b4 100644 |
--- a/src/tools/windows/dump_syms/dump_syms_unittest.cc |
+++ b/src/tools/windows/dump_syms/dump_syms_unittest.cc |
@@ -56,12 +56,16 @@ const wchar_t* kRootNames[] = { |
// without source data. |
L"omap_stretched", |
// A PDB file with OMAP data for an image that has been basic block reordered. |
- L"omap_reorder_bbs", |
- // A 64bit PDB file with no OMAP data. |
- L"dump_syms_regtest64", |
-}; |
- |
-void TrimLastComponent(const std::wstring& path, |
+ L"omap_reorder_bbs", |
+ // A 64bit PDB file with no OMAP data. |
+ L"dump_syms_regtest64", |
+ // A 64bit PDB file with PDATA |
+ L"pdb_pdata_in_pdb", |
+ // A 64bit PDB file with an exe to provide PDATA |
+ L"pdb_pdata_in_exe", |
+}; |
+ |
+void TrimLastComponent(const std::wstring& path, |
std::wstring* trimmed, |
std::wstring* component) { |
size_t len = path.size(); |
@@ -160,13 +164,13 @@ void GetFileContents(const std::wstring& path, std::string* content) { |
if (bytes_read == 0) |
break; |
content->append(buffer, bytes_read); |
- } |
-} |
- |
-class DumpSymsRegressionTest : public testing::Test { |
- public: |
- virtual void SetUp() { |
- std::wstring self_dir; |
+ } |
+} |
+ |
+class DumpSymsRegressionTest : public testing::TestWithParam<const wchar_t *> { |
+ public: |
+ virtual void SetUp() { |
+ std::wstring self_dir; |
ASSERT_TRUE(GetSelfDirectory(&self_dir)); |
dump_syms_exe = self_dir + L"\\dump_syms.exe"; |
@@ -177,15 +181,14 @@ class DumpSymsRegressionTest : public testing::Test { |
std::wstring dump_syms_exe; |
std::wstring testdata_dir; |
}; |
- |
-} //namespace |
- |
-TEST_F(DumpSymsRegressionTest, EnsureDumpedSymbolsMatch) { |
- for (size_t i = 0; i < sizeof(kRootNames) / sizeof(kRootNames[0]); ++i) { |
- const wchar_t* root_name = kRootNames[i]; |
- std::wstring root_path = testdata_dir + L"\\" + root_name; |
- |
- std::wstring sym_path = root_path + L".sym"; |
+ |
+} //namespace |
+ |
+TEST_P(DumpSymsRegressionTest, EnsureDumpedSymbolsMatch) { |
+ const wchar_t* root_name = GetParam(); |
+ std::wstring root_path = testdata_dir + L"\\" + root_name; |
+ |
+ std::wstring sym_path = root_path + L".sym"; |
std::string expected_symbols; |
ASSERT_NO_FATAL_FAILURE(GetFileContents(sym_path, &expected_symbols)); |
@@ -193,12 +196,14 @@ TEST_F(DumpSymsRegressionTest, EnsureDumpedSymbolsMatch) { |
std::wstring command_line = L"\"" + dump_syms_exe + L"\" \"" + |
pdb_path + L"\""; |
std::string symbols; |
- ASSERT_NO_FATAL_FAILURE(RunCommand(command_line, &symbols)); |
- |
- EXPECT_EQ(expected_symbols, symbols); |
- } |
-} |
- |
-} // namespace dump_syms |
-} // namespace windows |
-} // namespace tools |
+ ASSERT_NO_FATAL_FAILURE(RunCommand(command_line, &symbols)); |
+ |
+ EXPECT_EQ(expected_symbols, symbols); |
+} |
+ |
+INSTANTIATE_TEST_CASE_P(DumpSyms, DumpSymsRegressionTest, |
+ testing::ValuesIn(kRootNames)); |
+ |
+} // namespace dump_syms |
+} // namespace windows |
+} // namespace tools |