1e275e629SMark de Wever //===----------------------------------------------------------------------===//
2e275e629SMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
3e275e629SMark de Wever // See https://llvm.org/LICENSE.txt for license information.
4e275e629SMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5e275e629SMark de Wever //
6e275e629SMark de Wever //===----------------------------------------------------------------------===//
7e275e629SMark de Wever 
8e275e629SMark de Wever // UNSUPPORTED: c++03
9*a7f9895cSLouis Dionne // UNSUPPORTED: no-localization
10e275e629SMark de Wever 
11e275e629SMark de Wever // "support/make_string.h"
12e275e629SMark de Wever 
13e275e629SMark de Wever #include "make_string.h"
14e275e629SMark de Wever #include <cassert>
15e275e629SMark de Wever 
16e275e629SMark de Wever #include "test_macros.h"
17e275e629SMark de Wever 
main(int,char **)18e275e629SMark de Wever int main(int, char**) {
19e275e629SMark de Wever   // clang-format off
20e275e629SMark de Wever   assert(MAKE_STRING(char,
21e275e629SMark de Wever          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
22e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
23e275e629SMark de Wever     ==   " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
24e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
25e275e629SMark de Wever 
26f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
27e275e629SMark de Wever   assert(MAKE_STRING(wchar_t,
28e275e629SMark de Wever          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
29e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
30e275e629SMark de Wever     ==  L" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
31e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
32f4c1258dSLouis Dionne #endif
335c40c994SArthur O'Dwyer #ifndef _LIBCPP_HAS_NO_CHAR8_T
34e275e629SMark de Wever   assert(MAKE_STRING(char8_t,
35e275e629SMark de Wever          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
36e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
37e275e629SMark de Wever     == u8" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
38e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
39e275e629SMark de Wever #endif
40e275e629SMark de Wever   assert(MAKE_STRING(char16_t,
41e275e629SMark de Wever          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
42e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
43e275e629SMark de Wever     ==  u" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
44e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
45e275e629SMark de Wever 
46e275e629SMark de Wever   assert(MAKE_STRING(char32_t,
47e275e629SMark de Wever          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
48e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
49e275e629SMark de Wever     ==  U" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN"
50e275e629SMark de Wever              "OPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
51e275e629SMark de Wever 
52e275e629SMark de Wever   // clang-format on
53e275e629SMark de Wever   return 0;
54e275e629SMark de Wever }
55