Skip to content

Commit

Permalink
Compile out invalid enum test cases when building ubsan (#4974)
Browse files Browse the repository at this point in the history
  • Loading branch information
jfevold-bbg authored and GitHub Enterprise committed Sep 25, 2024
1 parent d9e55a5 commit 15fedcd
Show file tree
Hide file tree
Showing 19 changed files with 87 additions and 17 deletions.
7 changes: 6 additions & 1 deletion groups/bal/balcl/balcl_optiontype.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -850,11 +850,13 @@ if (veryVerbose)
, { L_, Obj::e_DATE_ARRAY , "DATE_ARRAY" } // 16
, { L_, Obj::e_TIME_ARRAY , "TIME_ARRAY" } // 17

#ifndef BDE_BUILD_TARGET_UBSAN
, { L_, static_cast<Enum>(-1), UNKNOWN_FORMAT }
, { L_, static_cast<Enum>(NUM_ENUMERATORS), UNKNOWN_FORMAT }

, { L_, static_cast<Enum>(-5) , UNKNOWN_FORMAT }
, { L_, static_cast<Enum>(99) , UNKNOWN_FORMAT }
#endif
};

#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC
Expand Down Expand Up @@ -992,11 +994,13 @@ if (veryVerbose)
, { L_, 0, 4, Obj::e_DATETIME, "DATETIME" NL }
, { L_, 0, 4, Obj::e_CHAR_ARRAY, "CHAR_ARRAY" NL }

#ifndef BDE_BUILD_TARGET_UBSAN
, { L_, 0, 4, static_cast<Enum>(NUM_ENUMERATORS + 1),
UNKNOWN_FORMAT NL }
, { L_, 0, 4, static_cast<Enum>(-1), UNKNOWN_FORMAT NL }
, { L_, 0, 4, static_cast<Enum>(-5), UNKNOWN_FORMAT NL }
, { L_, 0, 4, static_cast<Enum>(99), UNKNOWN_FORMAT NL }
#endif

, { L_, 0, -1, Obj::e_INT64, "INT64" }
, { L_, 0, 0, Obj::e_STRING, "STRING" NL }
Expand Down Expand Up @@ -1151,11 +1155,12 @@ if (veryVerbose)
, { L_, Obj::e_DATE_ARRAY, "DATE_ARRAY" } // 16
, { L_, Obj::e_TIME_ARRAY, "TIME_ARRAY" } // 17

#ifndef BDE_BUILD_TARGET_UBSAN
, { L_, static_cast<Enum>(-1), UNKNOWN_FORMAT }
, { L_, static_cast<Enum>(NUM_ENUMERATORS), UNKNOWN_FORMAT }

, { L_, static_cast<Enum>(-5), UNKNOWN_FORMAT }
, { L_, static_cast<Enum>(99), UNKNOWN_FORMAT }
#endif
};

#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC
Expand Down
7 changes: 6 additions & 1 deletion groups/bal/ball/ball_userfieldtype.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -246,11 +246,13 @@ if (veryVerbose)
{ L_, Obj::e_DATETIMETZ, "DATETIMETZ" },
{ L_, Obj::e_CHAR_ARRAY, "CHAR_ARRAY" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, static_cast<Enum>(-1), UNKNOWN_FORMAT },
{ L_, static_cast<Enum>(NUM_ENUMERATORS), UNKNOWN_FORMAT },

{ L_, static_cast<Enum>(-5), UNKNOWN_FORMAT },
{ L_, static_cast<Enum>(99), UNKNOWN_FORMAT }
#endif
};

#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC
Expand Down Expand Up @@ -388,11 +390,13 @@ if (veryVerbose)
{ L_, 0, 4, Obj::e_DATETIMETZ, "DATETIMETZ" NL },
{ L_, 0, 4, Obj::e_CHAR_ARRAY, "CHAR_ARRAY" NL },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, static_cast<Enum>(NUM_ENUMERATORS + 1),
UNKNOWN_FORMAT NL },
{ L_, 0, 4, static_cast<Enum>(-1), UNKNOWN_FORMAT NL },
{ L_, 0, 4, static_cast<Enum>(-5), UNKNOWN_FORMAT NL },
{ L_, 0, 4, static_cast<Enum>(99), UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_INT64, "INT64" },
{ L_, 0, 0, Obj::e_STRING, "STRING" NL },
Expand Down Expand Up @@ -537,11 +541,12 @@ if (veryVerbose)
{ L_, Obj::e_DATETIMETZ, "DATETIMETZ" },
{ L_, Obj::e_CHAR_ARRAY, "CHAR_ARRAY" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, static_cast<Enum>(-1), UNKNOWN_FORMAT },
{ L_, static_cast<Enum>(NUM_ENUMERATORS), UNKNOWN_FORMAT },

