diff options
-rw-r--r-- | chrome/test/memory_test/memory_test.cc | 74 | ||||
-rw-r--r-- | chrome/test/page_cycler/page_cycler_test.cc | 108 | ||||
-rw-r--r-- | chrome/test/startup/feature_startup_test.cc | 14 | ||||
-rw-r--r-- | chrome/test/startup/startup_test.cc | 18 | ||||
-rw-r--r-- | chrome/test/tab_switching/tab_switching_test.cc | 6 | ||||
-rw-r--r-- | chrome/test/ui/ui_test.cc | 59 | ||||
-rw-r--r-- | chrome/test/ui/ui_test.h | 42 |
7 files changed, 161 insertions, 160 deletions
diff --git a/chrome/test/memory_test/memory_test.cc b/chrome/test/memory_test/memory_test.cc index 1a71227..b437353 100644 --- a/chrome/test/memory_test/memory_test.cc +++ b/chrome/test/memory_test/memory_test.cc @@ -80,7 +80,7 @@ class MemoryTest : public UITest { // new tab. // <PAUSE> is a special URL that informs the loop to pause before proceeding // to the next URL. - void RunTest(const wchar_t* test_name, int num_target_tabs) { + void RunTest(const char* test_name, int num_target_tabs) { std::string urls[] = { "http://www.yahoo.com/", "http://hotjobs.yahoo.com/career-articles-the_biggest_resume_mistake_you_can_make-436", @@ -258,16 +258,16 @@ class MemoryTest : public UITest { PrintResults(test_name, stop_size - start_size); } - void PrintResults(const wchar_t* test_name, size_t commit_size) { + void PrintResults(const char* test_name, size_t commit_size) { PrintMemoryUsageInfo(test_name); - std::wstring trace_name(test_name); - trace_name.append(L"_cc"); + std::string trace_name(test_name); + trace_name.append("_cc"); - PrintResult(L"commit_charge", L"", trace_name, - commit_size / 1024, L"kb", true /* important */); + PrintResult("commit_charge", "", trace_name, + commit_size / 1024, "kb", true /* important */); } - void PrintIOPerfInfo(const wchar_t* test_name) { + void PrintIOPerfInfo(const char* test_name) { printf("\n"); BrowserProcessFilter chrome_filter(user_data_dir_); base::NamedProcessIterator @@ -292,34 +292,34 @@ class MemoryTest : public UITest { ZeroMemory(&io_counters, sizeof(io_counters)); if (process_metrics.get()->GetIOCounters(&io_counters)) { - std::wstring chrome_name = - (pid == chrome_filter.browser_process_id()) ? L"_b" : L"_r"; + std::string chrome_name = + (pid == chrome_filter.browser_process_id()) ? "_b" : "_r"; // Print out IO performance. We assume that the values can be // converted to size_t (they're reported as ULONGLONG, 64-bit numbers). - PrintResult(L"read_op", chrome_name, test_name + chrome_name, - static_cast<size_t>(io_counters.ReadOperationCount), L"", + PrintResult("read_op", chrome_name, test_name + chrome_name, + static_cast<size_t>(io_counters.ReadOperationCount), "", false /* not important */); - PrintResult(L"write_op", chrome_name, test_name + chrome_name, - static_cast<size_t>(io_counters.WriteOperationCount), L"", + PrintResult("write_op", chrome_name, test_name + chrome_name, + static_cast<size_t>(io_counters.WriteOperationCount), "", false /* not important */); - PrintResult(L"other_op", chrome_name, test_name + chrome_name, - static_cast<size_t>(io_counters.OtherOperationCount), L"", + PrintResult("other_op", chrome_name, test_name + chrome_name, + static_cast<size_t>(io_counters.OtherOperationCount), "", false /* not important */); - PrintResult(L"read_byte", chrome_name, test_name + chrome_name, + PrintResult("read_byte", chrome_name, test_name + chrome_name, static_cast<size_t>(io_counters.ReadTransferCount / 1024), - L"kb", false /* not important */); - PrintResult(L"write_byte", chrome_name, test_name + chrome_name, + "kb", false /* not important */); + PrintResult("write_byte", chrome_name, test_name + chrome_name, static_cast<size_t>(io_counters.WriteTransferCount / 1024), - L"kb", false /* not important */); - PrintResult(L"other_byte", chrome_name, test_name + chrome_name, + "kb", false /* not important */); + PrintResult("other_byte", chrome_name, test_name + chrome_name, static_cast<size_t>(io_counters.OtherTransferCount / 1024), - L"kb", false /* not important */); + "kb", false /* not important */); } } } - void PrintMemoryUsageInfo(const wchar_t* test_name) { + void PrintMemoryUsageInfo(const char* test_name) { printf("\n"); BrowserProcessFilter chrome_filter(user_data_dir_); base::NamedProcessIterator @@ -350,21 +350,21 @@ class MemoryTest : public UITest { } } - std::wstring trace_name(test_name); - PrintResult(L"vm_final_browser", L"", trace_name + L"_vm_b", - browser_virtual_size / 1024, L"kb", + std::string trace_name(test_name); + PrintResult("vm_final_browser", "", trace_name + "_vm_b", + browser_virtual_size / 1024, "kb", false /* not important */); - PrintResult(L"ws_final_browser", L"", trace_name + L"_ws_b", - browser_working_set_size / 1024, L"kb", + PrintResult("ws_final_browser", "", trace_name + "_ws_b", + browser_working_set_size / 1024, "kb", false /* not important */); - PrintResult(L"vm_final_total", L"", trace_name + L"_vm", - virtual_size / 1024, L"kb", + PrintResult("vm_final_total", "", trace_name + "_vm", + virtual_size / 1024, "kb", false /* not important */); - PrintResult(L"ws_final_total", L"", trace_name + L"_ws", - working_set_size / 1024, L"kb", + PrintResult("ws_final_total", "", trace_name + "_ws", + working_set_size / 1024, "kb", true /* important */); - PrintResult(L"processes", L"", trace_name + L"_proc", - num_chrome_processes, L"", + PrintResult("processes", "", trace_name + "_proc", + num_chrome_processes, "", false /* not important */); } @@ -417,7 +417,7 @@ class MemoryReferenceTest : public MemoryTest { UITest::SetUp(); } - void RunTest(const wchar_t* test_name, int num_target_tabs) { + void RunTest(const char* test_name, int num_target_tabs) { std::wstring pages, timings; MemoryTest::RunTest(test_name, num_target_tabs); } @@ -426,13 +426,13 @@ class MemoryReferenceTest : public MemoryTest { } // namespace TEST_F(MemoryTest, SingleTabTest) { - RunTest(L"1t", 1); + RunTest("1t", 1); } TEST_F(MemoryTest, FiveTabTest) { - RunTest(L"5t", 5); + RunTest("5t", 5); } TEST_F(MemoryTest, TwelveTabTest) { - RunTest(L"12t", 12); + RunTest("12t", 12); } diff --git a/chrome/test/page_cycler/page_cycler_test.cc b/chrome/test/page_cycler/page_cycler_test.cc index c56bdc6..45a769c 100644 --- a/chrome/test/page_cycler/page_cycler_test.cc +++ b/chrome/test/page_cycler/page_cycler_test.cc @@ -47,7 +47,7 @@ class PageCyclerTest : public UITest { // For HTTP tests, the name must be safe for use in a URL without escaping. void RunPageCycler(const char* name, std::wstring* pages, - std::wstring* timings, bool use_http) { + std::string* timings, bool use_http) { GURL test_url; if (use_http) { test_url = GURL(std::string(kBaseUrl) + name + "/start.html"); @@ -83,13 +83,13 @@ class PageCyclerTest : public UITest { pages->assign(UTF8ToWide(cookie)); ASSERT_FALSE(pages->empty()); ASSERT_TRUE(tab->GetCookieByName(test_url, "__pc_timings", &cookie)); - timings->assign(UTF8ToWide(cookie)); + timings->assign(cookie); ASSERT_FALSE(timings->empty()); } #if defined(OS_WIN) // TODO(port): Code below depends on BrowserProcessFilter and has windowsisms. - void PrintIOPerfInfo(const wchar_t* test_name) { + void PrintIOPerfInfo(const char* test_name) { BrowserProcessFilter chrome_filter(L""); base::NamedProcessIterator chrome_process_itr(chrome::kBrowserProcessExecutableName, @@ -111,55 +111,55 @@ class PageCyclerTest : public UITest { if (process_metrics.get()->GetIOCounters(&io_counters)) { // Print out IO performance. We assume that the values can be // converted to size_t (they're reported as ULONGLONG, 64-bit numbers). - std::wstring chrome_name = - (pid == chrome_filter.browser_process_id()) ? L"_b" : L"_r"; + std::string chrome_name = + (pid == chrome_filter.browser_process_id()) ? "_b" : "_r"; - PrintResult(L"read_op", chrome_name, - L"r_op" + chrome_name + test_name, - static_cast<size_t>(io_counters.ReadOperationCount), L"", + PrintResult("read_op", chrome_name, + "r_op" + chrome_name + test_name, + static_cast<size_t>(io_counters.ReadOperationCount), "", false /* not important */); - PrintResult(L"write_op", chrome_name, - L"w_op" + chrome_name + test_name, - static_cast<size_t>(io_counters.WriteOperationCount), L"", + PrintResult("write_op", chrome_name, + "w_op" + chrome_name + test_name, + static_cast<size_t>(io_counters.WriteOperationCount), "", false /* not important */); - PrintResult(L"other_op", chrome_name, - L"o_op" + chrome_name + test_name, - static_cast<size_t>(io_counters.OtherOperationCount), L"", + PrintResult("other_op", chrome_name, + "o_op" + chrome_name + test_name, + static_cast<size_t>(io_counters.OtherOperationCount), "", false /* not important */); size_t total = static_cast<size_t>(io_counters.ReadOperationCount + io_counters.WriteOperationCount + io_counters.OtherOperationCount); - PrintResult(L"total_op", chrome_name, - L"IO_op" + chrome_name + test_name, - total, L"", true /* important */); + PrintResult("total_op", chrome_name, + "IO_op" + chrome_name + test_name, + total, "", true /* important */); - PrintResult(L"read_byte", chrome_name, - L"r_b" + chrome_name + test_name, + PrintResult("read_byte", chrome_name, + "r_b" + chrome_name + test_name, static_cast<size_t>(io_counters.ReadTransferCount / 1024), - L"kb", false /* not important */); - PrintResult(L"write_byte", chrome_name, - L"w_b" + chrome_name + test_name, + "kb", false /* not important */); + PrintResult("write_byte", chrome_name, + "w_b" + chrome_name + test_name, static_cast<size_t>(io_counters.WriteTransferCount / 1024), - L"kb", false /* not important */); - PrintResult(L"other_byte", chrome_name, - L"o_b" + chrome_name + test_name, + "kb", false /* not important */); + PrintResult("other_byte", chrome_name, + "o_b" + chrome_name + test_name, static_cast<size_t>(io_counters.OtherTransferCount / 1024), - L"kb", false /* not important */); + "kb", false /* not important */); total = static_cast<size_t>((io_counters.ReadTransferCount + io_counters.WriteTransferCount + io_counters.OtherTransferCount) / 1024); - PrintResult(L"total_byte", chrome_name, - L"IO_b" + chrome_name + test_name, - total, L"kb", true /* important */); + PrintResult("total_byte", chrome_name, + "IO_b" + chrome_name + test_name, + total, "kb", true /* important */); } } } - void PrintMemoryUsageInfo(const wchar_t* test_name) { + void PrintMemoryUsageInfo(const char* test_name) { BrowserProcessFilter chrome_filter(L""); base::NamedProcessIterator chrome_process_itr(chrome::kBrowserProcessExecutableName, @@ -175,25 +175,25 @@ class PageCyclerTest : public UITest { if (GetMemoryInfo(pid, &peak_virtual_size, ¤t_virtual_size, &peak_working_set_size, ¤t_working_set_size)) { - std::wstring chrome_name = - (pid == chrome_filter.browser_process_id()) ? L"_b" : L"_r"; + std::string chrome_name = + (pid == chrome_filter.browser_process_id()) ? "_b" : "_r"; - std::wstring trace_name(test_name); - PrintResult(L"vm_peak", chrome_name, - L"vm_pk" + chrome_name + trace_name, - peak_virtual_size, L"bytes", + std::string trace_name(test_name); + PrintResult("vm_peak", chrome_name, + "vm_pk" + chrome_name + trace_name, + peak_virtual_size, "bytes", true /* important */); - PrintResult(L"vm_final", chrome_name, - L"vm_f" + chrome_name + trace_name, - current_virtual_size, L"bytes", + PrintResult("vm_final", chrome_name, + "vm_f" + chrome_name + trace_name, + current_virtual_size, "bytes", false /* not important */); - PrintResult(L"ws_peak", chrome_name, - L"ws_pk" + chrome_name + trace_name, - peak_working_set_size, L"bytes", + PrintResult("ws_peak", chrome_name, + "ws_pk" + chrome_name + trace_name, + peak_working_set_size, "bytes", true /* important */); - PrintResult(L"ws_final", chrome_name, - L"ws_pk" + chrome_name + trace_name, - current_working_set_size, L"bytes", + PrintResult("ws_final", chrome_name, + "ws_pk" + chrome_name + trace_name, + current_working_set_size, "bytes", false /* not important */); } } @@ -205,19 +205,20 @@ class PageCyclerTest : public UITest { // escaping. (No pound (#), question mark (?), semicolon (;), non-ASCII, or // other funny stuff.) void RunTest(const char* name, bool use_http) { - std::wstring pages, timings; + std::wstring pages; + std::string timings; RunPageCycler(name, &pages, &timings, use_http); if (timings.empty()) return; #if defined(OS_WIN) // TODO(port): Enable when Print{MemoryUsage,IOPerf}Info are ported. - PrintMemoryUsageInfo(L""); - PrintIOPerfInfo(L""); + PrintMemoryUsageInfo(""); + PrintIOPerfInfo(""); #endif // defined(OS_WIN) wprintf(L"\nPages: [%ls]\n", pages.c_str()); - PrintResultList(L"times", L"", L"t", timings, L"ms", + PrintResultList("times", "", "t", timings, "ms", true /* important */); } }; @@ -236,18 +237,19 @@ class PageCyclerReferenceTest : public PageCyclerTest { } void RunTest(const char* name, bool use_http) { - std::wstring pages, timings; + std::wstring pages; + std::string timings; RunPageCycler(name, &pages, &timings, use_http); if (timings.empty()) return; #if defined(OS_WIN) // TODO(port): Enable when Print{MemoryUsage,IOPerf}Info are ported. - PrintMemoryUsageInfo(L"_ref"); - PrintIOPerfInfo(L"_ref"); + PrintMemoryUsageInfo("_ref"); + PrintIOPerfInfo("_ref"); #endif // defined(OS_WIN) - PrintResultList(L"times", L"", L"t_ref", timings, L"ms", + PrintResultList("times", "", "t_ref", timings, "ms", true /* important */); } }; diff --git a/chrome/test/startup/feature_startup_test.cc b/chrome/test/startup/feature_startup_test.cc index 28d16e8..770ceb4 100644 --- a/chrome/test/startup/feature_startup_test.cc +++ b/chrome/test/startup/feature_startup_test.cc @@ -41,18 +41,18 @@ class NewTabUIStartupTest : public UITest { static const int kNumCycles = 5; - void PrintTimings(const wchar_t* label, TimeDelta timings[kNumCycles], + void PrintTimings(const char* label, TimeDelta timings[kNumCycles], bool important) { - std::wstring times; + std::string times; for (int i = 0; i < kNumCycles; ++i) - StringAppendF(×, L"%.2f,", timings[i].InMillisecondsF()); - PrintResultList(L"new_tab", L"", label, times, L"ms", important); + StringAppendF(×, "%.2f,", timings[i].InMillisecondsF()); + PrintResultList("new_tab", "", label, times, "ms", important); } // Run the test, by bringing up a browser and timing the new tab startup. // |want_warm| is true if we should output warm-disk timings, false if // we should report cold timings. - void RunStartupTest(const wchar_t* label, bool want_warm, bool important) { + void RunStartupTest(const char* label, bool want_warm, bool important) { // Install the location of the test profile file. set_template_user_data(ComputeTypicalUserDataSource()); @@ -103,9 +103,9 @@ class NewTabUIStartupTest : public UITest { // TODO(pamg): run these tests with a reference build? TEST_F(NewTabUIStartupTest, PerfCold) { - RunStartupTest(L"tab_cold", false /* not cold */, true /* important */); + RunStartupTest("tab_cold", false /* not cold */, true /* important */); } TEST_F(NewTabUIStartupTest, DISABLED_PerfWarm) { - RunStartupTest(L"tab_warm", true /* cold */, false /* not important */); + RunStartupTest("tab_warm", true /* cold */, false /* not important */); } diff --git a/chrome/test/startup/startup_test.cc b/chrome/test/startup/startup_test.cc index 665b0e6..72b239b 100644 --- a/chrome/test/startup/startup_test.cc +++ b/chrome/test/startup/startup_test.cc @@ -28,7 +28,7 @@ class StartupTest : public UITest { void SetUp() {} void TearDown() {} - void RunStartupTest(const wchar_t* graph, const wchar_t* trace, + void RunStartupTest(const char* graph, const char* trace, bool test_cold, bool important) { const int kNumCycles = 20; @@ -69,10 +69,10 @@ class StartupTest : public UITest { } } - std::wstring times; + std::string times; for (int i = 0; i < kNumCycles; ++i) - StringAppendF(×, L"%.2f,", timings[i].InMillisecondsF()); - PrintResultList(graph, L"", trace, times, L"ms", important); + StringAppendF(×, "%.2f,", timings[i].InMillisecondsF()); + PrintResultList(graph, "", trace, times, "ms", important); } protected: @@ -110,30 +110,30 @@ class StartupFileTest : public StartupTest { } // namespace TEST_F(StartupTest, Perf) { - RunStartupTest(L"warm", L"t", false /* not cold */, true /* important */); + RunStartupTest("warm", "t", false /* not cold */, true /* important */); } #if defined(OS_WIN) // TODO(port): Enable reference tests on other platforms. TEST_F(StartupReferenceTest, Perf) { - RunStartupTest(L"warm", L"t_ref", false /* not cold */, + RunStartupTest("warm", "t_ref", false /* not cold */, true /* important */); } // TODO(mpcomplete): Should we have reference timings for all these? TEST_F(StartupTest, PerfCold) { - RunStartupTest(L"cold", L"t", true /* cold */, false /* not important */); + RunStartupTest("cold", "t", true /* cold */, false /* not important */); } TEST_F(StartupFileTest, PerfGears) { - RunStartupTest(L"warm", L"gears", false /* not cold */, + RunStartupTest("warm", "gears", false /* not cold */, false /* not important */); } TEST_F(StartupFileTest, PerfColdGears) { - RunStartupTest(L"cold", L"gears", true /* cold */, + RunStartupTest("cold", "gears", true /* cold */, false /* not important */); } diff --git a/chrome/test/tab_switching/tab_switching_test.cc b/chrome/test/tab_switching/tab_switching_test.cc index 182dfe6..5fbbae5 100644 --- a/chrome/test/tab_switching/tab_switching_test.cc +++ b/chrome/test/tab_switching/tab_switching_test.cc @@ -100,9 +100,9 @@ class TabSwitchingUITest : public UITest { } // Print the average and standard deviation. - PrintResultMeanAndError(L"tab_switch", L"", L"t", - ASCIIToWide(average) + L", " + ASCIIToWide(std_dev), L"ms", - true /* important */); + PrintResultMeanAndError("tab_switch", "", "t", + average + ", " + std_dev, "ms", + true /* important */); } protected: diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc index 66d7e75..dc8b3ec 100644 --- a/chrome/test/ui/ui_test.cc +++ b/chrome/test/ui/ui_test.cc @@ -790,52 +790,51 @@ void UITest::WaitForFinish(const std::string &name, EXPECT_EQ(true, test_result); } -void UITest::PrintResult(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, +void UITest::PrintResult(const std::string& measurement, + const std::string& modifier, + const std::string& trace, size_t value, - const std::wstring& units, + const std::string& units, bool important) { - std::wstring value_str = StringPrintf(L"%d", value); - PrintResultsImpl(measurement, modifier, trace, value_str, - L"", L"", units, important); + PrintResultsImpl(measurement, modifier, trace, UintToString(value), + "", "", units, important); } -void UITest::PrintResultMeanAndError(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& mean_and_error, - const std::wstring& units, +void UITest::PrintResultMeanAndError(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& mean_and_error, + const std::string& units, bool important) { PrintResultsImpl(measurement, modifier, trace, mean_and_error, - L"{", L"}", units, important); + "{", "}", units, important); } -void UITest::PrintResultList(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& values, - const std::wstring& units, +void UITest::PrintResultList(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& values, + const std::string& units, bool important) { PrintResultsImpl(measurement, modifier, trace, values, - L"[", L"]", units, important); + "[", "]", units, important); } -void UITest::PrintResultsImpl(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& values, - const std::wstring& prefix, - const std::wstring& suffix, - const std::wstring& units, +void UITest::PrintResultsImpl(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& values, + const std::string& prefix, + const std::string& suffix, + const std::string& units, bool important) { // <*>RESULT <graph_name>: <trace_name>= <value> <units> // <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units> // <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units> - wprintf(L"%lsRESULT %ls%ls: %ls= %ls%ls%ls %ls\n", - important ? L"*" : L"", measurement.c_str(), modifier.c_str(), - trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(), - units.c_str()); + printf("%sRESULT %s%s: %s= %s%s%s %s\n", + important ? "*" : "", measurement.c_str(), modifier.c_str(), + trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(), + units.c_str()); } bool UITest::EvictFileFromSystemCacheWrapper(const FilePath& path) { diff --git a/chrome/test/ui/ui_test.h b/chrome/test/ui/ui_test.h index 74c1424..6f35cdc 100644 --- a/chrome/test/ui/ui_test.h +++ b/chrome/test/ui/ui_test.h @@ -194,32 +194,32 @@ class UITest : public testing::Test { // produced for various builds, using the combined |measurement| + |modifier| // string to specify a particular graph and the |trace| to identify a trace // (i.e., data series) on that graph. - void PrintResult(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, + void PrintResult(const std::string& measurement, + const std::string& modifier, + const std::string& trace, size_t value, - const std::wstring& units, + const std::string& units, bool important); // Like PrintResult(), but prints a (mean, standard deviation) result pair. // The |<values>| should be two comma-seaprated numbers, the mean and // standard deviation (or other error metric) of the measurement. - void PrintResultMeanAndError(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& mean_and_error, - const std::wstring& units, + void PrintResultMeanAndError(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& mean_and_error, + const std::string& units, bool important); // Like PrintResult(), but prints an entire list of results. The |values| // will generally be a list of comma-separated numbers. A typical // post-processing step might produce plots of their mean and standard // deviation. - void PrintResultList(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& values, - const std::wstring& units, + void PrintResultList(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& values, + const std::string& units, bool important); // Gets the directory for the currently active profile in the browser. @@ -373,13 +373,13 @@ class UITest : public testing::Test { void AssertAppNotRunning(const std::wstring& error_message); // Common functionality for the public PrintResults methods. - void PrintResultsImpl(const std::wstring& measurement, - const std::wstring& modifier, - const std::wstring& trace, - const std::wstring& values, - const std::wstring& prefix, - const std::wstring& suffix, - const std::wstring& units, + void PrintResultsImpl(const std::string& measurement, + const std::string& modifier, + const std::string& trace, + const std::string& values, + const std::string& prefix, + const std::string& suffix, + const std::string& units, bool important); protected: |