Index: third_party/WebKit/Source/wtf/AssertionsTest.cpp |
diff --git a/third_party/WebKit/Source/wtf/AssertionsTest.cpp b/third_party/WebKit/Source/wtf/AssertionsTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6cae157071aba664223c0b9e680765c3469c0cc7 |
--- /dev/null |
+++ b/third_party/WebKit/Source/wtf/AssertionsTest.cpp |
@@ -0,0 +1,53 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "wtf/Assertions.h" |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "wtf/text/StringBuilder.h" |
+#include <stdio.h> |
+ |
+#if !LOG_DISABLED |
+namespace WTF { |
+ |
+static const int kPrinterBufferSize = 256; |
+static char gBuffer[kPrinterBufferSize]; |
+static StringBuilder gBuilder; |
+ |
+static void vprint(const char* format, va_list args) |
+{ |
+ int written = vsnprintf(gBuffer, kPrinterBufferSize, format, args); |
+ if (written > 0 && written < kPrinterBufferSize) |
+ gBuilder.append(gBuffer); |
+} |
+ |
+TEST(AssertionsTest, ScopedLogger) |
+{ |
+ ScopedLogger::setPrintFuncForTests(vprint); |
+ { |
+ WTF_CREATE_SCOPED_LOGGER(a, "a1"); |
+ { |
+ WTF_CREATE_SCOPED_LOGGER_IF(b, false, "b1"); |
+ { |
+ WTF_CREATE_SCOPED_LOGGER(c, "c"); |
+ { |
+ WTF_CREATE_SCOPED_LOGGER(d, "d %d %s", -1, "hello"); |
+ } |
+ } |
+ WTF_APPEND_SCOPED_LOGGER(b, "b2"); |
+ } |
+ WTF_APPEND_SCOPED_LOGGER(a, "a2 %.1f", 0.5); |
+ } |
+ |
+ EXPECT_EQ( |
+ "( a1\n" |
+ " ( c\n" |
+ " ( d -1 hello )\n" |
+ " )\n" |
+ " a2 0.5\n" |
+ ")\n", gBuilder.toString()); |
+}; |
+ |
+} // namespace WTF |
+#endif // !LOG_DISABLED |