Преглед на файлове

Add checkpoint diagnostics to help diagnose buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275754 91177308-0d34-0410-b5e6-96231b3b80d8
Eric Fiselier преди 9 години
родител
ревизия
f5750d5c05
променени са 2 файла, в които са добавени 11 реда и са изтрити 2 реда
  1. 4 0
      test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp
  2. 7 2
      test/support/assert_checkpoint.h

+ 4 - 0
test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp

@@ -28,10 +28,12 @@
 #include <cassert>
 
 #include "platform_support.h" // locale name macros
+#include "assert_checkpoint.h"
 
 int main()
 {
     {
+        CHECKPOINT("constructing en-US.UTF-8");
         std::locale l(LOCALE_en_US_UTF_8);
         {
             assert(std::has_facet<std::ctype_byname<char> >(l));
@@ -45,6 +47,7 @@ int main()
         }
     }
     {
+        CHECKPOINT("constructing default locale");
         std::locale l("");
         {
             assert(std::has_facet<std::ctype_byname<char> >(l));
@@ -58,6 +61,7 @@ int main()
         }
     }
     {
+        CHECKPOINT("constructing C locale");
         std::locale l("C");
         {
             assert(std::has_facet<std::ctype_byname<char> >(l));

+ 7 - 2
test/support/assert_checkpoint.h

@@ -11,6 +11,11 @@ struct Checkpoint {
   int line;
   const char* msg;
 
+  Checkpoint() : file(nullptr), func(nullptr), line(-1), msg(nullptr) {}
+  Checkpoint(const char* xfile, const char* xfunc, int xline, const char* xmsg)
+      : file(xfile), func(xfunc), line(xline), msg(xmsg)
+  {}
+
   template <class Stream>
   void print(Stream& s) const {
       if (!file) {
@@ -30,7 +35,7 @@ inline Checkpoint& globalCheckpoint() {
 }
 
 inline void clearCheckpoint() {
-    globalCheckpoint() = {};
+    globalCheckpoint() = Checkpoint();
 }
 
 #if defined(__GNUC__)
@@ -39,7 +44,7 @@ inline void clearCheckpoint() {
 #define CHECKPOINT_FUNCTION_NAME __func__
 #endif
 
-#define CHECKPOINT(msg) globalCheckpoint() = Checkpoint{__FILE__, CHECKPOINT_FUNCTION_NAME, __LINE__, msg}
+#define CHECKPOINT(msg) globalCheckpoint() = Checkpoint(__FILE__, CHECKPOINT_FUNCTION_NAME, __LINE__, msg);
 
 inline void checkpointSignalHandler(int signal) {
     if (signal == SIGABRT) {