{ L_, static_cast<Enum>(-5), UNKNOWN_FORMAT },
{ L_, static_cast<Enum>(99), UNKNOWN_FORMAT }
#endif
};

#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC
Expand Down
6 changes: 6 additions & 0 deletions groups/bal/baltzo/baltzo_dstpolicy.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -259,10 +259,12 @@ if (veryVerbose)
{ L_, 0, 4, Obj::e_STANDARD, "STANDARD" NL },
{ L_, 0, 4, Obj::e_UNSPECIFIED, "UNSPECIFIED" NL },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-5, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)99, UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_DST, "DST" },
{ L_, 0, 0, Obj::e_DST, "DST" NL },
Expand Down Expand Up @@ -423,10 +425,12 @@ if (veryVerbose)
{ L_, Obj::e_STANDARD, "STANDARD" },
{ L_, Obj::e_UNSPECIFIED, "UNSPECIFIED" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down Expand Up @@ -545,10 +549,12 @@ if (veryVerbose)
{ L_, Obj::e_STANDARD, "STANDARD" },
{ L_, Obj::e_UNSPECIFIED, "UNSPECIFIED" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 6 additions & 0 deletions groups/bal/baltzo/baltzo_errorcode.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,12 @@ if (veryVerbose)
//---- ----- --- --------------------------- ------------------
{ L_, 0, 4, Obj::k_UNSUPPORTED_ID, "UNSUPPORTED_ID" NL },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, e(NUM_ENUMERATORS + 1), UNKNOWN_FORMAT NL },
{ L_, 0, 4, e(-1), UNKNOWN_FORMAT NL },
{ L_, 0, 4, e(-5), UNKNOWN_FORMAT NL },
{ L_, 0, 4, e(99), UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::k_UNSUPPORTED_ID, "UNSUPPORTED_ID" },
{ L_, 0, 0, Obj::k_UNSUPPORTED_ID, "UNSUPPORTED_ID" NL },
Expand Down Expand Up @@ -420,10 +422,12 @@ if (veryVerbose)

{ L_, Obj::k_OUT_OF_RANGE, "OUT_OF_RANGE" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, e(NUM_ENUMERATORS + 1), UNKNOWN_FORMAT },
{ L_, e(-1), UNKNOWN_FORMAT },
{ L_, e(-5), UNKNOWN_FORMAT },
{ L_, e(99), UNKNOWN_FORMAT },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down Expand Up @@ -532,10 +536,12 @@ if (veryVerbose)
{ L_, Obj::k_UNSUPPORTED_ID, "UNSUPPORTED_ID" },
{ L_, Obj::k_OUT_OF_RANGE, "OUT_OF_RANGE" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, e(NUM_ENUMERATORS + 1), UNKNOWN_FORMAT },
{ L_, e(-1), UNKNOWN_FORMAT },
{ L_, e(-5), UNKNOWN_FORMAT },
{ L_, e(99), UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 6 additions & 0 deletions groups/bal/baltzo/baltzo_localtimevalidity.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,10 +273,12 @@ if (veryVerbose)
{ L_, Obj::e_VALID_AMBIGUOUS, "VALID_AMBIGUOUS" },
{ L_, Obj::e_INVALID, "INVALID" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down Expand Up @@ -414,10 +416,12 @@ if (veryVerbose)
{ L_, 0, 4, Obj::e_VALID_AMBIGUOUS, "VALID_AMBIGUOUS" NL },
{ L_, 0, 4, Obj::e_INVALID, "INVALID" NL },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-5, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)99, UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_VALID_UNIQUE, "VALID_UNIQUE" },
{ L_, 0, 0, Obj::e_VALID_UNIQUE, "VALID_UNIQUE" NL },
Expand Down Expand Up @@ -554,10 +558,12 @@ if (veryVerbose)
{ L_, Obj::e_VALID_AMBIGUOUS, "VALID_AMBIGUOUS" },
{ L_, Obj::e_INVALID, "INVALID" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 5 additions & 1 deletion groups/bbl/bbldc/bbldc_daycountconvention.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -946,10 +946,12 @@ int main(int argc, char *argv[])
{ L_, Obj::e_ISDA_30_360_EOM, "ISDA_30_360_EOM" },
{ L_, Obj::e_NL_365, "NL_365" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, k_ABOVE_ENUM_RANGE, UNKNOWN_FORMAT },
{ L_, -1, UNKNOWN_FORMAT },
{ L_, -5, UNKNOWN_FORMAT },
{ L_, 99, UNKNOWN_FORMAT },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down Expand Up @@ -1072,7 +1074,7 @@ int main(int argc, char *argv[])
{ L_, 0, 4, Obj::e_ISDA_30_360_EOM, "ISDA_30_360_EOM" NL },
{ L_, 0, 4, Obj::e_NL_365, "NL_365" NL },

#if !defined(BSLS_ASSERT_SAFE_IS_ACTIVE)
#if !defined(BSLS_ASSERT_SAFE_IS_ACTIVE) && !defined(BDE_BUILD_TARGET_UBSAN)
{ L_, 0, 4, k_ABOVE_ENUM_RANGE, UNKNOWN_FORMAT NL },
{ L_, 0, 4, -1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, -5, UNKNOWN_FORMAT NL },
Expand Down Expand Up @@ -1236,12 +1238,14 @@ int main(int argc, char *argv[])
{ L_, Obj::e_ISDA_30_360_EOM, 1, "ISDA_30_360_EOM" },
{ L_, Obj::e_NL_365, 1, "NL_365" },
{ L_, Obj::e_ACTUAL_365_25, 1, "ACTUAL_365_25" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, -1, 0,
"(* Unknown Enumerator *)" },
{ L_, k_ABOVE_ENUM_RANGE, 0,
"(* Unknown Enumerator *)" },
{ L_, 19, 0,
"(* Unknown Enumerator *)" },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 6 additions & 0 deletions groups/bdl/bdlde/bdlde_base64alphabet.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,10 +258,12 @@ int main(int argc, char *argv[])
//---- ----------------------- ---------------
{ L_, Obj::e_BASIC, "BASIC" },
{ L_, Obj::e_URL, "URL" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, NUM_VALUES, UNKNOWN_FORMAT },
{ L_, -1, UNKNOWN_FORMAT },
{ L_, -5, UNKNOWN_FORMAT },
{ L_, 99, UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down Expand Up @@ -375,9 +377,11 @@ int main(int argc, char *argv[])
//---- ----- --- ---------------------- -----------------
{ L_, 0, 4, Obj::e_BASIC, "BASIC" NL },
{ L_, 0, 4, Obj::e_URL, "URL" NL },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, -1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, -5, UNKNOWN_FORMAT NL },
{ L_, 0, 4, 99, UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_BASIC, "BASIC" },
{ L_, 0, 0, Obj::e_BASIC, "BASIC" NL },
Expand Down Expand Up @@ -507,10 +511,12 @@ int main(int argc, char *argv[])
// ---- ----------------------- -----------------
{ L_, Obj::e_BASIC, "BASIC" },
{ L_, Obj::e_URL, "URL" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, NUM_VALUES, UNKNOWN_FORMAT },
{ L_, -1, UNKNOWN_FORMAT },
{ L_, -5, UNKNOWN_FORMAT },
{ L_, 99, UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 6 additions & 0 deletions groups/bdl/bdlde/bdlde_base64ignoremode.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,10 +261,12 @@ int main(int argc, char *argv[])
{ L_, Obj::e_IGNORE_NONE, "IGNORE_NONE" },
{ L_, Obj::e_IGNORE_WHITESPACE, "IGNORE_WHITESPACE" },
{ L_, Obj::e_IGNORE_UNRECOGNIZED, "IGNORE_UNRECOGNIZED" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, NUM_VALUES, UNKNOWN_FORMAT },
{ L_, -1, UNKNOWN_FORMAT },
{ L_, -5, UNKNOWN_FORMAT },
{ L_, 99, UNKNOWN_FORMAT }
#endif
};
enum { k_NUM_DATA = sizeof DATA / sizeof *DATA };

Expand Down Expand Up @@ -380,9 +382,11 @@ int main(int argc, char *argv[])
{ L_, 0, 4, Obj::e_IGNORE_NONE, "IGNORE_NONE" NL },
{ L_, 0, 4, Obj::e_IGNORE_WHITESPACE,
"IGNORE_WHITESPACE" NL },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, -1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, -5, UNKNOWN_FORMAT NL },
{ L_, 0, 4, 99, UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_IGNORE_NONE, "IGNORE_NONE" },
{ L_, 0, 0, Obj::e_IGNORE_NONE, "IGNORE_NONE" NL },
Expand Down Expand Up @@ -513,10 +517,12 @@ int main(int argc, char *argv[])
{ L_, Obj::e_IGNORE_NONE, "IGNORE_NONE" },
{ L_, Obj::e_IGNORE_WHITESPACE, "IGNORE_WHITESPACE" },
{ L_, Obj::e_IGNORE_UNRECOGNIZED, "IGNORE_UNRECOGNIZED" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, NUM_VALUES, UNKNOWN_FORMAT },
{ L_, -1, UNKNOWN_FORMAT },
{ L_, -5, UNKNOWN_FORMAT },
{ L_, 99, UNKNOWN_FORMAT }
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
6 changes: 6 additions & 0 deletions groups/bdl/bdljsn/bdljsn_jsontype.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,12 @@ int main(int argc, char *argv[])
{ L_, 0, 4, Obj::e_BOOLEAN, "BOOLEAN" NL },
{ L_, 0, 4, Obj::e_NULL, "NULL" NL },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, 0, 4, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-1, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)-5, UNKNOWN_FORMAT NL },
{ L_, 0, 4, (Enum)99, UNKNOWN_FORMAT NL },
#endif

