Add XFAILs

http://reviews.llvm.org/D4045

Files:
  include/__config
  include/chrono
  libcxx/test/lit.site.cfg
  libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
  libcxx/test/utilities/time/time.clock/time.clock.steady/now.pass.cpp
  src/chrono.cpp
Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -639,6 +639,11 @@
 #  define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1
 #endif
 
+#if (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) && \
+    (defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK > 0)
+#define _LIBCPP_HAS_MONOTONIC_CLOCK 1
+#endif
+
 #ifndef _LIBCPP_STD_VER
 #  if  __cplusplus <= 201103L
 #    define _LIBCPP_STD_VER 11
Index: include/chrono
===================================================================
--- include/chrono
+++ include/chrono
@@ -926,6 +926,7 @@
     static time_point from_time_t(time_t __t) _NOEXCEPT;
 };
 
+#if _LIBCPP_HAS_MONOTONIC_CLOCK
 class _LIBCPP_TYPE_VIS steady_clock
 {
 public:
@@ -939,6 +940,9 @@
 };
 
 typedef steady_clock high_resolution_clock;
+#else
+typedef system_clock high_resolution_clock;
+#endif
 
 } // chrono
 
Index: src/chrono.cpp
===================================================================
--- src/chrono.cpp
+++ src/chrono.cpp
@@ -46,6 +46,7 @@
     return system_clock::time_point(seconds(t));
 }
 
+#if _LIBCPP_HAS_MONOTONIC_CLOCK
 // steady_clock
 
 const bool steady_clock::is_steady;
@@ -108,11 +109,6 @@
 }
 
 #else  // __APPLE__
-// FIXME: We assume that clock_gettime(CLOCK_MONOTONIC) works on
-// non-apple systems.  Instead, we should check _POSIX_TIMERS and
-// _POSIX_MONOTONIC_CLOCK and fall back to something else if those
-// don't exist.
-
 // Warning:  If this is not truly steady, then it is non-conforming.  It is
 //  better for it to not exist and have the rest of libc++ use system_clock
 //  instead.
@@ -127,6 +123,8 @@
 }
 #endif  // __APPLE__
 
+#endif // _LIBCPP_HAS_MONOTONIC_CLOCK
+
 }
 
 _LIBCPP_END_NAMESPACE_STD
Index: libcxx/test/lit.site.cfg
===================================================================
--- libcxx/test/lit.site.cfg
+++ libcxx/test/lit.site.cfg
@@ -8,7 +8,7 @@
 config.cxx_abi               = "libcxxabi"
 config.use_system_lib        = "False"
 config.target_triple         = "arm-none-eabi"
-config.available_features    = ['newlib']
+config.available_features    = ['newlib', 'no-monotonic-clock']
 
 # Let the main config do the real work.
 lit_config.load_config(config, "/Users/jroelofs/workdir/mentor/cs-llvm/libcxx/test/lit.cfg")
Index: libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
===================================================================
--- libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
+++ libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
@@ -11,6 +11,7 @@
 // darwin11 and darwin12:
 // XFAIL: with_system_lib=x86_64-apple-darwin11
 // XFAIL: with_system_lib=x86_64-apple-darwin12
+// XFAIL: no-monotonic-clock
 
 // <chrono>
 
Index: libcxx/test/utilities/time/time.clock/time.clock.steady/now.pass.cpp
===================================================================
--- libcxx/test/utilities/time/time.clock/time.clock.steady/now.pass.cpp
+++ libcxx/test/utilities/time/time.clock/time.clock.steady/now.pass.cpp
@@ -6,6 +6,8 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// XFAIL: no-monotonic-clock
 
 // <chrono>
 
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to