blob: d0b640289591245e12bc35108014766ea05eda92 [file] [log] [blame]
diff --git a/tests/perf_tests/third_party/perf/perf_test.cc b/tests/perf_tests/third_party/perf/perf_test.cc
index 0d5abc0..7364330 100644
--- a/tests/perf_tests/third_party/perf/perf_test.cc
+++ b/tests/perf_tests/third_party/perf/perf_test.cc
@@ -2,16 +2,51 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "testing/perf/perf_test.h"
+#include "perf_test.h"
#include <stdio.h>
-
-#include "base/logging.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/stringprintf.h"
+#include <stdarg.h>
+#include <vector>
namespace {
+namespace base {
+
+std::string FormatString(const char *fmt, va_list vararg) {
+ static std::vector<char> buffer(512);
+
+ // Attempt to just print to the current buffer
+ int len = vsnprintf(&buffer[0], buffer.size(), fmt, vararg);
+ if (len < 0 || static_cast<size_t>(len) >= buffer.size()) {
+ // Buffer was not large enough, calculate the required size and resize the buffer
+ len = vsnprintf(NULL, 0, fmt, vararg);
+ buffer.resize(len + 1);
+
+ // Print again
+ vsnprintf(&buffer[0], buffer.size(), fmt, vararg);
+ }
+
+ return std::string(buffer.data(), len);
+}
+
+std::string StringPrintf(const char *fmt, ...) {
+ va_list vararg;
+ va_start(vararg, fmt);
+ std::string result = FormatString(fmt, vararg);
+ va_end(vararg);
+ return result;
+}
+
+std::string UintToString(unsigned int value) {
+ return StringPrintf("%u", value);
+}
+
+std::string DoubleToString(double value) {
+ return StringPrintf("%.10lf", value);
+}
+
+}
+
std::string ResultsToString(const std::string& measurement,
const std::string& modifier,
const std::string& trace,