Running s_all after compiling WiredTiger with the HAVE_UNITTEST=1 flag results in three false positives:
####################### MESSAGE ############################ s_all run of: "./s_export" resulted in: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= unexpected external symbols in the WiredTiger library ../build/libwiredtiger.a =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= __ut_block_first_srch __ut_block_off_srch __ut_block_off_srch_last __ut_block_size_srch __ut_ckpt_add_blkmod_entry __ut_ovfl_discard_verbose __ut_ovfl_discard_wrapup ####################### ####################### MESSAGE ############################ s_all run of: "./s_evergreen ./s_evergreen_validate -F" resulted in: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ./s_evergreen: /home/ubuntu/src/wiredtiger/test/evergreen/evg_cfg.py check Task 'build--deps-catch2-src-projects-test' (for directory 'build/_deps/catch2-src/projects') is missing in test/evergreen.yml! Task 'build--deps-catch2-src-projects-ExtraTests-test' (for directory 'build/_deps/catch2-src/projects/ExtraTests') is missing in test/evergreen.yml! *** Some tests are missing in Evergreen configuration *** Please 1) Run '/home/ubuntu/src/wiredtiger/test/evergreen/evg_cfg.py generate' to generate and apply the Evergreen changes. 2) Run 'git diff' to see the detail of the Evergreen changes. 3) Trigger Evergreen patch build to verify the changes before merging. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ####################### Traceback (most recent call last): File "/home/ubuntu/src/wiredtiger/dist/comment_style.py", line 146, in <module> count += check_c_comments(file_name) File "/home/ubuntu/src/wiredtiger/dist/comment_style.py", line 11, in check_c_comments with open(file_name) as f: FileNotFoundError: [Errno 2] No such file or directory: ''
The first is due to testing functions being exported in order to run unit tests - This is acceptable behaviour as we only use it for testing.
The second is detecting our third party catch2 dependency and incorrectly expecting evergreen tests for it.
The final false positive is not due to the HAVE_UNITTEST=1 flag, but rather due to a lack of files changed since the branch has diverged from develop. When run in fast mode we only check modified files, but in this case there are none and the script doesn't handle and empty list of files.
These two errors need to be suppressed in s_all.