# # This file defines the tasks and platforms for WiredTiger in the # MongoDB continuous integration system (see https://mci.mongodb.com). # functions: "get project" : command: git.get_project params: directory: wiredtiger "fetch artifacts" : command: s3.get params: aws_key: ${aws_key} aws_secret: ${aws_secret} remote_file: wiredtiger/${build_variant}/${revision}/artifacts/${dependent_task|compile}_${build_id}.tgz bucket: build_external extract_to: wiredtiger "fetch artifacts from little-endian" : - command: s3.get params: aws_key: ${aws_key} aws_secret: ${aws_secret} remote_file: wiredtiger/little-endian/${revision}/artifacts/WT_TEST.tgz bucket: build_external local_file: WT_TEST-little-endian.tgz - command: archive.targz_extract params: path: "WT_TEST-little-endian.tgz" destination: "wiredtiger/build_posix/test/format" "fetch artifacts from big-endian" : - command: s3.get params: aws_key: ${aws_key} aws_secret: ${aws_secret} remote_file: wiredtiger/big-endian/${revision}/artifacts/WT_TEST.tgz bucket: build_external local_file: WT_TEST-big-endian.tgz - command: archive.targz_extract params: path: "WT_TEST-big-endian.tgz" destination: "wiredtiger/build_posix/test/format" "fetch mongo-tests repo" : command: shell.exec params: script: | git clone https://github.com/wiredtiger/mongo-tests "configure wiredtiger": &configure_wiredtiger command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose if [ "$OS" != "Windows_NT" ]; then sh reconf ${configure_env_vars|CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-ggdb -fPIC"} PYTHON="python3" \ ../configure ${configure_python_setting|} \ ${posix_configure_flags|--enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL} fi "make wiredtiger": &make_wiredtiger command: shell.exec params: working_dir: "wiredtiger" shell: bash script: | set -o errexit set -o verbose if [ "Windows_NT" == "$OS" ]; then export "PATH=/cygdrive/c/Python39:/cygdrive/c/Python39/Scripts:$PATH" python --version python -m pip install scons==3.1.1 scons-3.1.1.bat "LIBPATH=c:\\python\\Python39\\libs" --enable-python=c:\\swigwin-3.0.2\\swig.exe --enable-diagnostic ${scons_smp_command|} else cd build_posix ${make_command|make} ${smp_command|} 2>&1 # On macOS, change the binary location with install_name_tool since DYLD_LIBRARY_PATH # appears not to work for dynamic modules loaded by python. For wt, the libtool generated # script has the wrong path for running on test machines. if [ "$(uname -s)" == "Darwin" ]; then WT_VERSION=$(m4 aclocal/version.m4) install_name_tool -change /usr/local/lib/libwiredtiger-$WT_VERSION.dylib $(pwd)/.libs/libwiredtiger-$WT_VERSION.dylib lang/python/_wiredtiger*.so install_name_tool -change /usr/local/lib/libwiredtiger-$WT_VERSION.dylib $(pwd)/.libs/libwiredtiger-$WT_VERSION.dylib .libs/wt fi fi "compile wiredtiger": - *configure_wiredtiger - *make_wiredtiger "compile wiredtiger no linux ftruncate": - *configure_wiredtiger - command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose echo '#undef HAVE_FTRUNCATE' >> wiredtiger_config.h - *make_wiredtiger "compile wiredtiger address sanitizer": - command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose sh reconf if [ "$OS" != "Windows_NT" ]; then CC=/opt/mongodbtoolchain/v3/bin/clang CXX=/opt/mongodbtoolchain/v3/bin/clang++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-ggdb -fPIC -fno-omit-frame-pointer -fsanitize=address" CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb -fPIC" \ ../configure ${configure_python_setting|} \ --enable-diagnostic --with-builtins=lz4,snappy,zlib fi - *make_wiredtiger "compile wiredtiger with builtins": - command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose sh reconf if [ "$OS" != "Windows_NT" ]; then CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-ggdb -fPIC" \ ../configure ${configure_python_setting|} \ --enable-strict --enable-diagnostic --with-builtins=lz4,snappy,zlib fi - *make_wiredtiger "compile wiredtiger docs": - command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose if [[ "${branch_name}" != "develop" ]]; then echo "We only run the documentation update task on the WiredTiger (develop) Evergreen project." exit 0 fi # Go through each supported WiredTiger Github branch to build the docs. # Please note the "branch" variable used here is a normal shell variable to store the name of # a WiredTiger Github branch, while the "branch_name" used above is an Evergreen built-in variable # to store the name of the branch being tested by the Evergreen project. for branch in develop mongodb-4.4 mongodb-4.2 mongodb-4.0 mongodb-3.6 ; do echo "[Debug] Checking out branch $branch ..." git checkout $branch && git pull --ff-only && git reset --hard origin/$branch && git clean -fdqx sh reconf # Java API is removed in newer branches via WT-6675. if [ "$branch" = "mongodb-4.2" -o "$branch" = "mongodb-4.0" -o "$branch" = "mongodb-3.6" ]; then ../configure CFLAGS="-DMIGHT_NOT_RUN -Wno-error" --enable-java --enable-python --enable-strict (cd lang/python && make ../../../lang/python/wiredtiger_wrap.c) (cd lang/java && make ../../../lang/java/wiredtiger_wrap.c) else ../configure CFLAGS="-DMIGHT_NOT_RUN -Wno-error" --enable-python --enable-strict (cd lang/python && make ../../../lang/python/wiredtiger_wrap.c) fi # Make sure the code fragment is in the documentation build. make all-am make -C test/utility make -C examples/c (cd ../dist && sh s_docs) (cd .. && rm -rf docs-$branch && mv docs docs-$branch) done "update wiredtiger docs": - command: shell.exec params: working_dir: "wiredtiger" shell: bash script: | set -o errexit set -o verbose if [[ "${branch_name}" != "develop" ]]; then echo "We only run the documentation update task on the WiredTiger (develop) Evergreen project." exit 0 fi git clone git@github.com:wiredtiger/wiredtiger.github.com.git cd wiredtiger.github.com # Go through each supported WiredTiger Github branch to stage the doc changes. # Please note the "branch" variable used here is a normal shell variable to store the name of # a WiredTiger Github branch, while the "branch_name" used above is an Evergreen built-in variable # to store the name of the branch being tested by the Evergreen project. for branch in mongodb-3.6 mongodb-4.0 mongodb-4.2 mongodb-4.4 develop ; do echo "[Debug] Copying over doc directory for branch $branch ..." rsync -avq ../docs-$branch/ $branch/ # Commit and push the changes (if any). git add $branch > /dev/null done git commit -m "Update auto-generated develop docs" \ --author="svc-bot-doc-build " > /dev/null # Use separate shell.exec with "silent" directive to avoid exposing credentail in task log. - command: shell.exec params: working_dir: "wiredtiger" shell: bash silent: true script: | set -o errexit set -o verbose if [[ "${branch_name}" != "develop" ]]; then echo "We only run the documentation update task on the WiredTiger (develop) Evergreen project." exit 0 fi cd wiredtiger.github.com git push https://${doc-update-github-token}@github.com/wiredtiger/wiredtiger.github.com "make check directory": command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} ${make_command|make} VERBOSE=1 check -C ${directory} ${smp_command|} 2>&1 "make check all": command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} ${make_command|make} VERBOSE=1 check ${smp_command|} 2>&1 "unit test": command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose if [ "Windows_NT" = "$OS" ]; then export "PATH=/cygdrive/c/Python39:/cygdrive/c/Python39/Scripts:$PATH" export "PYTHONPATH=$(pwd)/../lang/python/wiredtiger):$(cygpath -w $(pwd)/../lang/python)" fi ${test_env_vars|} ${python_binary|python3} ../test/suite/run.py ${unit_test_args|-v 2} ${smp_command|} 2>&1 "format test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/format" script: | set -o errexit set -o verbose for i in $(seq ${times|1}); do ./t -1 -c ${config|../../../test/format/CONFIG.stress} ${extra_args|} || ( [ -f RUNDIR/CONFIG ] && cat RUNDIR/CONFIG ) 2>&1 done "format test script": command: shell.exec params: working_dir: "wiredtiger/test/format" script: | set -o errexit set -o verbose ${format_test_setting|} for i in $(seq ${times|1}); do ${test_env_vars|} ./format.sh ${smp_command|} ${format_test_script_args|} 2>&1 done "many dbs test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/manydbs" script: | set -o errexit set -o verbose ${test_env_vars|} ./t ${many_db_args|} 2>&1 "thread test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/thread" script: | set -o errexit set -o verbose ${test_env_vars|} ./t ${thread_test_args|} 2>&1 "random abort test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/csuite" script: | set -o errexit set -o verbose ${test_env_vars|} ./test_random_abort ${random_abort_args|} 2>&1 "timestamp abort test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/csuite" script: | set -o errexit set -o verbose ${test_env_vars|} ./test_timestamp_abort ${timestamp_abort_args|} 2>&1 "truncated log test": command: shell.exec params: working_dir: "wiredtiger/build_posix/" script: | set -o errexit set -o verbose ${test_env_vars|} ./test/csuite/test_truncated_log ${truncated_log_args|} 2>&1 "recovery stress test script": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/csuite" script: | set -o errexit set -o verbose for i in $(seq ${times|1}); do # Run the various combinations of args. Let time and threads be random. Add a # timing stress to test_timestamp_abort every other run. if [ $(( $i % 2 )) -eq 0 ]; then test_timestamp_abort_args=-s else test_timestamp_abort_args= fi # Run current version with write-no-sync txns. ${test_env_vars|} ./test_random_abort 2>&1 ${test_env_vars|} ./test_timestamp_abort $test_timestamp_abort_args 2>&1 # Current version with memory-based txns (MongoDB usage). ${test_env_vars|} ./test_random_abort -m 2>&1 ${test_env_vars|} ./test_timestamp_abort -m $test_timestamp_abort_args 2>&1 # V1 log compatibility mode with write-no-sync txns. ${test_env_vars|} ./test_random_abort -C 2>&1 ${test_env_vars|} ./test_timestamp_abort -C $test_timestamp_abort_args 2>&1 # V1 log compatibility mode with memory-based txns. ${test_env_vars|} ./test_random_abort -C -m 2>&1 ${test_env_vars|} ./test_timestamp_abort -C -m $test_timestamp_abort_args 2>&1 ${test_env_vars|} ./test_truncated_log ${truncated_log_args|} 2>&1 # Just let the system take a breath sleep 10s done "upload artifact": - command: archive.targz_pack params: target: "wiredtiger.tgz" source_dir: "wiredtiger" include: - "./**" - command: s3.put params: aws_secret: ${aws_secret} aws_key: ${aws_key} local_file: wiredtiger.tgz bucket: build_external permissions: public-read content_type: application/tar display_name: Artifacts remote_file: wiredtiger/${build_variant}/${revision}/artifacts/${task_name}_${build_id}${postfix|}.tgz "cleanup": command: shell.exec params: script: | rm -rf "wiredtiger" rm -rf "wiredtiger.tgz" "run wt hang analyzer": command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o verbose # Dump core (-c) and debugger outputs (-o) wt_hang_analyzer_option="-c -o file -o stdout" echo "Calling the wt hang analyzer ..." PATH="/opt/mongodbtoolchain/gdb/bin:$PATH" ${python_binary|python3} ../test/wt_hang_analyzer/wt_hang_analyzer.py $wt_hang_analyzer_option "save wt hang analyzer core/debugger files": - command: archive.targz_pack params: target: "wt-hang-analyzer.tgz" source_dir: "wiredtiger/build_posix" include: - "./*core*" - "./debugger*.*" - command: s3.put params: aws_secret: ${aws_secret} aws_key: ${aws_key} local_file: wt-hang-analyzer.tgz bucket: build_external permissions: public-read content_type: application/tar display_name: WT Hang Analyzer Output - Execution ${execution} remote_file: wiredtiger/${build_variant}/${revision}/wt_hang_analyzer/wt-hang-analyzer_${task_name}_${build_id}${postfix|}.tgz "dump stderr/stdout": command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose if [ -d "WT_TEST" ]; then # Dump stderr/stdout contents generated by the C libraries onto console for Python tests find "WT_TEST" -name "std*.txt" ! -empty -exec sh -c "echo 'Contents from {}:'; cat {}" \; fi "checkpoint test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/checkpoint" script: | set -o errexit set -o verbose ./t ${checkpoint_args} 2>&1 "checkpoint stress test": command: shell.exec params: working_dir: "wiredtiger/build_posix/test/checkpoint" shell: bash script: | set -o errexit set -o verbose export WIREDTIGER_CONFIG='checkpoint_sync=0,transaction_sync=(method=none)' CMD='./t -h WT_TEST.$i.$t -t r -r 2 -W 3 -n 1000000 -k 1000000 -C "cache_size=100MB"' for i in $(seq ${times|1}); do for t in $(seq ${no_of_procs|1}); do eval nohup $CMD > nohup.out.$i.$t 2>&1 & done for t in $(seq ${no_of_procs|1}); do ret=0 wait -n || ret=$? if [ $ret -ne 0 ]; then # Skip the below lines from nohup output file because they are very verbose and # print only the errors to evergreen log file. grep -v "Finished verifying" nohup.out.* | grep -v "Finished a checkpoint" | grep -v "thread starting" fi exit $ret done done ######################################################################################### # VARIABLES # # The following stress tests are configured to run for six hours via the "-t 360" # argument to format.sh: format-stress-test, format-stress-sanitizer-test, and # race-condition-stress-sanitizer-test. The smoke and recovery tests run in a loop, # with the number of runs adjusted to provide aproximately six hours of testing. ######################################################################################### variables: - &format-stress-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger with builtins" - func: "format test script" vars: format_test_script_args: -e "SEGFAULT_SIGNALS=all" -b "catchsegv ./t" -t 360 - &format-stress-sanitizer-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger address sanitizer" - func: "format test script" vars: format_test_script_args: -t 360 test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer - &format-stress-smoke-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger with builtins" - func: "format test script" vars: format_test_script_args: -e "SEGFAULT_SIGNALS=all" -b "catchsegv ./t" -S times: 30 - &format-stress-sanitizer-smoke-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger address sanitizer" - func: "format test script" vars: test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer format_test_script_args: -S times: 20 - &race-condition-stress-sanitizer-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CC="/opt/mongodbtoolchain/v3/bin/clang -fsanitize=address" PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-ggdb -fPIC -fno-omit-frame-pointer" CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb -fPIC" posix_configure_flags: --enable-strict --enable-diagnostic --with-builtins=lz4,snappy,zlib - func: "format test script" vars: format_test_script_args: -R -t 360 test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer - &recovery-stress-test exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-strict --enable-diagnostic --with-builtins=lz4,snappy,zlib - func: "recovery stress test script" vars: times: 25 pre: - func: "cleanup" post: - func: "upload artifact" vars: postfix: -${execution} - func: "save wt hang analyzer core/debugger files" - func: "dump stderr/stdout" - func: "cleanup" timeout: - func: "run wt hang analyzer" tasks: # Base compile task on posix flavours - name: compile tags: ["pull_request"] commands: - func: "get project" - func: "compile wiredtiger" - func: "upload artifact" - func: "cleanup" - name: compile-msan commands: - func: "get project" - func: "compile wiredtiger" vars: # We don't compile C++ for memory sanitized testing as it creates false positives configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/clang CXX=skip PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-fsanitize=memory -ggdb" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic --disable-static - func: "upload artifact" - func: "cleanup" - name: compile-ubsan commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-fsanitize=undefined -ggdb" CXXFLAGS="-fsanitize=undefined -ggdb" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic - func: "upload artifact" - func: "cleanup" # production build with --disable-shared - name: compile-production-disable-shared tags: ["pull_request"] commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-silent-rules --enable-strict --disable-shared - func: "upload artifact" - func: "cleanup" # production build with --disable-static - name: compile-production-disable-static tags: ["pull_request"] commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-silent-rules --enable-strict --disable-static --enable-lz4 --enable-snappy --enable-zlib --enable-zstd --enable-python - func: "upload artifact" - func: "cleanup" - name: compile-linux-no-ftruncate commands: - func: "get project" - func: "compile wiredtiger no linux ftruncate" vars: posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-strict --enable-python - func: "upload artifact" - func: "cleanup" - name: compile-wtperf commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-strict --enable-diagnostic - func: "upload artifact" - func: "cleanup" - name: compile-gcc tags: ["pull_request", "pull_request_compilers"] commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-4.8 CXX=g++-4.8 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-5 CXX=g++-5 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-6 CXX=g++-6 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-6 CXX=g++-6 ADD_CFLAGS="-ggdb -fPIC" CPPFLAGS=-fvisibility=hidden - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-7 CXX=g++-7 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-8 CXX=g++-8 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=gcc-9 CXX=g++-9 ADD_CFLAGS="-ggdb -fPIC" - name: compile-clang tags: ["pull_request", "pull_request_compilers"] commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-3.9 CXX=clang++-3.9 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-4.0 CXX=clang++-4.0 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-5.0 CXX=clang++-5.0 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-6.0 CXX=clang++-6.0 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-7 CXX=clang++-7 ADD_CFLAGS="-ggdb -fPIC" - func: "compile wiredtiger" vars: configure_env_vars: CC=clang-8 CXX=clang++-8 ADD_CFLAGS="-ggdb -fPIC" - name: make-check-test depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check all" - name: make-check-msan-test depends_on: - name: compile-msan commands: - func: "fetch artifacts" vars: dependent_task: compile-msan - func: "compile wiredtiger" vars: # We don't compile C++ for memory sanitized testing as it creates false positives configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/clang CXX=skip PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-fsanitize=memory -ggdb" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic --disable-static - func: "make check all" vars: smp_command: -j 1 test_env_vars: MSAN_OPTIONS=abort_on_error=1:disable_coredump=0 MSAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer TESTUTIL_SLOW_MACHINE=1 - name: make-check-linux-no-ftruncate-test depends_on: - name: compile-linux-no-ftruncate commands: - func: "fetch artifacts" vars: dependent_task: compile-linux-no-ftruncate - func: "compile wiredtiger no linux ftruncate" vars: posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-strict --enable-python - func: "make check all" # Start of normal make check test tasks - name: lang-python-test tags: ["pull_request", "python"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: lang/python - name: examples-c-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: examples/c - name: examples-c-production-disable-shared-test tags: ["pull_request"] depends_on: - name: compile-production-disable-shared commands: - func: "fetch artifacts" vars: dependent_task: compile-production-disable-shared - func: "compile wiredtiger" vars: posix_configure_flags: --enable-silent-rules --enable-strict --disable-shared - func: "make check directory" vars: directory: examples/c - name: examples-c-production-disable-static-test tags: ["pull_request"] depends_on: - name: compile-production-disable-static commands: - func: "fetch artifacts" vars: dependent_task: compile-production-disable-static - func: "compile wiredtiger" vars: posix_configure_flags: --enable-silent-rules --enable-strict --disable-static --enable-lz4 --enable-snappy --enable-zlib --enable-zstd --enable-python - func: "make check directory" vars: directory: examples/c - name: bloom-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/bloom - name: checkpoint-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/checkpoint - name: cursor-order-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/cursor_order - name: fops-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/fops - name: format-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/format - name: huge-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/huge - name: manydbs-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/manydbs - name: packing-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/packing - name: readonly-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/readonly - name: salvage-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/salvage - name: thread-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: test/thread - name: bench-wtperf-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "make check directory" vars: directory: bench/wtperf # End of normal make check test tasks - name: ubsan-test depends_on: - name: compile-ubsan commands: - func: "fetch artifacts" vars: dependent_task: compile-ubsan - func: "compile wiredtiger" vars: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-fsanitize=undefined -ggdb" CXXFLAGS="-fsanitize=undefined -ggdb" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic - command: shell.exec params: working_dir: "wiredtiger/build_posix/examples/c" script: | set -o errexit set -o verbose UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1:abort_on_error=1:disable_coredump=0 ./ex_access # Start of cppsuite test tasks. - name: poc-test-cpp tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix/" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/cppsuite/run -t poc_test -f test/cppsuite/configs/config_poc_test_default.txt -l 1 # End of cppsuite test tasks. # Start of csuite test tasks - name: csuite-incr-backup-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_incr_backup 2>&1 - name: csuite-random-abort-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/../test/csuite/random_abort/smoke.sh 2>&1 - name: csuite-random-directio-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/../test/csuite/random_directio/smoke.sh 2>&1 - name: csuite-schema-abort-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/../test/csuite/schema_abort/smoke.sh 2>&1 - name: csuite-timestamp-abort-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/../test/csuite/timestamp_abort/smoke.sh 2>&1 - name: csuite-timestamp-abort-stress-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/../test/csuite/timestamp_abort/smoke.sh -s 2>&1 - name: csuite-scope-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_scope 2>&1 - name: csuite-truncated-log-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "truncated log test" - name: csuite-wt1965-col-efficiency-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt1965_col_efficiency 2>&1 - name: csuite-wt2403-lsm-workload-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2403_lsm_workload 2>&1 - name: csuite-wt2447-join-main-table-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2447_join_main_table 2>&1 - name: csuite-wt2695-checksum-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2695_checksum 2>&1 - name: csuite-wt2592-join-schema-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2592_join_schema 2>&1 - name: csuite-wt2719-reconfig-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2719_reconfig 2>&1 - name: csuite-wt2999-join-extractor-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2999_join_extractor 2>&1 - name: csuite-wt3120-filesys-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3120_filesys 2>&1 - name: csuite-wt3135-search-near-collator-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3135_search_near_collator 2>&1 - name: csuite-wt3184-dup-index-collator-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3184_dup_index_collator 2>&1 - name: csuite-wt3363-checkpoint-op-races-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3363_checkpoint_op_races 2>&1 - name: csuite-wt3874-pad-byte-collator-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3874_pad_byte_collator 2>&1 - name: csuite-wt4105-large-doc-small-upd-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4105_large_doc_small_upd 2>&1 - name: csuite-wt4117-checksum-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4117_checksum 2>&1 - name: csuite-wt4156-metadata-salvage-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4156_metadata_salvage 2>&1 - name: csuite-wt4699-json-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4699_json 2>&1 - name: csuite-wt4803-history-store-abort-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4803_history_store_abort 2>&1 - name: csuite-wt4891-meta-ckptlist-get-alloc-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4891_meta_ckptlist_get_alloc 2>&1 - name: csuite-wt6185-modify-ts-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt6185_modify_ts 2>&1 - name: csuite-rwlock-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_rwlock 2>&1 # Temporarily disabled (WT-5790) # - name: csuite-wt2246-col-append-test # tags: ["pull_request"] # depends_on: # - name: compile # commands: # - func: "fetch artifacts" # - command: shell.exec # params: # working_dir: "wiredtiger/build_posix" # script: | # set -o errexit # set -o verbose # ${test_env_vars|} $(pwd)/test/csuite/test_wt2246_col_append 2>&1 - name: csuite-wt2323-join-visibility-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2323_join_visibility 2>&1 - name: csuite-wt2535-insert-race-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2535_insert_race 2>&1 - name: csuite-wt2834-join-bloom-fix-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2834_join_bloom_fix 2>&1 - name: csuite-wt2853-perf-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2853_perf 2>&1 - name: csuite-wt2909-checkpoint-integrity-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt2909_checkpoint_integrity 2>&1 - name: csuite-wt3338-partial-update-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt3338_partial_update 2>&1 - name: csuite-wt4333-handle-locks-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt4333_handle_locks 2>&1 - name: csuite-wt6616-checkpoint-oldest-ts-test tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose ${test_env_vars|} $(pwd)/test/csuite/test_wt6616_checkpoint_oldest_ts 2>&1 # End of csuite test tasks # Start of Python unit test tasks - name: unit-test tags: ["python"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" - name: unit-test-with-compile tags: ["python"] commands: - func: "get project" - func: "compile wiredtiger" - func: "unit test" - name: unit-test-long tags: ["python"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 --long - name: unit-linux-no-ftruncate-test tags: ["python"] depends_on: - name: compile-linux-no-ftruncate commands: - func: "fetch artifacts" vars: dependent_task: compile-linux-no-ftruncate - func: "unit test" # Run the tests that uses suite_random with a random starting seed - name: unit-test-random-seed tags: ["python"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -R cursor13 join02 join07 schema03 timestamp22 # Break out Python unit tests into multiple buckets/tasks. We have a fixed number of buckets, # and we use the -b option of the test/suite/run.py script to split up the tests. - name: unit-test-bucket00 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 0/11 - name: unit-test-bucket01 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 1/11 - name: unit-test-bucket02 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 2/11 - name: unit-test-bucket03 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 3/11 - name: unit-test-bucket04 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 4/11 - name: unit-test-bucket05 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 5/11 - name: unit-test-bucket06 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 6/11 - name: unit-test-bucket07 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 7/11 - name: unit-test-bucket08 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 8/11 - name: unit-test-bucket09 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 9/11 - name: unit-test-bucket10 tags: ["pull_request", "python", "unit_test"] depends_on: - name: compile commands: - func: "fetch artifacts" - func: "unit test" vars: unit_test_args: -v 2 -b 10/11 # End of Python unit test tasks - name: s-all tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/dist" script: | set -o errexit set -o verbose sh s_all -A -E 2>&1 - name: conf-dump-test tags: ["pull_request", "python"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix/test" script: | set -o errexit set -o verbose ${test_env_vars|} ${python_binary|python3} ../../test/wtperf/test_conf_dump.py 2>&1 - name: compile-windows-alt tags: ["pull_request", "windows_only"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose export "PATH=/cygdrive/c/Python39:/cygdrive/c/Python39/Scripts:$PATH" python --version python -m pip install scons==3.1.1 scons-3.1.1.bat ${scons_smp_command|} "CFLAGS=/Gv /wd4090 /wd4996 /we4047 /we4024 /TC /we4100 /we4133" wiredtiger.dll libwiredtiger.lib - name: scons-check tags: ["pull_request", "windows_only"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose export "PATH=/cygdrive/c/Python39:/cygdrive/c/Python39/Scripts:$PATH" python --version python -m pip install scons==3.1.1 # The check target is not run in parallel. scons-3.1.1.bat check - name: fops tags: ["pull_request"] depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose if [ "Windows_NT" = "$OS" ]; then cd .. cmd.exe /c t_fops.exe else ${test_env_vars|} test/fops/t fi - name: million-collection-test commands: - func: "get project" - func: "fetch mongo-tests repo" - command: shell.exec params: working_dir: mongo-tests script: | sudo su set -o errexit set -o verbose ulimit -n 1000000 ulimit -c unlimited largescale/run-million-collection-test.sh . - name: compatibility-test-for-newer-releases commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose test/evergreen/compatibility_test_for_releases.sh -n - name: compatibility-test-for-older-releases commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose test/evergreen/compatibility_test_for_releases.sh -o - name: compatibility-test-for-wt-standalone-releases commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose test/evergreen/compatibility_test_for_releases.sh -w - name: import-compatibility-test commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose test/evergreen/import_compatibility_test.sh - name: generate-datafile-little-endian depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "format test" vars: times: 10 config: ../../../test/format/CONFIG.endian extra_args: -h "WT_TEST.$i" - command: shell.exec params: working_dir: "wiredtiger/build_posix/test/format" shell: bash script: | set -o errexit set -o verbose # Archive the WT_TEST directories which include the generated wt data files tar -zcvf WT_TEST.tgz WT_TEST* - command: s3.put params: aws_secret: ${aws_secret} aws_key: ${aws_key} local_file: wiredtiger/build_posix/test/format/WT_TEST.tgz bucket: build_external permissions: public-read content_type: application/tar display_name: WT_TEST remote_file: wiredtiger/little-endian/${revision}/artifacts/WT_TEST.tgz - name: verify-datafile-little-endian depends_on: - name: compile - name: generate-datafile-little-endian commands: - func: "fetch artifacts" - func: "fetch artifacts from little-endian" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose ./test/evergreen/verify_wt_datafiles.sh 2>&1 - name: verify-datafile-from-little-endian depends_on: - name: compile - name: generate-datafile-little-endian variant: little-endian commands: - func: "fetch artifacts" - func: "fetch artifacts from little-endian" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose ./test/evergreen/verify_wt_datafiles.sh 2>&1 - name: generate-datafile-big-endian depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "format test" vars: times: 10 config: ../../../test/format/CONFIG.endian extra_args: -h "WT_TEST.$i" - command: shell.exec params: working_dir: "wiredtiger/build_posix/test/format" shell: bash script: | set -o errexit set -o verbose # Archive the WT_TEST directories which include the generated wt data files tar -zcvf WT_TEST.tgz WT_TEST* - command: s3.put params: aws_secret: ${aws_secret} aws_key: ${aws_key} local_file: wiredtiger/build_posix/test/format/WT_TEST.tgz bucket: build_external permissions: public-read content_type: application/tar display_name: WT_TEST remote_file: wiredtiger/big-endian/${revision}/artifacts/WT_TEST.tgz - name: verify-datafile-big-endian depends_on: - name: compile - name: generate-datafile-big-endian commands: - func: "fetch artifacts" - func: "fetch artifacts from big-endian" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose ./test/evergreen/verify_wt_datafiles.sh 2>&1 - name: verify-datafile-from-big-endian depends_on: - name: compile - name: generate-datafile-big-endian variant: big-endian commands: - func: "fetch artifacts" - func: "fetch artifacts from big-endian" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose ./test/evergreen/verify_wt_datafiles.sh 2>&1 - name: clang-analyzer tags: ["pull_request"] commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger" script: | set -o errexit set -o verbose sh dist/s_clang-scan 2>&1 - name: configure-combinations commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger/test/evergreen" script: | set -o errexit set -o verbose ./configure_combinations.sh ${smp_command|} 2>&1 # Handle special build combination for running all the diagnostic tests. - func: "configure wiredtiger" vars: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-g -Werror" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic --disable-static - func: "make wiredtiger" vars: make_command: make all - func: "make check all" # Use format.sh to run tests in parallel (x4) for just under two hours (the # default Evergreen timeout) on the higher spec build distros. This allows # us to perform multiple test runs while ensuring a long-running config does # not result in an Evergreen test timeout failure. - name: linux-directio depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - func: "format test script" vars: format_test_script_args: -t 110 -j 4 direct_io=1 # - name: linux-directio # depends_on: # - name: compile # commands: # - func: "fetch artifacts" # - func: "compile wiredtiger" # - func: "format test" # vars: # times: 3 # config: ../../../test/format/CONFIG.stress # extra_args: -C "direct_io=[data]" - name: format-linux-no-ftruncate depends_on: - name: compile-linux-no-ftruncate commands: - func: "fetch artifacts" vars: dependent_task: compile-linux-no-ftruncate - func: "compile wiredtiger no linux ftruncate" - func: "format test" vars: times: 3 - name: package commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger/dist" script: | set -o errexit set -o verbose env CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:/opt/java/jdk11/bin:$PATH sh s_release `date +%Y%m%d` - name: doc-update patchable: false commands: - func: "get project" - func: "compile wiredtiger docs" - func: "update wiredtiger docs" - name: syscall-linux depends_on: - name: compile commands: - func: "fetch artifacts" - func: "compile wiredtiger" - command: shell.exec params: working_dir: "wiredtiger/test/syscall" script: | set -o errexit set -o verbose ${python_binary|python3} syscall.py --verbose --preserve - name: checkpoint-filetypes-test commands: - func: "get project" - func: "compile wiredtiger" vars: # Don't use diagnostic - this test looks for timing problems that are more likely to occur without it posix_configure_flags: --enable-strict # Temporarily disable mix and column file type # FIXME after WT-6608 #- func: "checkpoint test" # vars: # checkpoint_args: -t m -n 1000000 -k 5000000 -C cache_size=100MB #- func: "checkpoint test" # vars: # checkpoint_args: -t c -n 1000000 -k 5000000 -C cache_size=100MB - func: "checkpoint test" vars: checkpoint_args: -t r -n 1000000 -k 5000000 -C cache_size=100MB - name: coverage-report commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="--coverage -fPIC -ggdb" LDFLAGS=--coverage posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-strict --enable-python --with-builtins=lz4,snappy,zlib - func: "make check all" - func: "unit test" vars: unit_test_args: -v 2 --long - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row compression=snappy logging=1 logging_compression=snappy logging_prealloc=1 - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row alter=1 backups=1 compaction=1 data_extend=1 prepare=1 salvage=1 statistics=1 statistics_server=1 verify=1 - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row firstfit=1 internal_key_truncation=1 - func: "format test" vars: extra_args: leak_memory=0 mmap=1 file_type=row checkpoints=0 in_memory=1 reverse=1 truncate=1 - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row compression=zlib huffman_value=1 # FIXME-WT-6668: temporarily disable lower isolation level test # - func: "format test" # vars: # extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row isolation=random transaction_timestamps=0 - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row data_source=lsm bloom=1 # FIXME-WT-6669: temporarily disable column store test # - func: "format test" # vars: # extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=var compression=snappy checksum=uncompressed dictionary=1 repeat_data_pct=10 - func: "format test" vars: extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=row compression=lz4 prefix_compression=1 leaf_page_max=9 internal_page_max=9 key_min=256 value_min=256 # FIXME-WT-6669: temporarily disable column store test # - func: "format test" # vars: # extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=var leaf_page_max=9 internal_page_max=9 value_min=256 # FIXME-WT-6669: temporarily disable column store test # - func: "format test" # vars: # extra_args: checkpoints=1 leak_memory=0 mmap=1 file_type=fix - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose GCOV=/opt/mongodbtoolchain/v3/bin/gcov gcovr -r .. -e '.*/bt_(debug|dump|misc|salvage|vrfy).*' -e '.*/(log|progress|verify_build|strerror|env_msg|err_file|cur_config|os_abort)\..*' -e '.*_stat\..*' --html -o ../coverage_report.html - command: s3.put params: aws_secret: ${aws_secret} aws_key: ${aws_key} local_file: wiredtiger/coverage_report.html bucket: build_external permissions: public-read content_type: text/html display_name: Coverage report remote_file: wiredtiger/${build_variant}/${revision}/coverage_report/coverage_report_${build_id}-${execution}.html - name: spinlock-gcc-test commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-python --with-spinlock=gcc --enable-strict - func: "make check all" - func: "format test" vars: times: 3 - func: "unit test" - name: spinlock-pthread-adaptive-test commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-python --with-spinlock=pthread_adaptive --enable-strict - func: "make check all" - func: "format test" vars: times: 3 - func: "unit test" - name: wtperf-test depends_on: - name: compile-wtperf commands: - func: "fetch artifacts" vars: dependent_task: compile-wtperf - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose # The test will generate WT_TEST directory automatically dir=../bench/wtperf/stress for file in `ls $dir` do ./bench/wtperf/wtperf -O $dir/$file -o verbose=2 cp -rf WT_TEST WT_TEST_$file done - name: ftruncate-test commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-strict ac_cv_func_ftruncate=no - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose # ${test_env_vars|} $(pwd)/../test/csuite/random_abort/smoke.sh 2>&1 ${test_env_vars|} $(pwd)/../test/csuite/timestamp_abort/smoke.sh 2>&1 ${test_env_vars|} $(pwd)/test/csuite/test_truncated_log 2>&1 - name: long-test commands: - func: "get project" - func: "configure wiredtiger" vars: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/gcc CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-g -Werror" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic --disable-static - func: "make wiredtiger" # Run the long version of make check, that includes the full csuite tests - func: "make check all" vars: test_env_vars: ${test_env_vars} TESTUTIL_ENABLE_LONG_TESTS=1 - command: shell.exec params: working_dir: "wiredtiger/build_posix" script: | set -o errexit set -o verbose WT3363_CHECKPOINT_OP_RACES=1 test/csuite/./test_wt3363_checkpoint_op_races 2>&1 # Many dbs test - Run with: # 1. The defaults - func: "many dbs test" # 2. Set idle flag to turn off operations. - func: "many dbs test" vars: many_db_args: -I # 3. More dbs. - func: "many dbs test" vars: many_db_args: -D 40 # 4. With idle flag and more dbs. - func: "many dbs test" vars: many_db_args: -I -D 40 # extended test/thread runs - func: "thread test" vars: thread_test_args: -t f - func: "thread test" vars: thread_test_args: -S -F -n 100000 -t f - func: "thread test" vars: thread_test_args: -t r - func: "thread test" vars: thread_test_args: -S -F -n 100000 -t r - func: "thread test" vars: thread_test_args: -t v - func: "thread test" vars: thread_test_args: -S -F -n 100000 -t v # random-abort - default (random time and number of threads) - func: "random abort test" # random-abort - minimum time, random number of threads - func: "random abort test" vars: random_abort_args: -t 10 # random-abort - maximum time, random number of threads - func: "random abort test" vars: random_abort_args: -t 40 # truncated-log - func: "truncated log test" # format test - func: "format test" vars: extra_args: file_type=fix - func: "format test" vars: extra_args: file_type=row #FIXME-WT-5270: Add wtperf testing from Jenkin "wiredtiger-test-check-long" after fixing WT-5270 - name: time-shift-sensitivity-test depends_on: - name: compile commands: - func: "fetch artifacts" vars: posix_configure_flags: --enable-strict - command: shell.exec params: working_dir: "wiredtiger/test/csuite" script: | set -o errexit set -o verbose ./time_shift_test.sh /usr/local/lib/faketime/libfaketimeMT.so.1 0-1 2>&1 - name: format-stress-pull-request-test tags: ["pull_request"] commands: - func: "get project" - func: "compile wiredtiger" - func: "format test script" vars: smp_command: -j $(grep -c ^processor /proc/cpuinfo) # run for 10 minutes. format_test_script_args: -t 10 rows=10000 ops=50000 - name: format-wtperf-test commands: - func: "get project" - func: "compile wiredtiger with builtins" - command: shell.exec params: working_dir: "wiredtiger/build_posix/bench/wtperf" script: | set -o errexit set -o verbose cp ../../../bench/wtperf/split_heavy.wtperf . ./wtperf -O ./split_heavy.wtperf -o verbose=2 - name: format-failure-configs-test depends_on: - name: compile commands: - func: "fetch artifacts" - command: shell.exec params: working_dir: "wiredtiger/test/evergreen" script: | set -o errexit set -o verbose ./run_format_configs.sh - name: static-wt-build-test commands: - func: "get project" - func: "compile wiredtiger" vars: posix_configure_flags: --enable-strict --disable-shared --with-builtins=snappy,zlib - command: shell.exec params: working_dir: "wiredtiger/build_posix" shell: bash script: | set -o errexit set -o verbose # Delete wt util rm -f wt # Build static wt util ${make_command|make} CC='eval "g++ -static"' ${smp_command|} # -V option displays Wiredtiger library version ./wt -V if [ $? -ne 0 ]; then echo "Error, WT util is not generated or is not functioning" exit 1 fi ldd wt || wt_static_build=1 if [ $wt_static_build -ne 1 ]; then echo "Error, WT util is not statically linked" exit 1 fi - name: format-stress-sanitizer-lsm-test # Temporarily disabled (WT-6255) # tags: ["stress-test-1"] commands: - func: "get project" - func: "compile wiredtiger address sanitizer" - func: "format test script" vars: test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer # Run for 30 mins, and explicitly set data_source to LSM with a large cache format_test_script_args: -t 30 data_source=lsm cache_minimum=5000 - name: checkpoint-stress-test tags: ["stress-test-1"] exec_timeout_secs: 86400 commands: - command: timeout.update params: timeout_secs: 86400 - func: "get project" - func: "compile wiredtiger with builtins" - func: "checkpoint stress test" vars: times: 1 # No of times to run the loop no_of_procs: 10 # No of processes to run in the background - name: split-stress-test tags: ["stress-test-1", "stress-test-zseries-1"] commands: - func: "get project" - func: "compile wiredtiger" vars: configure_env_vars: CXX=/opt/mongodbtoolchain/v3/bin/g++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-ggdb -fPIC" - command: shell.exec params: working_dir: "wiredtiger/bench/workgen/runner" script: | set -o errexit set -o verbose for i in {1..10}; do ${test_env_vars|} ${python_binary|python3} split_stress.py; done # The task name is ppc-zseries because this task will be used in both buildVariants - name: format-stress-ppc-zseries-test tags: ["stress-test-ppc-1", "stress-test-zseries-1"] # Set 2.5 hours timeout (60 * 60 * 2.5) exec_timeout_secs: 9000 commands: - func: "get project" - func: "compile wiredtiger with builtins" - func: "format test script" vars: #run for 2 hours ( 2 * 60 = 120 minutes), use default config format_test_script_args: -e "SEGFAULT_SIGNALS=all" -b "catchsegv ./t" -t 120 # Replace this test with format-stress-sanitizer-test after BUILD-10248 fix. - name: format-stress-sanitizer-ppc-test tags: ["stress-test-ppc-1"] # Set 2.5 hours timeout (60 * 60 * 2.5) exec_timeout_secs: 9000 commands: - func: "get project" - func: "compile wiredtiger" vars: # CC is set to the system default "clang" binary here as a workaround. Change it back # to mongodbtoolchain "clang" binary after BUILD-10248 fix. configure_env_vars: CCAS=/opt/mongodbtoolchain/v3/bin/gcc CC=/usr/bin/clang CXX=/opt/mongodbtoolchain/v3/bin/clang++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-ggdb -fPIC -fsanitize=address -fno-omit-frame-pointer -I/opt/mongodbtoolchain/v3/lib/gcc/ppc64le-mongodb-linux/8.2.0/include" CXXFLAGS="-ggdb -fPIC -fsanitize=address -fno-omit-frame-pointer -I/opt/mongodbtoolchain/v3/lib/gcc/ppc64le-mongodb-linux/8.2.0/include" posix_configure_flags: --enable-diagnostic --with-builtins=lz4,snappy,zlib - func: "format test script" vars: test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-6.0/bin/llvm-symbolizer # Run for 2 hours (2 * 60 = 120 minutes), don't stop at failed tests, use default config format_test_script_args: -t 120 # Replace this test with format-stress-sanitizer-smoke-test after BUILD-10248 fix. - name: format-stress-sanitizer-smoke-ppc-test tags: ["stress-test-ppc-1"] # Set 7 hours timeout (60 * 60 * 7) exec_timeout_secs: 25200 commands: - func: "get project" - func: "compile wiredtiger" vars: # CC is set to the system default "clang" binary here as a workaround. Change it back # to mongodbtoolchain "clang" binary after BUILD-10248 fix. configure_env_vars: CCAS=/opt/mongodbtoolchain/v3/bin/gcc CC=/usr/bin/clang CXX=/opt/mongodbtoolchain/v3/bin/clang++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-ggdb -fPIC -fsanitize=address -fno-omit-frame-pointer -I/opt/mongodbtoolchain/v3/lib/gcc/ppc64le-mongodb-linux/8.2.0/include" CXXFLAGS="-ggdb -fPIC -fsanitize=address -fno-omit-frame-pointer -I/opt/mongodbtoolchain/v3/lib/gcc/ppc64le-mongodb-linux/8.2.0/include" posix_configure_flags: --enable-diagnostic --with-builtins=lz4,snappy,zlib - func: "format test script" # To emulate the original Jenkins job's test coverage, we are running the smoke test 16 times # Run smoke tests, don't stop at failed tests, use default config vars: test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-6.0/bin/llvm-symbolizer format_test_script_args: -S times: 16 - <<: *format-stress-test name: format-stress-test-1 tags: ["stress-test-1"] - <<: *format-stress-test name: format-stress-test-2 tags: ["stress-test-2"] - <<: *format-stress-test name: format-stress-test-3 tags: ["stress-test-3"] - <<: *format-stress-test name: format-stress-test-4 tags: ["stress-test-4"] - <<: *format-stress-sanitizer-test name: format-stress-sanitizer-test-1 tags: ["stress-test-1"] - <<: *format-stress-sanitizer-test name: format-stress-sanitizer-test-2 tags: ["stress-test-2"] - <<: *format-stress-sanitizer-test name: format-stress-sanitizer-test-3 tags: ["stress-test-3"] - <<: *format-stress-sanitizer-test name: format-stress-sanitizer-test-4 tags: ["stress-test-4"] - <<: *format-stress-smoke-test name: format-stress-smoke-test-1 tags: ["stress-test-1", "stress-test-ppc-1", "stress-test-zseries-1"] - <<: *format-stress-smoke-test name: format-stress-smoke-test-2 tags: ["stress-test-2", "stress-test-ppc-2", "stress-test-zseries-2"] - <<: *format-stress-sanitizer-smoke-test name: format-stress-sanitizer-smoke-test-1 tags: ["stress-test-1"] - <<: *format-stress-sanitizer-smoke-test name: format-stress-sanitizer-smoke-test-2 tags: ["stress-test-2"] - <<: *race-condition-stress-sanitizer-test name: race-condition-stress-sanitizer-test-1 tags: ["stress-test-1"] - <<: *race-condition-stress-sanitizer-test name: race-condition-stress-sanitizer-test-2 tags: ["stress-test-2"] - <<: *race-condition-stress-sanitizer-test name: race-condition-stress-sanitizer-test-3 tags: ["stress-test-3"] - <<: *race-condition-stress-sanitizer-test name: race-condition-stress-sanitizer-test-4 tags: ["stress-test-4"] - <<: *recovery-stress-test name: recovery-stress-test-1 tags: ["stress-test-1", "stress-test-zseries-1"] - <<: *recovery-stress-test name: recovery-stress-test-2 tags: ["stress-test-2", "stress-test-zseries-2"] - <<: *recovery-stress-test name: recovery-stress-test-3 tags: ["stress-test-3", "stress-test-zseries-3"] - name: cyclomatic-complexity commands: - func: "get project" - command: shell.exec params: working_dir: "wiredtiger/src" shell: bash script: | set -o verbose git clone https://github.com/metrixplusplus/metrixplusplus metrixplusplus python "metrixplusplus/metrix++.py" collect --std.code.lines.code --std.code.complexity.cyclomatic python "metrixplusplus/metrix++.py" view # Set the cyclomatic complexity limit to 20 python "metrixplusplus/metrix++.py" limit --max-limit=std.code.complexity:cyclomatic:20 # Fail if there are functions with cyclomatic complexity larger than 95 set -o errexit python "metrixplusplus/metrix++.py" limit --max-limit=std.code.complexity:cyclomatic:95 buildvariants: - name: ubuntu1804 display_name: "! Ubuntu 18.04" run_on: - ubuntu1804-test expansions: test_env_vars: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) smp_command: -j $(echo "`grep -c ^processor /proc/cpuinfo` * 2" | bc) posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-snappy --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL python_binary: '/opt/mongodbtoolchain/v3/bin/python3' make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make tasks: - name: ".pull_request !.windows_only !.pull_request_compilers" - name: compile-msan - name: make-check-msan-test - name: compile-ubsan - name: ubsan-test - name: linux-directio distros: ubuntu1804-build - name: syscall-linux - name: configure-combinations - name: checkpoint-filetypes-test - name: unit-test-long - name: unit-test-random-seed - name: spinlock-gcc-test - name: spinlock-pthread-adaptive-test - name: compile-wtperf - name: wtperf-test - name: ftruncate-test - name: long-test - name: static-wt-build-test - name: format-failure-configs-test - name: ubuntu1804-asan display_name: "! Ubuntu 18.04 ASAN" run_on: - ubuntu1804-test expansions: configure_env_vars: CC=/opt/mongodbtoolchain/v3/bin/clang CXX=/opt/mongodbtoolchain/v3/bin/clang++ PATH=/opt/mongodbtoolchain/v3/bin:$PATH CFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb" CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer -ggdb" posix_configure_flags: --enable-silent-rules --enable-strict --enable-diagnostic --disable-static --prefix=$(pwd)/LOCAL_INSTALL smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make test_env_vars: ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0" ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer TESTUTIL_BYPASS_ASAN=1 LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) tasks: - name: ".pull_request !.windows_only !.pull_request_compilers !.python" - examples-c-test - name: ubuntu1804-compilers display_name: "! Ubuntu 18.04 Compilers" run_on: - ubuntu1804-wt-build expansions: posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-strict --enable-lz4 --enable-snappy --enable-zlib --enable-zstd --enable-python python_binary: '/opt/mongodbtoolchain/v3/bin/python3' smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make tasks: - name: ".pull_request_compilers" - name: ubuntu1804-stress-tests display_name: Ubuntu 18.04 Stress tests run_on: - ubuntu1804-test expansions: smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make test_env_vars: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so LD_LIBRARY_PATH=$(pwd)/.libs PATH=/opt/mongodbtoolchain/v3/bin:$PATH top_srcdir=$(pwd)/.. top_builddir=$(pwd) posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-snappy --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL python_binary: '/opt/mongodbtoolchain/v3/bin/python3' tasks: - name: ".stress-test-1" - name: ".stress-test-2" - name: ".stress-test-3" - name: ".stress-test-4" - name: package display_name: "~ Package" batchtime: 1440 # 1 day run_on: - ubuntu1804-test tasks: - name: package - name: doc-update display_name: "~ Documentation update" batchtime: 1440 # 1 day run_on: - ubuntu1804-test tasks: - name: doc-update expansions: configure_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH - name: linux-no-ftruncate display_name: Linux no ftruncate batchtime: 1440 # 1 day run_on: - ubuntu1804-test expansions: test_env_vars: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make python_binary: '/opt/mongodbtoolchain/v3/bin/python3' tasks: - name: compile-linux-no-ftruncate - name: make-check-linux-no-ftruncate-test - name: unit-linux-no-ftruncate-test - name: format-linux-no-ftruncate - name: rhel80 display_name: RHEL 8.0 run_on: - rhel80-test expansions: test_env_vars: LD_PRELOAD=/usr/local/lib/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make python_binary: '/opt/mongodbtoolchain/v3/bin/python3' tasks: - name: compile - name: make-check-test - name: unit-test - name: fops - name: time-shift-sensitivity-test - name: compile-msan - name: make-check-msan-test - name: compile-ubsan - name: ubsan-test - name: linux-directio distros: rhel80-build - name: syscall-linux - name: checkpoint-filetypes-test - name: unit-test-long - name: spinlock-gcc-test - name: spinlock-pthread-adaptive-test - name: compile-wtperf - name: wtperf-test - name: ftruncate-test - name: long-test - name: configure-combinations - name: large-scale-tests display_name: "~ Large scale tests" batchtime: 1440 # 1 day run_on: - rhel80-build tasks: - name: million-collection-test - name: code-statistics display_name: "Code statistics" batchtime: 1440 # 1 day run_on: - ubuntu1804-test expansions: test_env_vars: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) tasks: - name: coverage-report - name: cyclomatic-complexity - name: compatibility-tests-less-frequent display_name: Compatibility tests (less frequent) batchtime: 10080 # 7 days run_on: - ubuntu1804-test tasks: - name: compatibility-test-for-older-releases - name: compatibility-test-for-wt-standalone-releases - name: compatibility-tests display_name: Compatibility tests run_on: - ubuntu1804-test tasks: - name: compatibility-test-for-newer-releases - name: import-compatibility-test - name: windows-64 display_name: "! Windows 64-bit" run_on: - windows-64-vs2017-test expansions: python_binary: 'python' scons_smp_command: -j $(echo "$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1) * 2" | bc) tasks: - name: compile - name: ".windows_only" - name: ".unit_test" - name: fops - name: macos-1014 display_name: OS X 10.14 run_on: - macos-1014 expansions: configure_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH ADD_CFLAGS="-ggdb -fPIC" posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL python_binary: '/opt/mongodbtoolchain/v3/bin/python3' smp_command: -j $(sysctl -n hw.logicalcpu) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future make test_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH DYLD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) tasks: - name: compile # macos-1012 is a more stable distro that we want to use for our PR testing task distros: macos-1012 - name: make-check-test - name: unit-test-with-compile - name: fops - name: little-endian display_name: "~ Little-endian (x86)" run_on: - ubuntu1804-test batchtime: 10080 # 7 days expansions: python_binary: '/opt/mongodbtoolchain/v3/bin/python3' smp_command: -j $(grep -c ^processor /proc/cpuinfo) test_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) tasks: - name: compile - name: generate-datafile-little-endian - name: verify-datafile-little-endian - name: verify-datafile-from-big-endian - name: big-endian display_name: "~ Big-endian (s390x/zSeries)" modules: - enterprise run_on: - ubuntu1804-zseries-build batchtime: 10080 # 7 days expansions: python_binary: '/opt/mongodbtoolchain/v3/bin/python3' smp_command: -j $(grep -c ^processor /proc/cpuinfo) test_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.lib top_srcdir=$(pwd)/.. top_builddir=$(pwd) tasks: - name: compile - name: generate-datafile-big-endian - name: verify-datafile-big-endian - name: verify-datafile-from-little-endian - name: ubuntu1804-ppc display_name: "~ Ubuntu 18.04 PPC" run_on: - ubuntu1804-power8-test expansions: format_test_setting: ulimit -c unlimited smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make test_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs top_srcdir=$(pwd)/.. top_builddir=$(pwd) posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-snappy --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL python_binary: '/opt/mongodbtoolchain/v3/bin/python3' tasks: - name: compile - name: unit-test - name: format-wtperf-test - name: ".stress-test-ppc-1" - name: ".stress-test-ppc-2" - name: ubuntu1804-zseries display_name: "~ Ubuntu 18.04 zSeries" run_on: - ubuntu1804-zseries-test expansions: smp_command: -j $(grep -c ^processor /proc/cpuinfo) make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make test_env_vars: PATH=/opt/mongodbtoolchain/v3/bin:$PATH LD_LIBRARY_PATH=$(pwd)/.libs:$(pwd)/lang/python top_srcdir=$(pwd)/.. top_builddir=$(pwd) posix_configure_flags: --enable-silent-rules --enable-diagnostic --enable-python --enable-zlib --enable-snappy --enable-strict --enable-static --prefix=$(pwd)/LOCAL_INSTALL python_binary: '/opt/mongodbtoolchain/v3/bin/python3' tasks: - name: compile - name: unit-test - name: ".stress-test-zseries-1" - name: ".stress-test-zseries-2" - name: ".stress-test-zseries-3"