From f212dfdbdd645a3ffbf9f0d64fe641f83565d29b Mon Sep 17 00:00:00 2001 From: "Jangra, Ravi" Date: Thu, 9 Jul 2026 15:14:19 +0530 Subject: [PATCH] Selective lazy evaluation with targetLength-adaptive gating Introduce ZSTD_SELECTIVE_LAZY compile-time option to reduce lazy evaluation overhead in the compression hot path for lazy and lazy2 strategies: - TargetLength-adaptive match length threshold: skip depth-1/depth-2 re-search when the initial match is strong (>= 12 bytes for low targetLength configurations, >= 16 bytes otherwise), or when the match is a repcode or has a short offset (<= 256) - Repcode early exit at depth-1 and depth-2: bypass expensive searchMax when a repcode match is already accepted, since regular matches cannot practically beat zero-cost offset encoding All changes are gated behind ZSTD_SELECTIVE_LAZY. Default build produces upstream-identical output and passes existing deterministic tests. Enable with: make ZSTD_SELECTIVE_LAZY=1 --- build/cmake/CMakeModules/ZstdOptions.cmake | 7 + build/meson/meson.build | 5 + build/meson/meson_options.txt | 2 + lib/Makefile | 7 + lib/compress/zstd_lazy.c | 20 + programs/Makefile | 4 + .../basic.sh.stdout.selective_lazy.exact | 880 ++++++++++++++++++ ...multithread.sh.stdout.selective_lazy.exact | 260 ++++++ tests/cli-tests/determinism/setup_once | 20 + tests/cli-tests/determinism/teardown_once | 13 + 10 files changed, 1218 insertions(+) create mode 100644 tests/cli-tests/determinism/basic.sh.stdout.selective_lazy.exact create mode 100644 tests/cli-tests/determinism/multithread.sh.stdout.selective_lazy.exact create mode 100755 tests/cli-tests/determinism/teardown_once diff --git a/build/cmake/CMakeModules/ZstdOptions.cmake b/build/cmake/CMakeModules/ZstdOptions.cmake index 3fca543a78e..e7faffe2de3 100644 --- a/build/cmake/CMakeModules/ZstdOptions.cmake +++ b/build/cmake/CMakeModules/ZstdOptions.cmake @@ -66,3 +66,10 @@ endif() # Set global definitions add_definitions(-DXXH_NAMESPACE=ZSTD_) + +# Selective lazy evaluation optimization +option(ZSTD_SELECTIVE_LAZY "Enable selective lazy evaluation optimization" OFF) +if(ZSTD_SELECTIVE_LAZY) + message(STATUS "ZSTD_SELECTIVE_LAZY enabled") + add_definitions(-DZSTD_SELECTIVE_LAZY) +endif() diff --git a/build/meson/meson.build b/build/meson/meson.build index a9768d43a53..1074923e161 100644 --- a/build/meson/meson.build +++ b/build/meson/meson.build @@ -108,6 +108,11 @@ use_lz4 = lz4_dep.found() add_project_arguments('-DXXH_NAMESPACE=ZSTD_', language: ['c']) +use_selective_lazy = get_option('selective_lazy') +if use_selective_lazy + add_project_arguments('-DZSTD_SELECTIVE_LAZY', language: ['c']) +endif + pzstd_warning_flags = [] if [compiler_gcc, compiler_clang].contains(cc_id) common_warning_flags = [ '-Wundef', '-Wshadow', '-Wcast-align', '-Wcast-qual' ] diff --git a/build/meson/meson_options.txt b/build/meson/meson_options.txt index 4705178279f..de195b64c5a 100644 --- a/build/meson/meson_options.txt +++ b/build/meson/meson_options.txt @@ -34,3 +34,5 @@ option('lzma', type: 'feature', value: 'auto', description: 'Enable lzma support') option('lz4', type: 'feature', value: 'auto', description: 'Enable lz4 support') +option('selective_lazy', type: 'boolean', value: false, + description: 'Enable selective lazy evaluation optimization') diff --git a/lib/Makefile b/lib/Makefile index 569bd6090c9..de526231d16 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -59,6 +59,13 @@ VERSION := $(ZSTD_VERSION) # -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded). +# Selective lazy optimization: reduces lazy evaluation overhead for +# structured binary data workloads with predictable match patterns. +# Enable with: make ZSTD_SELECTIVE_LAZY=1 +ifdef ZSTD_SELECTIVE_LAZY +CPPFLAGS += -DZSTD_SELECTIVE_LAZY +endif + CPPFLAGS_DYNLIB += -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded LDFLAGS_DYNLIB += -pthread CPPFLAGS_STATICLIB += # static library build defaults to single-threaded diff --git a/lib/compress/zstd_lazy.c b/lib/compress/zstd_lazy.c index 18b7b43948f..94ea66ff176 100644 --- a/lib/compress/zstd_lazy.c +++ b/lib/compress/zstd_lazy.c @@ -1669,7 +1669,16 @@ size_t ZSTD_compressBlock_lazy_generic( } /* let's try to find a better solution */ +#ifdef ZSTD_SELECTIVE_LAZY + /* Selective lazy: depth-adaptive threshold skips lazy evaluation + * for strong matches or nearby offsets. Repcode early exit avoids + * expensive searchMax when a repcode match is accepted. */ + if (depth>=1 + && matchLength < (ms->cParams.targetLength <= 8 ? 12 : 16) + && OFFBASE_IS_OFFSET(offBase) && OFFBASE_TO_OFFSET(offBase) > 256) +#else if (depth>=1) +#endif while (ip&1 | $(GREP) -c "gcc version "), 1) ALIGN_LOOP = -falign-loops=32 else diff --git a/tests/cli-tests/determinism/basic.sh.stdout.selective_lazy.exact b/tests/cli-tests/determinism/basic.sh.stdout.selective_lazy.exact new file mode 100644 index 00000000000..3483b6f73c0 --- /dev/null +++ b/tests/cli-tests/determinism/basic.sh.stdout.selective_lazy.exact @@ -0,0 +1,880 @@ +level 1, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 1, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 1, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 1, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 1, file files/g1000 +6bf2f4b179864fd8db4676037465feed +level 1, file files/g10000 +2ae44c4053b2b47724c8f612dfb60d24 +level 1, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 1, file files/g10000-P10 +2d0eeab6a966098583a1dfeafb5090c1 +level 1, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 1, file files/g10000-P25 +c64b5f512c44b6a647da81753791b9a7 +level 1, file files/g10000-P50 +3982325490d90c8307e734c1b25790df +level 1, file files/g10000-P75 +b7504f80fee16b5ba6a0f46571eb563a +level 1, file files/g10000-P90 +350892bec7f7ad6a7d6af01c5d8b07c7 +level 1, file files/g100000 +daa38a869130494c077290cf54f2d895 +level 1, file files/g1000000 +a1d548531221d408b95dc5d9c600b3f0 +level 1, file files/g20000 +1da5b56511e8693867c0cdd962c521aa +level 1, file files/g200000 +41fb3b3d46d4221f2f0b072c65dd6e0a +level 1, file files/g30000 +788bc5abca5e33d79bb79a4eca98b9cd +level 1, file files/g50000 +0bf9fafd84a2d56a788a9159f1f23f26 +level 1, file files/g500000 +73401d6df0657e091de20468f32579a9 +level 2, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 2, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 2, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 2, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 2, file files/g1000 +a14988fb331bc6f8b33d9eba3a0416dc +level 2, file files/g10000 +a8656ebab20efa8a3fb281327aab5d58 +level 2, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 2, file files/g10000-P10 +9db9877242632964c232ebd4485dba07 +level 2, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 2, file files/g10000-P25 +d7a7223240a607fe28a2e8fd641a969d +level 2, file files/g10000-P50 +86478908f9caa5ca4029454005063078 +level 2, file files/g10000-P75 +14f5dcdb347e87790d49c1eb99ac5069 +level 2, file files/g10000-P90 +05bdb42a2eeb5788d6288dc241cde12c +level 2, file files/g100000 +12c6a4c50fad3e479e0f0ffe1d4df324 +level 2, file files/g1000000 +4f9cdc0de37b22d657fd9d3c61ec5b44 +level 2, file files/g20000 +1e70c3fe429c1af41e9cb8a536fb6df1 +level 2, file files/g200000 +bb1cc37142783345db29c3fd5838ce4e +level 2, file files/g30000 +52528017fe0eec85b6c3244e6fceb4ed +level 2, file files/g50000 +a38bdd671b6d3bd76b479dfc01d1c7fb +level 2, file files/g500000 +cd2090a38bbd677b385238355c996c01 +level 3, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 3, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 3, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 3, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 3, file files/g1000 +3ec47dcb2d606b9fdef3f19b1304f8fe +level 3, file files/g10000 +69a9d518b84fe2a66b57dfb4ab8905ae +level 3, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 3, file files/g10000-P10 +ac9866ac355c4ed8939deb9fbeec1aef +level 3, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 3, file files/g10000-P25 +5e1fe7a3831f6632bc8c9873ab8b633d +level 3, file files/g10000-P50 +76295f181396a98565eb9cc69b96dc75 +level 3, file files/g10000-P75 +1f751dc70508e81fef197311e8583e99 +level 3, file files/g10000-P90 +47c7b061c299dc253c6aaaf489e936cb +level 3, file files/g100000 +4b30b2be3394f03f1cf1f37a08dcec12 +level 3, file files/g1000000 +4301dea72cc4dd6162e46caa59788a09 +level 3, file files/g20000 +30456361833d27c0962c2faaa254e615 +level 3, file files/g200000 +0f01c07c57d60298dd54c6b6b197c3d3 +level 3, file files/g30000 +0b3c506a1b1b6ccbb54a852c370f5cdc +level 3, file files/g50000 +81368c0b96bf1a2f318940b836b46074 +level 3, file files/g500000 +0c1ef9c6d3d75bfa0dd5d893f65da47c +level 4, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 4, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 4, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 4, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 4, file files/g1000 +6a1214c19ab13d15934244a4655fa327 +level 4, file files/g10000 +09bbd556d9ee9f74f36b36bfa6b17325 +level 4, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 4, file files/g10000-P10 +1adb177b7a441c3585ffd781654758ba +level 4, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 4, file files/g10000-P25 +3a62170477d7f17d64dc49b971388ff7 +level 4, file files/g10000-P50 +de93403eafd68786410fa52a95752514 +level 4, file files/g10000-P75 +f5466b3cfc3ba1e5afecb8d8bb91250f +level 4, file files/g10000-P90 +132869db4091a9b9bdbc5236435a1d98 +level 4, file files/g100000 +dd92f22c593f40e0ccd6b31ad09d9d18 +level 4, file files/g1000000 +cfe7c063909c635f22438f83eb824082 +level 4, file files/g20000 +f8be159b057c6ee827f36cdd2ee5c43f +level 4, file files/g200000 +71362cc7c28dcc730b591e3002fe888c +level 4, file files/g30000 +f0b899995c6ba86066bd7f407fc708ef +level 4, file files/g50000 +2f293e665d5161e68d8e1f86ac6841be +level 4, file files/g500000 +42c5c45c595af60d5cf28f4cdd8ab392 +level 5, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 5, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 5, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 5, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 5, file files/g1000 +c936d4e4e394a4f624547e69a052301d +level 5, file files/g10000 +bfb00384de4e91979cfc35b4e1e557a6 +level 5, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 5, file files/g10000-P10 +295cee6f44512ff1cb8e4fcb37e6c13e +level 5, file files/g10000-P100 +15fede9faa3d7c484dead66071fb8c5d +level 5, file files/g10000-P25 +1ec6c58f0d0494e68151d2ab6e1f8085 +level 5, file files/g10000-P50 +aa7190e5d2a3a0f257fef96bfcd436b9 +level 5, file files/g10000-P75 +78f2262c7519a0fdf8d612e900044ae4 +level 5, file files/g10000-P90 +af15438e47f09534ceb30275250b54bf +level 5, file files/g100000 +338f5e822a469774462f144d7ae371a0 +level 5, file files/g1000000 +46b8608a1f833477387e2fc844a817d5 +level 5, file files/g20000 +b7a468d363a7797d3d7a48577cd20213 +level 5, file files/g200000 +5ed09b3fd58ba540128319c02f9259cb +level 5, file files/g30000 +fd4c0e5acb85271c101fd8ae1f411232 +level 5, file files/g50000 +2a14c76d629615bd50a370e587d13eb8 +level 5, file files/g500000 +cb1122167d4a747f3f8e0dd18bce6fa3 +level 6, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 6, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 6, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 6, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 6, file files/g1000 +c936d4e4e394a4f624547e69a052301d +level 6, file files/g10000 +a2e951c906ad8e5d21ae92e3b1d2234d +level 6, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 6, file files/g10000-P10 +e276b7739365565342804f646b815f3b +level 6, file files/g10000-P100 +15fede9faa3d7c484dead66071fb8c5d +level 6, file files/g10000-P25 +1b91a7d4e6e82309bb6df5dea14363c3 +level 6, file files/g10000-P50 +2e97bb3f18354ed8345353a9ebb0e78e +level 6, file files/g10000-P75 +1f087f6192d006709dd7addccc1ee6ed +level 6, file files/g10000-P90 +73266bf51adce48d2fe0832ff4917ef9 +level 6, file files/g100000 +d6eb8c7d73555224814ffd1469d50def +level 6, file files/g1000000 +6163413f2e87e20bd2bee80f862ca5b7 +level 6, file files/g20000 +38f5d4501545a38d07b352e1be4d7306 +level 6, file files/g200000 +7574a9892c661736b9da95b0db3b6cc0 +level 6, file files/g30000 +4fbcb1a6cc27ffb0a9e9488b868207c7 +level 6, file files/g50000 +ce156c488663443a0a4a43ceae8d307d +level 6, file files/g500000 +7975dd6ee303bdf65a53ee0a98e9bbcb +level 7, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 7, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 7, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 7, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 7, file files/g1000 +c936d4e4e394a4f624547e69a052301d +level 7, file files/g10000 +63cf34f755e23eabfb214dfd87d34c85 +level 7, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 7, file files/g10000-P10 +32e7f626a7b315b1ee8a548da7a6611f +level 7, file files/g10000-P100 +15fede9faa3d7c484dead66071fb8c5d +level 7, file files/g10000-P25 +c0a9bc6c746587c554761b8ba7410a09 +level 7, file files/g10000-P50 +b3a2130316b64b97e5cacfe6b6ebdd28 +level 7, file files/g10000-P75 +78e5eda414fac7408a21501caf8a5f95 +level 7, file files/g10000-P90 +62526857508e6808a0d703d05c3f9ae4 +level 7, file files/g100000 +dd729d4afa0d85fcd5325806a115cfac +level 7, file files/g1000000 +45a44f60d23023c5a4b964966dad1c10 +level 7, file files/g20000 +6b9deb71254d04556baf95bdb7ad2925 +level 7, file files/g200000 +f57a51e3d9f1c7e95d34933eb696a8f6 +level 7, file files/g30000 +ba35a0d86f89d8730a3dde12d7973041 +level 7, file files/g50000 +a60b5f9ba139a98ba6969c443373e6cd +level 7, file files/g500000 +bfb0345078043d40cfe3b84c7e664b93 +level 8, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 8, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 8, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 8, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 8, file files/g1000 +c936d4e4e394a4f624547e69a052301d +level 8, file files/g10000 +63cf34f755e23eabfb214dfd87d34c85 +level 8, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 8, file files/g10000-P10 +32e7f626a7b315b1ee8a548da7a6611f +level 8, file files/g10000-P100 +15fede9faa3d7c484dead66071fb8c5d +level 8, file files/g10000-P25 +7394720f09be1d934a6a13d77cbbdd7e +level 8, file files/g10000-P50 +e7ad1d9a1e6d401a8df9bf3dee280d09 +level 8, file files/g10000-P75 +f9241f44376b2957e5a7cbee72d15d53 +level 8, file files/g10000-P90 +6165b251776a650b5f8a2c2f6c8ecae9 +level 8, file files/g100000 +89dbec25580c6b8c869681ecb84b39a1 +level 8, file files/g1000000 +f95a4490b0938c266003d0857e88a2c4 +level 8, file files/g20000 +f1e3937de485d8ddeb92d4b8eb30a23a +level 8, file files/g200000 +70e192e9c7a8f4d58b5a9602c35d51fe +level 8, file files/g30000 +e0294ea37bb087774412db5a08b76c06 +level 8, file files/g50000 +f8aec38bf3a8faaea15a71f62f312dae +level 8, file files/g500000 +eb7dabb64ec2187b9148a9cc0faf8db7 +level 9, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 9, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 9, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 9, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 9, file files/g1000 +8812ec9d70469a54d120e29fa4996e0d +level 9, file files/g10000 +b192cc4136aa7b5131e08ef3f99d39e3 +level 9, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 9, file files/g10000-P10 +705d82dca86fb9fbf44f6d5e9c0963da +level 9, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 9, file files/g10000-P25 +add63cde782624f92e4771f619a7928a +level 9, file files/g10000-P50 +6e0e0b325dc7c76b94925900c0f550c5 +level 9, file files/g10000-P75 +2a6bff52bcf106875ed03a66ab1e547b +level 9, file files/g10000-P90 +79f63ec6f633207b4ecbad31138ae93c +level 9, file files/g100000 +caa4024a8e53dc29e9fc8fcde8db2a8b +level 9, file files/g1000000 +ffcc55572cfd50e1c90bfa84b96ebd11 +level 9, file files/g20000 +979c4780b45d429897dc8a8ed3937a77 +level 9, file files/g200000 +14c64fe8a82e3958dbb8c45fb55c309f +level 9, file files/g30000 +a81d366637ebb9146c429bcb82a2a126 +level 9, file files/g50000 +057173ce95ddc686e6b0ba22ad120c25 +level 9, file files/g500000 +eb7dabb64ec2187b9148a9cc0faf8db7 +level 10, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 10, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 10, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 10, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 10, file files/g1000 +8812ec9d70469a54d120e29fa4996e0d +level 10, file files/g10000 +b192cc4136aa7b5131e08ef3f99d39e3 +level 10, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 10, file files/g10000-P10 +705d82dca86fb9fbf44f6d5e9c0963da +level 10, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 10, file files/g10000-P25 +add63cde782624f92e4771f619a7928a +level 10, file files/g10000-P50 +03a7d2cd70868c07f128931eadaa0068 +level 10, file files/g10000-P75 +ffbdd12498f3ea3d289a2c669964a84b +level 10, file files/g10000-P90 +60c1d42ef239ecee35babc287f947b1d +level 10, file files/g100000 +2793dc6ab712d5b215a0332e40a14cc5 +level 10, file files/g1000000 +694e5f7f117613d63c79b574f43e294e +level 10, file files/g20000 +5c758dec1a7a6ad7a2c14f2efc52e4c5 +level 10, file files/g200000 +41e335c20c2923467ab96b60c1b3a989 +level 10, file files/g30000 +dea23190df6e15ca6829cc95eb918cf3 +level 10, file files/g50000 +b9c677a5255e48200c9467ca6c895467 +level 10, file files/g500000 +5159ed5e9cd93ea5c44ed224c3edb14f +level 11, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 11, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 11, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 11, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 11, file files/g1000 +4aa08662527d6d7f996705929e0dd8e0 +level 11, file files/g10000 +330f75029558d7cb6fa2756d85a998bd +level 11, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 11, file files/g10000-P10 +990879c5b3d1c99aa5ef39f6049cebc9 +level 11, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 11, file files/g10000-P25 +26a10f96c2008608a33a731ff39cd9c8 +level 11, file files/g10000-P50 +129c6082daea0da5f52358c71b252750 +level 11, file files/g10000-P75 +7ff21b2c10548b9fc8ec5b61f86b9db0 +level 11, file files/g10000-P90 +0def9775620838420b295c07fd50a196 +level 11, file files/g100000 +775434686a47b32aa714e1f2dfdb9d88 +level 11, file files/g1000000 +9581a07b635e94b3c34e8a3ab1c7ef16 +level 11, file files/g20000 +35d49b5676d2fff642468e0283108c3e +level 11, file files/g200000 +ae31a68ac620954d3999d3577158f17a +level 11, file files/g30000 +e22ad00cdff3f179319fa0d41d678b67 +level 11, file files/g50000 +da259399bb6e856a3626e8f6c5bc01e3 +level 11, file files/g500000 +a44900457dd317e01f6635b402b8b15c +level 12, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 12, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 12, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 12, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 12, file files/g1000 +6cb98f0115baf96a720638cf92b7803b +level 12, file files/g10000 +b73485abce0df9802dcfeee652c45a8d +level 12, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 12, file files/g10000-P10 +d00ac554fefc8a0f40420f908ff6fe69 +level 12, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 12, file files/g10000-P25 +9e20110ea128e4201c9a09eb48ad16c8 +level 12, file files/g10000-P50 +07287871c8b4ec3b5a925563a97451ce +level 12, file files/g10000-P75 +2a47bb2eb7fb84a157f4525da9f78a77 +level 12, file files/g10000-P90 +d9c87f3f0faf212ec2d60cb611dac8a9 +level 12, file files/g100000 +d04daec660cf6d3538c5971bc3171433 +level 12, file files/g1000000 +9581a07b635e94b3c34e8a3ab1c7ef16 +level 12, file files/g20000 +c08d59db560c18358ee405563774dd7c +level 12, file files/g200000 +94b3ac1db9f3375cc47d0879dd9492a8 +level 12, file files/g30000 +2498c672ba591c5e7e843ba8db5ab768 +level 12, file files/g50000 +c3f8d1795970b1b7847bfe082930bd03 +level 12, file files/g500000 +a44900457dd317e01f6635b402b8b15c +level 13, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 13, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 13, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 13, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 13, file files/g1000 +773b6b59d472db0932b5ad1ad75eac64 +level 13, file files/g10000 +dfd1e66b36c80b191c338d0b14813920 +level 13, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 13, file files/g10000-P10 +40b5f47e143e235198f6408a099208e8 +level 13, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 13, file files/g10000-P25 +deaa99c2458ca8ea661b358ef837ef58 +level 13, file files/g10000-P50 +dd575cdc1ac009a7f2407013063d02e3 +level 13, file files/g10000-P75 +0d411eb9beee65c6f5dd7764b639097b +level 13, file files/g10000-P90 +61db327f8fdd9a735e68259f05f71f0d +level 13, file files/g100000 +dece3af6a1b7ef4ab80cad69119a3b61 +level 13, file files/g1000000 +d50c9b3b3d83c3c6fbb749f0db9e7130 +level 13, file files/g20000 +7ce4e5c10392cbae28ed79b0707f627f +level 13, file files/g200000 +ab3d3f2a0fb5d4e54f8e799213d7e995 +level 13, file files/g30000 +61f3ce2b87a584169e92791fa54c7361 +level 13, file files/g50000 +aba34c68e1d812fab8ce9863169e050b +level 13, file files/g500000 +ecbedeb4e477952f5502fb08183523de +level 14, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 14, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 14, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 14, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 14, file files/g1000 +773b6b59d472db0932b5ad1ad75eac64 +level 14, file files/g10000 +dfd1e66b36c80b191c338d0b14813920 +level 14, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 14, file files/g10000-P10 +40b5f47e143e235198f6408a099208e8 +level 14, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 14, file files/g10000-P25 +deaa99c2458ca8ea661b358ef837ef58 +level 14, file files/g10000-P50 +246b1782db44f4226d32c8718e39ac8c +level 14, file files/g10000-P75 +023a4c9c041fbcd4f584d5e65f9b4444 +level 14, file files/g10000-P90 +d57d3ce213e81d7ce80930115afc9f71 +level 14, file files/g100000 +29c1d79c3dc1dc51ec4ee3fd19fdbd10 +level 14, file files/g1000000 +b13f93074f6c4bead962737001246ad1 +level 14, file files/g20000 +1055a0a808598d1eedf0442fceff44e0 +level 14, file files/g200000 +87df6235943fd09ba3f6a1f24cbc3a3a +level 14, file files/g30000 +74c32e0cd8bcd62bd4e1cf599c193abf +level 14, file files/g50000 +10d3bbb5e9822fa5c31fc2e79aeae7e9 +level 14, file files/g500000 +27da7b5c0968e66db4aba0c86987e8ff +level 15, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 15, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 15, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 15, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 15, file files/g1000 +773b6b59d472db0932b5ad1ad75eac64 +level 15, file files/g10000 +dfd1e66b36c80b191c338d0b14813920 +level 15, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 15, file files/g10000-P10 +40b5f47e143e235198f6408a099208e8 +level 15, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 15, file files/g10000-P25 +deaa99c2458ca8ea661b358ef837ef58 +level 15, file files/g10000-P50 +91cc04148eef18ae4222038ad05f0586 +level 15, file files/g10000-P75 +aa5e9e619fe89644098c9ad17a8b9ad4 +level 15, file files/g10000-P90 +28d6d71a33f507d1e7acd56d586e3981 +level 15, file files/g100000 +29c1d79c3dc1dc51ec4ee3fd19fdbd10 +level 15, file files/g1000000 +81559708ca7ac4d71265e8d12d412ba3 +level 15, file files/g20000 +1055a0a808598d1eedf0442fceff44e0 +level 15, file files/g200000 +0096718cf88b77da67fc2211bf85e3ca +level 15, file files/g30000 +74c32e0cd8bcd62bd4e1cf599c193abf +level 15, file files/g50000 +10d3bbb5e9822fa5c31fc2e79aeae7e9 +level 15, file files/g500000 +cbb2f312848ae9c9c371462de79908b7 +level 16, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 16, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 16, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 16, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 16, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 16, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 16, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 16, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 16, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 16, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 16, file files/g10000-P50 +9af82247b7fe18900592ae4fd5f1890a +level 16, file files/g10000-P75 +d44f2305f023fbff3d1a872ab740958a +level 16, file files/g10000-P90 +517f98319c717526b5e211079f073fbc +level 16, file files/g100000 +95ec61667f371a3621b34a042f1f4a0a +level 16, file files/g1000000 +b71641629b58754f1961ac394f177d7c +level 16, file files/g20000 +7bd4e03d703ead21e15fddd4423ef79e +level 16, file files/g200000 +fd1c701e9872f304a71f0e7f7aa9f918 +level 16, file files/g30000 +bc2211b250b5f4ed0a7bd97d447132e0 +level 16, file files/g50000 +a6d98ebd2ed96688482c7d1181dded42 +level 16, file files/g500000 +44e339bb9e57842b77476f6d75ff3fbd +level 17, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 17, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 17, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 17, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 17, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 17, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 17, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 17, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 17, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 17, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 17, file files/g10000-P50 +607968cd37d41631312307f6c8a37ab4 +level 17, file files/g10000-P75 +818c2b0124e0dad26f9d95d753b11140 +level 17, file files/g10000-P90 +2d01bb79185ec88e5d7e684d3983eff8 +level 17, file files/g100000 +95ec61667f371a3621b34a042f1f4a0a +level 17, file files/g1000000 +cbd03f012664a02441271c50ba1330bf +level 17, file files/g20000 +7bd4e03d703ead21e15fddd4423ef79e +level 17, file files/g200000 +fd1c701e9872f304a71f0e7f7aa9f918 +level 17, file files/g30000 +bc2211b250b5f4ed0a7bd97d447132e0 +level 17, file files/g50000 +a6d98ebd2ed96688482c7d1181dded42 +level 17, file files/g500000 +01223076923dc7e3e06eeb3d71c467d2 +level 18, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 18, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 18, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 18, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 18, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 18, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 18, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 18, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 18, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 18, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 18, file files/g10000-P50 +c61ad9309da86f7229498e46daacd6d9 +level 18, file files/g10000-P75 +8bf1c42a6a1f46ff8549e87f7b6daa54 +level 18, file files/g10000-P90 +29077b7a282975006c20701bca0d439d +level 18, file files/g100000 +95ec61667f371a3621b34a042f1f4a0a +level 18, file files/g1000000 +1e598049810de86924756bcda8941085 +level 18, file files/g20000 +7bd4e03d703ead21e15fddd4423ef79e +level 18, file files/g200000 +ab03b5ab84b6ebe79fa325118a895c6b +level 18, file files/g30000 +bc2211b250b5f4ed0a7bd97d447132e0 +level 18, file files/g50000 +a6d98ebd2ed96688482c7d1181dded42 +level 18, file files/g500000 +1b5374095c0bdc676655fe4db94286d1 +level 19, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 19, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 19, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 19, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 19, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 19, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 19, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 19, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 19, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 19, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 19, file files/g10000-P50 +c61ad9309da86f7229498e46daacd6d9 +level 19, file files/g10000-P75 +d3171f297dfd08e444d481b30b1bbefa +level 19, file files/g10000-P90 +87c4a59ec6e15f6da86b26969044a8a4 +level 19, file files/g100000 +7ae11dc1919d94e80979d41d12a0b578 +level 19, file files/g1000000 +d4b9ee8879d7f30bed3ec9e70520ca67 +level 19, file files/g20000 +70028792166e24282f5497592b632192 +level 19, file files/g200000 +ab03b5ab84b6ebe79fa325118a895c6b +level 19, file files/g30000 +d698feea5119e141a08656439c4c1508 +level 19, file files/g50000 +b81384753f0db76004ac97681f6ef757 +level 19, file files/g500000 +0a25ba39483255a2c16899ab80a3ed8f +level 1, long=18, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 19, long=18, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 1, long=18, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 19, long=18, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 1, long=18, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 19, long=18, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 1, long=18, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 19, long=18, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 1, long=18, file files/g1000 +6bf2f4b179864fd8db4676037465feed +level 19, long=18, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 1, long=18, file files/g10000 +2ae44c4053b2b47724c8f612dfb60d24 +level 19, long=18, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 1, long=18, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 19, long=18, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 1, long=18, file files/g10000-P10 +6a8f6e75ab538eb08a422febc8b68006 +level 19, long=18, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 1, long=18, file files/g10000-P100 +5db6fbe04a2de772ad4e49f5357d0543 +level 19, long=18, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 1, long=18, file files/g10000-P25 +6fd603b31365845346faab9cd64fd647 +level 19, long=18, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 1, long=18, file files/g10000-P50 +d1de679e9a8c962ed1cc668a96bf930a +level 19, long=18, file files/g10000-P50 +c61ad9309da86f7229498e46daacd6d9 +level 1, long=18, file files/g10000-P75 +dcf9822423e2ad42a569985707cd5ab4 +level 19, long=18, file files/g10000-P75 +f0ea19930e3866ff7a1932931346e0ac +level 1, long=18, file files/g10000-P90 +87d249fd8c1ad0064d067a1e5ad97647 +level 19, long=18, file files/g10000-P90 +582e2c4c5a06e452d8dae22e7210c070 +level 1, long=18, file files/g100000 +daa38a869130494c077290cf54f2d895 +level 19, long=18, file files/g100000 +7ae11dc1919d94e80979d41d12a0b578 +level 1, long=18, file files/g1000000 +81b9ffd138f3b25254a7078b06950e5f +level 19, long=18, file files/g1000000 +db54f06bf3abdbfd57892ab3aad18233 +level 1, long=18, file files/g20000 +1da5b56511e8693867c0cdd962c521aa +level 19, long=18, file files/g20000 +70028792166e24282f5497592b632192 +level 1, long=18, file files/g200000 +17eb9ff8d912da9c445def85cb748e54 +level 19, long=18, file files/g200000 +ab03b5ab84b6ebe79fa325118a895c6b +level 1, long=18, file files/g30000 +788bc5abca5e33d79bb79a4eca98b9cd +level 19, long=18, file files/g30000 +d698feea5119e141a08656439c4c1508 +level 1, long=18, file files/g50000 +0bf9fafd84a2d56a788a9159f1f23f26 +level 19, long=18, file files/g50000 +b81384753f0db76004ac97681f6ef757 +level 1, long=18, file files/g500000 +f035223dc02f581daf5dd79773c4dc2b +level 19, long=18, file files/g500000 +97093f718faf7b9094e27ea822fd1a29 +level -1, file files/g0 +5d80401e01d33084c65e94f93351e94c +level -1, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level -1, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level -1, file files/g100 +eb805e7fdb95bc42231b20d0e12e2a53 +level -1, file files/g1000 +ac7c900e31b9e4fe37b7846a898c7d48 +level -1, file files/g10000 +55e1e6ed7fcf5581a17f72f3a32e0834 +level -1, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level -1, file files/g10000-P10 +0bf549bdfc20b644c37901918de0d0eb +level -1, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level -1, file files/g10000-P25 +b65475ee206e480b3adc9fcc7b79c54b +level -1, file files/g10000-P50 +ae4bf85c8343052ecb1d666bd9766fbc +level -1, file files/g10000-P75 +b0674333f519e71708f226f935ae63d5 +level -1, file files/g10000-P90 +2daa80aa34a8259fed7e04ae41397d6c +level -1, file files/g100000 +586e12a3aa574f35aedf0afadee3040c +level -1, file files/g1000000 +1cc8eb9ee1e4c20373fe3c1b0aa1a982 +level -1, file files/g20000 +b220e6387b1f5036c203f8be5f1a571c +level -1, file files/g200000 +fc42db710c19a4f4a27f004fb4678d9c +level -1, file files/g30000 +5350a7346d815f4ad42216b91ba8749a +level -1, file files/g50000 +4f00a5a94e8f98c6972053057f6ac971 +level -1, file files/g500000 +4abb2e46c936c273955778c00f3eb492 diff --git a/tests/cli-tests/determinism/multithread.sh.stdout.selective_lazy.exact b/tests/cli-tests/determinism/multithread.sh.stdout.selective_lazy.exact new file mode 100644 index 00000000000..1f286511f8c --- /dev/null +++ b/tests/cli-tests/determinism/multithread.sh.stdout.selective_lazy.exact @@ -0,0 +1,260 @@ +level 1, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 1, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 1, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 1, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 1, file files/g1000 +6bf2f4b179864fd8db4676037465feed +level 1, file files/g10000 +2ae44c4053b2b47724c8f612dfb60d24 +level 1, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 1, file files/g10000-P10 +2d0eeab6a966098583a1dfeafb5090c1 +level 1, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 1, file files/g10000-P25 +c64b5f512c44b6a647da81753791b9a7 +level 1, file files/g10000-P50 +3982325490d90c8307e734c1b25790df +level 1, file files/g10000-P75 +b7504f80fee16b5ba6a0f46571eb563a +level 1, file files/g10000-P90 +350892bec7f7ad6a7d6af01c5d8b07c7 +level 1, file files/g100000 +daa38a869130494c077290cf54f2d895 +level 1, file files/g1000000 +a1d548531221d408b95dc5d9c600b3f0 +level 1, file files/g20000 +1da5b56511e8693867c0cdd962c521aa +level 1, file files/g200000 +41fb3b3d46d4221f2f0b072c65dd6e0a +level 1, file files/g30000 +788bc5abca5e33d79bb79a4eca98b9cd +level 1, file files/g50000 +0bf9fafd84a2d56a788a9159f1f23f26 +level 1, file files/g500000 +73401d6df0657e091de20468f32579a9 +level 3, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 3, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 3, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 3, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 3, file files/g1000 +3ec47dcb2d606b9fdef3f19b1304f8fe +level 3, file files/g10000 +69a9d518b84fe2a66b57dfb4ab8905ae +level 3, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 3, file files/g10000-P10 +ac9866ac355c4ed8939deb9fbeec1aef +level 3, file files/g10000-P100 +93436482b4da30ce2300d356448c8990 +level 3, file files/g10000-P25 +5e1fe7a3831f6632bc8c9873ab8b633d +level 3, file files/g10000-P50 +76295f181396a98565eb9cc69b96dc75 +level 3, file files/g10000-P75 +1f751dc70508e81fef197311e8583e99 +level 3, file files/g10000-P90 +47c7b061c299dc253c6aaaf489e936cb +level 3, file files/g100000 +4b30b2be3394f03f1cf1f37a08dcec12 +level 3, file files/g1000000 +4301dea72cc4dd6162e46caa59788a09 +level 3, file files/g20000 +30456361833d27c0962c2faaa254e615 +level 3, file files/g200000 +0f01c07c57d60298dd54c6b6b197c3d3 +level 3, file files/g30000 +0b3c506a1b1b6ccbb54a852c370f5cdc +level 3, file files/g50000 +81368c0b96bf1a2f318940b836b46074 +level 3, file files/g500000 +0c1ef9c6d3d75bfa0dd5d893f65da47c +level 7, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 7, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 7, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 7, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 7, file files/g1000 +c936d4e4e394a4f624547e69a052301d +level 7, file files/g10000 +63cf34f755e23eabfb214dfd87d34c85 +level 7, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 7, file files/g10000-P10 +32e7f626a7b315b1ee8a548da7a6611f +level 7, file files/g10000-P100 +15fede9faa3d7c484dead66071fb8c5d +level 7, file files/g10000-P25 +c0a9bc6c746587c554761b8ba7410a09 +level 7, file files/g10000-P50 +b3a2130316b64b97e5cacfe6b6ebdd28 +level 7, file files/g10000-P75 +78e5eda414fac7408a21501caf8a5f95 +level 7, file files/g10000-P90 +62526857508e6808a0d703d05c3f9ae4 +level 7, file files/g100000 +dd729d4afa0d85fcd5325806a115cfac +level 7, file files/g1000000 +45a44f60d23023c5a4b964966dad1c10 +level 7, file files/g20000 +6b9deb71254d04556baf95bdb7ad2925 +level 7, file files/g200000 +f57a51e3d9f1c7e95d34933eb696a8f6 +level 7, file files/g30000 +ba35a0d86f89d8730a3dde12d7973041 +level 7, file files/g50000 +a60b5f9ba139a98ba6969c443373e6cd +level 7, file files/g500000 +bfb0345078043d40cfe3b84c7e664b93 +level 19, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 19, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 19, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 19, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 19, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 19, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 19, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 19, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 19, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 19, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 19, file files/g10000-P50 +c61ad9309da86f7229498e46daacd6d9 +level 19, file files/g10000-P75 +d3171f297dfd08e444d481b30b1bbefa +level 19, file files/g10000-P90 +87c4a59ec6e15f6da86b26969044a8a4 +level 19, file files/g100000 +7ae11dc1919d94e80979d41d12a0b578 +level 19, file files/g1000000 +d4b9ee8879d7f30bed3ec9e70520ca67 +level 19, file files/g20000 +70028792166e24282f5497592b632192 +level 19, file files/g200000 +ab03b5ab84b6ebe79fa325118a895c6b +level 19, file files/g30000 +d698feea5119e141a08656439c4c1508 +level 19, file files/g50000 +b81384753f0db76004ac97681f6ef757 +level 19, file files/g500000 +0a25ba39483255a2c16899ab80a3ed8f +level 1, long=18, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 19, long=18, file files/g0 +5d80401e01d33084c65e94f93351e94c +level 1, long=18, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 19, long=18, file files/g1 +8436b07a7eb916ac9c48af847b7e612f +level 1, long=18, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 19, long=18, file files/g10 +6cf177a3e6494ac3c76c857df6a9b31d +level 1, long=18, file files/g100 +c94d1ef6bbec8b4899486b06207ee829 +level 19, long=18, file files/g100 +e6e88e42b891fbc82c87a60928d88e97 +level 1, long=18, file files/g1000 +6bf2f4b179864fd8db4676037465feed +level 19, long=18, file files/g1000 +f3eeeae11e293292fe1810d8745d0ae1 +level 1, long=18, file files/g10000 +2ae44c4053b2b47724c8f612dfb60d24 +level 19, long=18, file files/g10000 +23c5d58cca20ab65ff8a5d780f09e075 +level 1, long=18, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 19, long=18, file files/g10000-P0 +6c2641d3b83775c50b766793b39967c4 +level 1, long=18, file files/g10000-P10 +6a8f6e75ab538eb08a422febc8b68006 +level 19, long=18, file files/g10000-P10 +cced9c0f5709262da932fc8540bb72f4 +level 1, long=18, file files/g10000-P100 +5db6fbe04a2de772ad4e49f5357d0543 +level 19, long=18, file files/g10000-P100 +049015191cf579b24653c8730fcc10f5 +level 1, long=18, file files/g10000-P25 +6fd603b31365845346faab9cd64fd647 +level 19, long=18, file files/g10000-P25 +6676c9b599408491f7abc00947782054 +level 1, long=18, file files/g10000-P50 +d1de679e9a8c962ed1cc668a96bf930a +level 19, long=18, file files/g10000-P50 +c61ad9309da86f7229498e46daacd6d9 +level 1, long=18, file files/g10000-P75 +dcf9822423e2ad42a569985707cd5ab4 +level 19, long=18, file files/g10000-P75 +f0ea19930e3866ff7a1932931346e0ac +level 1, long=18, file files/g10000-P90 +87d249fd8c1ad0064d067a1e5ad97647 +level 19, long=18, file files/g10000-P90 +582e2c4c5a06e452d8dae22e7210c070 +level 1, long=18, file files/g100000 +daa38a869130494c077290cf54f2d895 +level 19, long=18, file files/g100000 +7ae11dc1919d94e80979d41d12a0b578 +level 1, long=18, file files/g1000000 +2c410773bb02367d20d20569393faf1e +level 19, long=18, file files/g1000000 +e3f5ef0204aedbac03e80d4300b3afc7 +level 1, long=18, file files/g20000 +1da5b56511e8693867c0cdd962c521aa +level 19, long=18, file files/g20000 +70028792166e24282f5497592b632192 +level 1, long=18, file files/g200000 +17eb9ff8d912da9c445def85cb748e54 +level 19, long=18, file files/g200000 +ab03b5ab84b6ebe79fa325118a895c6b +level 1, long=18, file files/g30000 +788bc5abca5e33d79bb79a4eca98b9cd +level 19, long=18, file files/g30000 +d698feea5119e141a08656439c4c1508 +level 1, long=18, file files/g50000 +0bf9fafd84a2d56a788a9159f1f23f26 +level 19, long=18, file files/g50000 +b81384753f0db76004ac97681f6ef757 +level 1, long=18, file files/g500000 +f035223dc02f581daf5dd79773c4dc2b +level 19, long=18, file files/g500000 +97093f718faf7b9094e27ea822fd1a29 +Vary number of threads on files/g0 +Vary number of threads on files/g1 +Vary number of threads on files/g10 +Vary number of threads on files/g100 +Vary number of threads on files/g1000 +Vary number of threads on files/g10000 +Vary number of threads on files/g10000-P0 +Vary number of threads on files/g10000-P10 +Vary number of threads on files/g10000-P100 +Vary number of threads on files/g10000-P25 +Vary number of threads on files/g10000-P50 +Vary number of threads on files/g10000-P75 +Vary number of threads on files/g10000-P90 +Vary number of threads on files/g100000 +Vary number of threads on files/g1000000 +Vary number of threads on files/g20000 +Vary number of threads on files/g200000 +Vary number of threads on files/g30000 +Vary number of threads on files/g50000 +Vary number of threads on files/g500000 diff --git a/tests/cli-tests/determinism/setup_once b/tests/cli-tests/determinism/setup_once index 1d7b34c1fd1..40b6a82fe2d 100755 --- a/tests/cli-tests/determinism/setup_once +++ b/tests/cli-tests/determinism/setup_once @@ -28,3 +28,23 @@ datagen -g10000 -P50 > files/g10000-P50 datagen -g10000 -P75 > files/g10000-P75 datagen -g10000 -P90 > files/g10000-P90 datagen -g10000 -P100 > files/g10000-P100 + +# Detect ZSTD_SELECTIVE_LAZY build and swap in matching test expectations. +# g10000 at L6 reliably differs between dev and selective-lazy builds. +_sl_file="$CLI_TESTS/determinism/basic.sh.stdout.selective_lazy.exact" +if [ -f "$_sl_file" ]; then + _actual=$(zstd --single-thread -q -6 files/g10000 -c | md5hash) + _sl_hash=$(grep -A1 '^level 6, file files/g10000$' "$_sl_file" | tail -1) + if [ "$_actual" = "$_sl_hash" ]; then + # Back up originals so teardown_once can restore them. + cp "$CLI_TESTS/determinism/basic.sh.stdout.exact" \ + "$CLI_TESTS/determinism/basic.sh.stdout.exact.bak" + cp "$CLI_TESTS/determinism/multithread.sh.stdout.exact" \ + "$CLI_TESTS/determinism/multithread.sh.stdout.exact.bak" + # Swap in selective-lazy expectations. + cp "$_sl_file" "$CLI_TESTS/determinism/basic.sh.stdout.exact" + [ -f "$CLI_TESTS/determinism/multithread.sh.stdout.selective_lazy.exact" ] && \ + cp "$CLI_TESTS/determinism/multithread.sh.stdout.selective_lazy.exact" \ + "$CLI_TESTS/determinism/multithread.sh.stdout.exact" + fi +fi diff --git a/tests/cli-tests/determinism/teardown_once b/tests/cli-tests/determinism/teardown_once new file mode 100755 index 00000000000..a00364fefe4 --- /dev/null +++ b/tests/cli-tests/determinism/teardown_once @@ -0,0 +1,13 @@ +#!/bin/sh + +# Restore original test expectations if they were swapped for +# a ZSTD_SELECTIVE_LAZY build during setup_once. + +_det_dir="$CLI_TESTS/determinism" + +for f in basic.sh.stdout.exact multithread.sh.stdout.exact; do + if [ -f "$_det_dir/$f.bak" ]; then + cp "$_det_dir/$f.bak" "$_det_dir/$f" + rm "$_det_dir/$f.bak" + fi +done