@@ -76,24 +76,32 @@ class CrashEngine : public EngineIface {
7676 * means crashing it.
7777 */
7878 cb::engine_errc initialize (std::string_view) override {
79- std::string mode_string (getenv (" MEMCACHED_CRASH_TEST" ));
79+ using namespace std ::string_view_literals;
80+ const auto * ptr = getenv (" MEMCACHED_CRASH_TEST" );
81+ if (!ptr) {
82+ fmt::println (
83+ stderr,
84+ " crash_engine::initialize: MEMCACHED_CRASH_TEST not set" );
85+ std::_Exit (EXIT_FAILURE);
86+ }
87+ std::string_view mode_string (ptr);
8088 CrashMode mode;
81- if (mode_string == " segfault" ) {
89+ if (mode_string == " segfault" sv ) {
8290 mode = CrashMode::SegFault;
83- } else if (mode_string == " std_exception" ) {
91+ } else if (mode_string == " std_exception" sv ) {
8492 mode = CrashMode::UncaughtStdException;
85- } else if (mode_string == " std_exception_via_std_thread" ) {
93+ } else if (mode_string == " std_exception_via_std_thread" sv ) {
8694 mode = CrashMode::UncaughtStdExceptionViaStdThread;
87- } else if (mode_string == " std_exception_with_trace" ) {
95+ } else if (mode_string == " std_exception_with_trace" sv ) {
8896 mode = CrashMode::UncaughtStdExceptionWithTrace;
89- } else if (mode_string == " unknown_exception" ) {
97+ } else if (mode_string == " unknown_exception" sv ) {
9098 mode = CrashMode::UncaughtUnknownException;
9199 } else {
92- fprintf (stderr,
93- " crash_engine::initialize: could not find a valid "
94- " CrashMode from MEMCACHED_CRASH_TEST env var ('%s') \n " ,
95- mode_string. c_str () );
96- exit (1 );
100+ fmt::println (stderr,
101+ " crash_engine::initialize: could not find a valid "
102+ " CrashMode from MEMCACHED_CRASH_TEST env var ({:?}) " ,
103+ mode_string);
104+ exit (EXIT_FAILURE );
97105 }
98106 if (mode == CrashMode::UncaughtStdExceptionViaStdThread) {
99107 std::thread thread{[mode] { recursive_crash_function (25 , mode); }};
0 commit comments