{ L_, 0, -1, Obj::e_OBJECT, "OBJECT" },
{ L_, 0, 0, Obj::e_OBJECT, "OBJECT" NL },
Expand Down Expand Up @@ -435,10 +437,12 @@ int main(int argc, char *argv[])
{ L_, Obj::e_BOOLEAN, "BOOLEAN" },
{ L_, Obj::e_NULL, "NULL" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT }
#endif
};
#ifdef BSLS_PLATFORM_CMP_GNU
#pragma GCC diagnostic pop
Expand Down Expand Up @@ -556,10 +560,12 @@ int main(int argc, char *argv[])
{ L_, Obj::e_BOOLEAN, "BOOLEAN" },
{ L_, Obj::e_NULL, "NULL" },

#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT },
{ L_, (Enum)-1, UNKNOWN_FORMAT },
{ L_, (Enum)-5, UNKNOWN_FORMAT },
{ L_, (Enum)99, UNKNOWN_FORMAT }
#endif
};
#ifdef BSLS_PLATFORM_CMP_GNU
#pragma GCC diagnostic pop
Expand Down
4 changes: 3 additions & 1 deletion groups/bdl/bdljsn/bdljsn_writestyle.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ int main(int argc, char *argv[])
{ L_, 0, 4, Obj::e_ONELINE, "ONELINE" NL },
{ L_, 0, 4, Obj::e_COMPACT, "COMPACT" NL },

#if !defined(BSLS_ASSERT_SAFE_IS_ACTIVE)
#if !defined(BSLS_ASSERT_SAFE_IS_ACTIVE) && !defined(BDE_BUILD_TARGET_UBSAN)
{ L_, 0, 4, ABOVE_ENUM_RANGE, UNKNOWN_STYLE NL },
{ L_, 0, 4, -1, UNKNOWN_STYLE NL },
{ L_, 0, 4, -5, UNKNOWN_STYLE NL },
Expand Down Expand Up @@ -355,7 +355,9 @@ int main(int argc, char *argv[])
{ L_, Obj::e_COMPACT, "COMPACT" },
{ L_, Obj::e_ONELINE, "ONELINE" },
{ L_, Obj::e_PRETTY, "PRETTY" },
#ifndef BDE_BUILD_TARGET_UBSAN
{ L_, (Enum) -1, UNKNOWN_STYLE },
#endif
};
const int NUM_DATA = sizeof DATA / sizeof *DATA;

Expand Down
5 changes: 4 additions & 1 deletion groups/bdl/bdls/bdls_filesystemutil.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5315,7 +5315,6 @@ int main(int argc, char *argv[])
// --------------------------------------------------------------------

bsl::ostringstream oss;
const char *exp;

#undef STEST
#define STEST(pfx, id) \
Expand Down Expand Up @@ -5363,11 +5362,15 @@ int main(int argc, char *argv[])
exp = "Invalid '" #type "' == 100"; \
ASSERTV(oss.str(), exp, exp == oss.str());

# ifndef BDE_BUILD_TARGET_UBSAN
const char *exp;

BADTEST(Whence);
BADTEST(ErrorType);
BADTEST(FileOpenPolicy);
BADTEST(FileIOPolicy);
BADTEST(FileTruncatePolicy);
# endif
#undef BADTEST
} break;
case 26: {
Expand Down
Loading

0 comments on commit 15fedcd

Please sign in to comment.