mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

The BroFile ctor now wraps /dev/std{in,out,err} string arguments into the actual FILE* provided by stdio.h because use of the former directly isn't POSIX compliant and led to subtle differences that broke unit tests on certain platforms (e.g. OS X redirection of stderr behavior started differing from Linux). The BroFile (un)serialization methods already did this kind of logic, so adding it in the ctor also should make things more consistent. Some of the reporter-related unit tests looked like they were missing output because of this, and the coverage test for bare-mode errors needed tweaking to branch on whether or not libcurl was available (since the error output differs when elasticsearch isn't there).
14 lines
1.1 KiB
Text
14 lines
1.1 KiB
Text
# Makes sure any given bro script in the scripts/ tree can be loaded in
|
|
# bare mode without error. btest-bg-run/btest-bg-wait are used to kill off
|
|
# scripts that block after loading, e.g. start listening on a socket.
|
|
#
|
|
# Commonly, this test may fail if one forgets to @load some base/ scripts
|
|
# when writing a new bro scripts.
|
|
#
|
|
# @TEST-SERIALIZE: comm
|
|
#
|
|
# @TEST-EXEC: test -d $DIST/scripts
|
|
# @TEST-EXEC: for script in `find $DIST/scripts -name \*\.bro -not -path '*/site/*'`; do echo $script; if echo "$script" | egrep -q 'communication/listen|controllee'; then rm -rf load_attempt .bgprocs; btest-bg-run load_attempt bro -b $script; btest-bg-wait -k 2; cat load_attempt/.stderr >>allerrors; else bro -b $script 2>>allerrors; fi done || exit 0
|
|
# @TEST-EXEC: cat allerrors | grep -v "received termination signal" | sort | uniq > unique_errors
|
|
# @TEST-EXEC: if [ $(grep -c CURL_INCLUDE_DIR-NOTFOUND $BUILD/CMakeCache.txt) -ne 0 ]; then cp unique_errors unique_errors_no_elasticsearch; fi
|
|
# @TEST-EXEC: if [ $(grep -c CURL_INCLUDE_DIR-NOTFOUND $BUILD/CMakeCache.txt) -ne 0 ]; then btest-diff unique_errors_no_elasticsearch; else btest-diff unique_errors; fi
|