xref: /llvm-project/clang/test/Preprocessor/embed_zos.c (revision 46dc91e7d9a1b6dd0144e628519d06954b7b4e53)
1*46dc91e7SAbhina Sree // RUN: rm -rf %t
2*46dc91e7SAbhina Sree // RUN: mkdir -p %t/media && cp %S/Inputs/media/art.txt %t/media/
3*46dc91e7SAbhina Sree // RUN: chtag -r %t/media/art.txt
4*46dc91e7SAbhina Sree // RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%t -verify
5*46dc91e7SAbhina Sree // expected-no-diagnostics
6*46dc91e7SAbhina Sree 
7*46dc91e7SAbhina Sree // REQUIRES: shell, system-zos
8*46dc91e7SAbhina Sree 
9*46dc91e7SAbhina Sree const char data[] = {
10*46dc91e7SAbhina Sree #embed <media/art.txt>
11*46dc91e7SAbhina Sree };
12*46dc91e7SAbhina Sree const char data2[] = {
13*46dc91e7SAbhina Sree #embed <media/art.txt>
14*46dc91e7SAbhina Sree , 0
15*46dc91e7SAbhina Sree };
16*46dc91e7SAbhina Sree const char data3[] = {
17*46dc91e7SAbhina Sree #embed <media/art.txt> suffix(, 0)
18*46dc91e7SAbhina Sree };
19*46dc91e7SAbhina Sree const char data4[] = {
20*46dc91e7SAbhina Sree #embed <media/art.txt> suffix(,)
21*46dc91e7SAbhina Sree 0
22*46dc91e7SAbhina Sree };
23*46dc91e7SAbhina Sree static_assert(sizeof(data) == 274);
24*46dc91e7SAbhina Sree static_assert(' ' == data[0]);
25*46dc91e7SAbhina Sree static_assert('_' == data[11]);
26*46dc91e7SAbhina Sree static_assert('\n' == data[273]);
27*46dc91e7SAbhina Sree static_assert(sizeof(data2) == 275);
28*46dc91e7SAbhina Sree static_assert(' ' == data2[0]);
29*46dc91e7SAbhina Sree static_assert('_' == data2[11]);
30*46dc91e7SAbhina Sree static_assert('\n' == data2[273]);
31*46dc91e7SAbhina Sree static_assert('\0' == data2[274]);
32*46dc91e7SAbhina Sree static_assert(sizeof(data3) == 275);
33*46dc91e7SAbhina Sree static_assert(' ' == data3[0]);
34*46dc91e7SAbhina Sree static_assert('_' == data3[11]);
35*46dc91e7SAbhina Sree static_assert('\n' == data3[273]);
36*46dc91e7SAbhina Sree static_assert('\0' == data3[274]);
37*46dc91e7SAbhina Sree static_assert(sizeof(data4) == 275);
38*46dc91e7SAbhina Sree static_assert(' ' == data4[0]);
39*46dc91e7SAbhina Sree static_assert('_' == data4[11]);
40*46dc91e7SAbhina Sree static_assert('\n' == data4[273]);
41*46dc91e7SAbhina Sree static_assert('\0' == data4[274]);
42*46dc91e7SAbhina Sree 
43*46dc91e7SAbhina Sree const signed char data5[] = {
44*46dc91e7SAbhina Sree #embed <media/art.txt>
45*46dc91e7SAbhina Sree };
46*46dc91e7SAbhina Sree const signed char data6[] = {
47*46dc91e7SAbhina Sree #embed <media/art.txt>
48*46dc91e7SAbhina Sree , 0
49*46dc91e7SAbhina Sree };
50*46dc91e7SAbhina Sree const signed char data7[] = {
51*46dc91e7SAbhina Sree #embed <media/art.txt> suffix(, 0)
52*46dc91e7SAbhina Sree };
53*46dc91e7SAbhina Sree const signed char data8[] = {
54*46dc91e7SAbhina Sree #embed <media/art.txt> suffix(,)
55*46dc91e7SAbhina Sree 0
56*46dc91e7SAbhina Sree };
57*46dc91e7SAbhina Sree static_assert(sizeof(data5) == 274);
58*46dc91e7SAbhina Sree static_assert(' ' == data5[0]);
59*46dc91e7SAbhina Sree static_assert('_' == data5[11]);
60*46dc91e7SAbhina Sree static_assert('\n' == data5[273]);
61*46dc91e7SAbhina Sree static_assert(sizeof(data6) == 275);
62*46dc91e7SAbhina Sree static_assert(' ' == data6[0]);
63*46dc91e7SAbhina Sree static_assert('_' == data6[11]);
64*46dc91e7SAbhina Sree static_assert('\n' == data6[273]);
65*46dc91e7SAbhina Sree static_assert('\0' == data6[274]);
66*46dc91e7SAbhina Sree static_assert(sizeof(data7) == 275);
67*46dc91e7SAbhina Sree static_assert(' ' == data7[0]);
68*46dc91e7SAbhina Sree static_assert('_' == data7[11]);
69*46dc91e7SAbhina Sree static_assert('\n' == data7[273]);
70*46dc91e7SAbhina Sree static_assert('\0' == data7[274]);
71*46dc91e7SAbhina Sree static_assert(sizeof(data8) == 275);
72*46dc91e7SAbhina Sree static_assert(' ' == data8[0]);
73*46dc91e7SAbhina Sree static_assert('_' == data8[11]);
74*46dc91e7SAbhina Sree static_assert('\n' == data8[273]);
75*46dc91e7SAbhina Sree static_assert('\0' == data8[274]);
76*46dc91e7SAbhina Sree 
77*46dc91e7SAbhina Sree const unsigned char data9[] = {
78*46dc91e7SAbhina Sree #embed <media/art.txt>
79*46dc91e7SAbhina Sree };
80*46dc91e7SAbhina Sree const unsigned char data10[] = {
81*46dc91e7SAbhina Sree 0,
82*46dc91e7SAbhina Sree #embed <media/art.txt>
83*46dc91e7SAbhina Sree };
84*46dc91e7SAbhina Sree const unsigned char data11[] = {
85*46dc91e7SAbhina Sree #embed <media/art.txt> prefix(0,)
86*46dc91e7SAbhina Sree };
87*46dc91e7SAbhina Sree const unsigned char data12[] = {
88*46dc91e7SAbhina Sree 0
89*46dc91e7SAbhina Sree #embed <media/art.txt> prefix(,)
90*46dc91e7SAbhina Sree };
91*46dc91e7SAbhina Sree static_assert(sizeof(data9) == 274);
92*46dc91e7SAbhina Sree static_assert(' ' == data9[0]);
93*46dc91e7SAbhina Sree static_assert('_' == data9[11]);
94*46dc91e7SAbhina Sree static_assert('\n' == data9[273]);
95*46dc91e7SAbhina Sree static_assert(sizeof(data10) == 275);
96*46dc91e7SAbhina Sree static_assert(' ' == data10[1]);
97*46dc91e7SAbhina Sree static_assert('_' == data10[12]);
98*46dc91e7SAbhina Sree static_assert('\n' == data10[274]);
99*46dc91e7SAbhina Sree static_assert('\0' == data10[0]);
100*46dc91e7SAbhina Sree static_assert(sizeof(data11) == 275);
101*46dc91e7SAbhina Sree static_assert(' ' == data11[1]);
102*46dc91e7SAbhina Sree static_assert('_' == data11[12]);
103*46dc91e7SAbhina Sree static_assert('\n' == data11[274]);
104*46dc91e7SAbhina Sree static_assert('\0' == data11[0]);
105*46dc91e7SAbhina Sree static_assert(sizeof(data12) == 275);
106*46dc91e7SAbhina Sree static_assert(' ' == data12[1]);
107*46dc91e7SAbhina Sree static_assert('_' == data12[12]);
108*46dc91e7SAbhina Sree static_assert('\n' == data12[274]);
109*46dc91e7SAbhina Sree static_assert('\0' == data12[0]);
110