Commit c9f2693e by Roman Lebedev Committed by Eric

StrFormat() is a printf-like function, mark it as such, fix fallout. (#727)

Fixes #714.
parent c9311a44
...@@ -182,14 +182,19 @@ bool BenchmarkFamilies::FindBenchmarks( ...@@ -182,14 +182,19 @@ bool BenchmarkFamilies::FindBenchmarks(
} }
} }
instance.name += StrFormat("%d", arg); // we know that the args are always non-negative (see 'AddRange()'),
// thus print as 'unsigned'. BUT, do a cast due to the 32-bit builds.
instance.name += StrFormat("%lu", static_cast<unsigned long>(arg));
++arg_i; ++arg_i;
} }
if (!IsZero(family->min_time_)) if (!IsZero(family->min_time_))
instance.name += StrFormat("/min_time:%0.3f", family->min_time_); instance.name += StrFormat("/min_time:%0.3f", family->min_time_);
if (family->iterations_ != 0) if (family->iterations_ != 0) {
instance.name += StrFormat("/iterations:%d", family->iterations_); instance.name +=
StrFormat("/iterations:%lu",
static_cast<unsigned long>(family->iterations_));
}
if (family->repetitions_ != 0) if (family->repetitions_ != 0)
instance.name += StrFormat("/repeats:%d", family->repetitions_); instance.name += StrFormat("/repeats:%d", family->repetitions_);
......
...@@ -12,7 +12,11 @@ void AppendHumanReadable(int n, std::string* str); ...@@ -12,7 +12,11 @@ void AppendHumanReadable(int n, std::string* str);
std::string HumanReadableNumber(double n, double one_k = 1024.0); std::string HumanReadableNumber(double n, double one_k = 1024.0);
std::string StrFormat(const char* format, ...); #ifdef __GNUC__
__attribute__((format(printf, 1, 2)))
#endif
std::string
StrFormat(const char* format, ...);
inline std::ostream& StrCatImp(std::ostream& out) BENCHMARK_NOEXCEPT { inline std::ostream& StrCatImp(std::ostream& out) BENCHMARK_NOEXCEPT {
return out; return out;
......
...@@ -220,6 +220,18 @@ ADD_CASES(TC_JSONOut, ...@@ -220,6 +220,18 @@ ADD_CASES(TC_JSONOut,
ADD_CASES(TC_CSVOut, {{"^\"BM_arg_names/first:2/5/third:4\",%csv_report$"}}); ADD_CASES(TC_CSVOut, {{"^\"BM_arg_names/first:2/5/third:4\",%csv_report$"}});
// ========================================================================= // // ========================================================================= //
// ------------------------ Testing Big Args Output ------------------------ //
// ========================================================================= //
void BM_BigArgs(benchmark::State& state) {
for (auto _ : state) {
}
}
BENCHMARK(BM_BigArgs)->RangeMultiplier(2)->Range(1U << 30U, 1U << 31U);
ADD_CASES(TC_ConsoleOut, {{"^BM_BigArgs/1073741824 %console_report$"},
{"^BM_BigArgs/2147483648 %console_report$"}});
// ========================================================================= //
// ----------------------- Testing Complexity Output ----------------------- // // ----------------------- Testing Complexity Output ----------------------- //
// ========================================================================= // // ========================================================================= //
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment