diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a0e2e8124b..4a3343e2b3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -629,6 +629,7 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/patricia.h ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/setsignal.h ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sqlite3.h + ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/doctest.h DESTINATION include/zeek/3rdparty ) diff --git a/src/zeek-setup.cc b/src/zeek-setup.cc index 5b2c6de914..3c391e2fe6 100644 --- a/src/zeek-setup.cc +++ b/src/zeek-setup.cc @@ -416,13 +416,7 @@ SetupResult setup(int argc, char** argv, Options* zopts) } if ( options.run_unit_tests ) - { - doctest::Context context; - auto dargs = to_cargs(options.doctest_args); - context.applyCommandLine(dargs.size(), dargs.data()); - ZEEK_LSAN_ENABLE(); - exit(context.run()); - } + options.deterministic_mode = true; auto stem = Supervisor::CreateStem(options.supervisor_mode); @@ -601,6 +595,16 @@ SetupResult setup(int argc, char** argv, Options* zopts) plugin_mgr->ActivateDynamicPlugins(! options.bare_mode); + // Delay the unit test until here so that plugins have been loaded. + if ( options.run_unit_tests ) + { + doctest::Context context; + auto dargs = to_cargs(options.doctest_args); + context.applyCommandLine(dargs.size(), dargs.data()); + ZEEK_LSAN_ENABLE(); + exit(context.run()); + } + // Print usage after plugins load so that any path extensions are properly shown. if ( options.print_usage ) usage(argv[0], 0);