//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// WARNING: This test was generated by generate_feature_test_macro_components.py
// and should not be edited manually.
//
// clang-format off

// UNSUPPORTED: no-threads

// <thread>

// Test the feature test macros defined by <thread>

/*  Constant                Value
    __cpp_lib_formatters    202302L [C++2b]
    __cpp_lib_jthread       201911L [C++20]
*/

#include <thread>
#include "test_macros.h"

#if TEST_STD_VER < 14

# ifdef __cpp_lib_formatters
#   error "__cpp_lib_formatters should not be defined before c++2b"
# endif

# ifdef __cpp_lib_jthread
#   error "__cpp_lib_jthread should not be defined before c++20"
# endif

#elif TEST_STD_VER == 14

# ifdef __cpp_lib_formatters
#   error "__cpp_lib_formatters should not be defined before c++2b"
# endif

# ifdef __cpp_lib_jthread
#   error "__cpp_lib_jthread should not be defined before c++20"
# endif

#elif TEST_STD_VER == 17

# ifdef __cpp_lib_formatters
#   error "__cpp_lib_formatters should not be defined before c++2b"
# endif

# ifdef __cpp_lib_jthread
#   error "__cpp_lib_jthread should not be defined before c++20"
# endif

#elif TEST_STD_VER == 20

# ifdef __cpp_lib_formatters
#   error "__cpp_lib_formatters should not be defined before c++2b"
# endif

# if !defined(_LIBCPP_VERSION)
#   ifndef __cpp_lib_jthread
#     error "__cpp_lib_jthread should be defined in c++20"
#   endif
#   if __cpp_lib_jthread != 201911L
#     error "__cpp_lib_jthread should have the value 201911L in c++20"
#   endif
# else // _LIBCPP_VERSION
#   ifdef __cpp_lib_jthread
#     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
#   endif
# endif

#elif TEST_STD_VER > 20

# if !defined(_LIBCPP_VERSION)
#   ifndef __cpp_lib_formatters
#     error "__cpp_lib_formatters should be defined in c++2b"
#   endif
#   if __cpp_lib_formatters != 202302L
#     error "__cpp_lib_formatters should have the value 202302L in c++2b"
#   endif
# else // _LIBCPP_VERSION
#   ifdef __cpp_lib_formatters
#     error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
#   endif
# endif

# if !defined(_LIBCPP_VERSION)
#   ifndef __cpp_lib_jthread
#     error "__cpp_lib_jthread should be defined in c++2b"
#   endif
#   if __cpp_lib_jthread != 201911L
#     error "__cpp_lib_jthread should have the value 201911L in c++2b"
#   endif
# else // _LIBCPP_VERSION
#   ifdef __cpp_lib_jthread
#     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
#   endif
# endif

#endif // TEST_STD_VER > 20

