mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
zeek-setup: Load scrips before running unit tests
It is currently not possible to call a->Conn()->GetVal() or construct a zeek/file_analysis/File object from within doctests, as these quickly reference the unpopulated zeek::id namespace to construct Val objects of various types, making it hard write basic tests without completely re-organizing. Move running of the unit tests after parsing the scripts, so it is possible for some basic exercising of File objects within tests.
This commit is contained in:
parent
71f487bd20
commit
9f8eb682b1
2 changed files with 13 additions and 17 deletions
|
@ -679,7 +679,7 @@ SetupResult setup(int argc, char** argv, Options* zopts)
|
|||
if ( options.plugins_to_load.empty() && options.scripts_to_load.empty() &&
|
||||
options.script_options_to_set.empty() && ! options.pcap_file && ! options.interface &&
|
||||
! options.identifier_to_print && ! command_line_policy && ! options.print_plugins &&
|
||||
! options.supervisor_mode && ! Supervisor::ThisNode() )
|
||||
! options.supervisor_mode && ! Supervisor::ThisNode() && ! options.run_unit_tests )
|
||||
add_input_file("-");
|
||||
|
||||
for ( const auto& script_option : options.script_options_to_set )
|
||||
|
@ -726,17 +726,6 @@ 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 )
|
||||
{
|
||||
set_signal_mask(false); // Allow ctrl-c to abort the tests early
|
||||
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);
|
||||
|
@ -808,6 +797,18 @@ SetupResult setup(int argc, char** argv, Options* zopts)
|
|||
init_net_var();
|
||||
run_bif_initializers();
|
||||
|
||||
// Delay the unit test until here so that plugins and script
|
||||
// types have been fully loaded.
|
||||
if ( options.run_unit_tests )
|
||||
{
|
||||
set_signal_mask(false); // Allow ctrl-c to abort the tests early
|
||||
doctest::Context context;
|
||||
auto dargs = to_cargs(options.doctest_args);
|
||||
context.applyCommandLine(dargs.size(), dargs.data());
|
||||
ZEEK_LSAN_ENABLE();
|
||||
exit(context.run());
|
||||
}
|
||||
|
||||
// Assign the script_args for command line processing in Zeek scripts.
|
||||
if ( ! options.script_args.empty() )
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue