Skip to content

Commit ca33eac

Browse files
committed
[BoundsSafety][NFC] Upstream BoundsSafetyBringupMissingChecks unit changes
This change modifies the test to pass so it is possible to pass the `-fbounds-safety*` arguments directly to CC1 (i.e. bypassing the driver) by modifying `#if 1` to be `#if 0`. rdar://143592184
1 parent fa284c4 commit ca33eac

File tree

1 file changed

+37
-22
lines changed

1 file changed

+37
-22
lines changed

clang/unittests/Tooling/BoundsSafetyBringupMissingChecks.cpp

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -171,22 +171,28 @@ TEST(BoundsSafetyBringUpMissingChecks, ChkPairValidMask) {
171171
ASSERT_EQ(SeenBits, LangOptions::BS_CHK_All);
172172
}
173173

174+
#if 1
175+
#define NEED_CC1_ARG
176+
#else
177+
#define NEED_CC1_ARG "-Xclang",
178+
#endif
179+
174180
// =============================================================================
175181
// Default behavior
176182
// =============================================================================
177183

178184
TEST(BoundsSafetyBringUpMissingChecks, DefaultWithBoundsSafety) {
179-
bool Result =
180-
runOnToolAndCheckLangOptions({"-fbounds-safety"}, [](LangOptions &LO) {
185+
bool Result = runOnToolAndCheckLangOptions(
186+
{NEED_CC1_ARG "-fbounds-safety"}, [](LangOptions &LO) {
181187
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
182188
LangOptions::BS_CHK_Default);
183189
});
184190
ASSERT_TRUE(Result);
185191
}
186192

187193
TEST(BoundsSafetyBringUpMissingChecks, DefaultWithoutBoundsSafety) {
188-
bool Result =
189-
runOnToolAndCheckLangOptions({"-fno-bounds-safety"}, [](LangOptions &LO) {
194+
bool Result = runOnToolAndCheckLangOptions(
195+
{NEED_CC1_ARG "-fno-bounds-safety"}, [](LangOptions &LO) {
190196
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
191197
LangOptions::BS_CHK_Default);
192198
});
@@ -201,7 +207,8 @@ TEST(BoundsSafetyBringUpMissingChecks, DefaultWithoutBoundsSafety) {
201207
TEST(BoundsSafetyBringUpMissingChecks,
202208
DefaultAllDisabledExperimentalBoundsSafetyAttributes) {
203209
bool Result = runOnToolAndCheckLangOptions(
204-
{"-fexperimental-bounds-safety-attributes"}, [](LangOptions &LO) {
210+
{NEED_CC1_ARG "-fexperimental-bounds-safety-attributes"},
211+
[](LangOptions &LO) {
205212
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
206213
LangOptions::BS_CHK_Default);
207214
});
@@ -214,7 +221,8 @@ TEST(BoundsSafetyBringUpMissingChecks,
214221

215222
TEST(BoundsSafetyBringUpMissingChecks, all_eq) {
216223
bool Result = runOnToolAndCheckLangOptions(
217-
{"-fbounds-safety", "-fbounds-safety-bringup-missing-checks=all"},
224+
{NEED_CC1_ARG "-fbounds-safety",
225+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks=all"},
218226
[](LangOptions &LO) {
219227
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
220228
LangOptions::BS_CHK_All);
@@ -229,7 +237,8 @@ TEST(BoundsSafetyBringUpMissingChecks, all_eq) {
229237

230238
TEST(BoundsSafetyBringUpMissingChecks, all) {
231239
bool Result = runOnToolAndCheckLangOptions(
232-
{"-fbounds-safety", "-fbounds-safety-bringup-missing-checks"},
240+
{NEED_CC1_ARG "-fbounds-safety",
241+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks"},
233242
[](LangOptions &LO) {
234243
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
235244
LangOptions::BS_CHK_All);
@@ -249,9 +258,10 @@ TEST(BoundsSafetyBringUpMissingChecks, all) {
249258
TEST(BoundsSafetyBringUpMissingChecks, only_one_check) {
250259
for (size_t ChkIdx = 0; ChkIdx < NumPairs; ++ChkIdx) {
251260
ChkPair Chk = Pairs[ChkIdx];
252-
std::vector<std::string> Args = {"-fbounds-safety",
261+
std::vector<std::string> Args = {NEED_CC1_ARG "-fbounds-safety",
262+
NEED_CC1_ARG
253263
"-fbounds-safety-bringup-missing-checks="};
254-
Args[1].append(Chk.arg);
264+
Args[Args.size() - 1].append(Chk.arg);
255265

256266
bool Result = runOnToolAndCheckLangOptions(Args, [&Chk](LangOptions &LO) {
257267
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(), Chk.Mask);
@@ -284,10 +294,11 @@ TEST(BoundsSafetyBringUpMissingChecks, all_pairs) {
284294
ChkPair First = Pairs[firstIdx];
285295
auto Second = Pairs[secondIdx];
286296
std::vector<std::string> Args = {
287-
"-fbounds-safety", "-fbounds-safety-bringup-missing-checks="};
288-
Args[1].append(First.arg);
289-
Args[1].append(",");
290-
Args[1].append(Second.arg);
297+
NEED_CC1_ARG "-fbounds-safety",
298+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks="};
299+
Args[Args.size() - 1].append(First.arg);
300+
Args[Args.size() - 1].append(",");
301+
Args[Args.size() - 1].append(Second.arg);
291302
ASSERT_NE(First.Mask, Second.Mask);
292303

293304
bool Result = runOnToolAndCheckLangOptions(
@@ -320,9 +331,10 @@ TEST(BoundsSafetyBringUpMissingChecks, all_with_one_removed) {
320331
for (size_t ChkIdx = 0; ChkIdx < NumPairs; ++ChkIdx) {
321332
ChkPair Chk = Pairs[ChkIdx];
322333
std::vector<std::string> Args = {
323-
"-fbounds-safety", "-fbounds-safety-bringup-missing-checks=all",
324-
"-fno-bounds-safety-bringup-missing-checks="};
325-
Args[2].append(Chk.arg);
334+
NEED_CC1_ARG "-fbounds-safety",
335+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks=all",
336+
NEED_CC1_ARG "-fno-bounds-safety-bringup-missing-checks="};
337+
Args[Args.size() - 1].append(Chk.arg);
326338

327339
bool Result = runOnToolAndCheckLangOptions(Args, [&Chk](LangOptions &LO) {
328340
unsigned ExpectedMask = LangOptions::BS_CHK_All & (~Chk.Mask);
@@ -350,7 +362,8 @@ TEST(BoundsSafetyBringUpMissingChecks, all_with_one_removed) {
350362

351363
TEST(BoundsSafetyBringUpMissingChecks, all_disabled) {
352364
bool Result = runOnToolAndCheckLangOptions(
353-
{"-fbounds-safety", "-fno-bounds-safety-bringup-missing-checks"},
365+
{NEED_CC1_ARG "-fbounds-safety",
366+
NEED_CC1_ARG "-fno-bounds-safety-bringup-missing-checks"},
354367
[](LangOptions &LO) {
355368
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
356369
LangOptions::BS_CHK_None);
@@ -360,8 +373,9 @@ TEST(BoundsSafetyBringUpMissingChecks, all_disabled) {
360373

361374
TEST(BoundsSafetyBringUpMissingChecks, all_enable_then_disable) {
362375
bool Result = runOnToolAndCheckLangOptions(
363-
{"-fbounds-safety", "-fbounds-safety-bringup-missing-checks",
364-
"-fno-bounds-safety-bringup-missing-checks"},
376+
{NEED_CC1_ARG "-fbounds-safety",
377+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks",
378+
NEED_CC1_ARG "-fno-bounds-safety-bringup-missing-checks"},
365379
[](LangOptions &LO) {
366380
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(),
367381
LangOptions::BS_CHK_None);
@@ -377,9 +391,10 @@ TEST(BoundsSafetyBringUpMissingChecks, all_disabled_then_enable_one) {
377391
for (size_t ChkIdx = 0; ChkIdx < NumPairs; ++ChkIdx) {
378392
ChkPair Chk = Pairs[ChkIdx];
379393
std::vector<std::string> Args = {
380-
"-fbounds-safety", "-fno-bounds-safety-bringup-missing-checks",
381-
"-fbounds-safety-bringup-missing-checks="};
382-
Args[2].append(Chk.arg);
394+
NEED_CC1_ARG "-fbounds-safety",
395+
NEED_CC1_ARG "-fno-bounds-safety-bringup-missing-checks",
396+
NEED_CC1_ARG "-fbounds-safety-bringup-missing-checks="};
397+
Args[Args.size() - 1].append(Chk.arg);
383398

384399
bool Result = runOnToolAndCheckLangOptions(Args, [&Chk](LangOptions &LO) {
385400
EXPECT_EQ(LO.getBoundsSafetyBringUpMissingChecks(), Chk.Mask);

0 commit comments

Comments
 (0)