diff --git a/mercurial/configitems.py b/mercurial/configitems.py
index fde033e2027d78dec114236b49e26d8315f5088d_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -1307,7 +1307,7 @@
 coreconfigitem(
     b'format',
     b'revlog-compression',
-    default=lambda: [b'zlib'],
+    default=lambda: [b'zstd', b'zlib'],
     alias=[(b'experimental', b'format.compression')],
 )
 coreconfigitem(
diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt
index fde033e2027d78dec114236b49e26d8315f5088d_bWVyY3VyaWFsL2hlbHB0ZXh0L2NvbmZpZy50eHQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_bWVyY3VyaWFsL2hlbHB0ZXh0L2NvbmZpZy50eHQ= 100644
--- a/mercurial/helptext/config.txt
+++ b/mercurial/helptext/config.txt
@@ -966,7 +966,7 @@
 
     On some systems, the Mercurial installation may lack `zstd` support.
 
-    Default is `zlib`.
+    Default is `zstd` if available, `zlib` otherwise.
 
 ``bookmarks-in-store``
     Store bookmarks in .hg/store/. This means that bookmarks are shared when
diff --git a/mercurial/upgrade_utils/actions.py b/mercurial/upgrade_utils/actions.py
index fde033e2027d78dec114236b49e26d8315f5088d_bWVyY3VyaWFsL3VwZ3JhZGVfdXRpbHMvYWN0aW9ucy5weQ==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_bWVyY3VyaWFsL3VwZ3JhZGVfdXRpbHMvYWN0aW9ucy5weQ== 100644
--- a/mercurial/upgrade_utils/actions.py
+++ b/mercurial/upgrade_utils/actions.py
@@ -395,6 +395,13 @@
         return True
 
 
+_has_zstd = (
+    b'zstd' in util.compengines
+    and util.compengines[b'zstd'].available()
+    and util.compengines[b'zstd'].revlogheader()
+)
+
+
 @registerformatvariant
 class compressionengine(formatvariant):
     name = b'compression'
@@ -398,7 +405,11 @@
 @registerformatvariant
 class compressionengine(formatvariant):
     name = b'compression'
-    default = b'zlib'
+
+    if _has_zstd:
+        default = b'zstd'
+    else:
+        default = b'zlib'
 
     description = _(
         b'Compresion algorithm used to compress data. '
diff --git a/tests/test-bundle.t b/tests/test-bundle.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1idW5kbGUudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1idW5kbGUudA== 100644
--- a/tests/test-bundle.t
+++ b/tests/test-bundle.t
@@ -295,7 +295,8 @@
 #if reporevlogstore
 
   $ hg -R test debugcreatestreamclonebundle packed.hg
-  writing 2664 bytes for 6 files
+  writing 2664 bytes for 6 files (no-zstd !)
+  writing 2665 bytes for 6 files (zstd !)
   bundle requirements: generaldelta, revlogv1, sparserevlog
 
   $ f -B 64 --size --sha1 --hexdump packed.hg
@@ -299,5 +300,6 @@
   bundle requirements: generaldelta, revlogv1, sparserevlog
 
   $ f -B 64 --size --sha1 --hexdump packed.hg
-  packed.hg: size=2840, sha1=12bf3eee3eb8a04c503ce2d29b48f0135c7edff5
+  packed.hg: size=2840, sha1=12bf3eee3eb8a04c503ce2d29b48f0135c7edff5 (no-zstd !)
+  packed.hg: size=2841, sha1=8b645a65f49b0ae43042a9f3da56d4bfdf1c7f99 (zstd !)
   0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........|
@@ -303,5 +305,6 @@
   0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........|
-  0010: 00 00 00 00 0a 68 00 23 67 65 6e 65 72 61 6c 64 |.....h.#generald|
+  0010: 00 00 00 00 0a 68 00 23 67 65 6e 65 72 61 6c 64 |.....h.#generald| (no-zstd !)
+  0010: 00 00 00 00 0a 69 00 23 67 65 6e 65 72 61 6c 64 |.....i.#generald| (zstd !)
   0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 2c 73 70 |elta,revlogv1,sp|
   0030: 61 72 73 65 72 65 76 6c 6f 67 00 64 61 74 61 2f |arserevlog.data/|
 
diff --git a/tests/test-clone-uncompressed.t b/tests/test-clone-uncompressed.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA== 100644
--- a/tests/test-clone-uncompressed.t
+++ b/tests/test-clone-uncompressed.t
@@ -178,11 +178,13 @@
 #if stream-legacy
   $ hg clone --stream -U http://localhost:$HGPORT clone1
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*/sec) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --stream -U http://localhost:$HGPORT clone1
   streaming all changes
@@ -183,11 +185,13 @@
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --stream -U http://localhost:$HGPORT clone1
   streaming all changes
-  1030 files to transfer, 96.5 KB of data
-  transferred 96.5 KB in * seconds (* */sec) (glob)
+  1030 files to transfer, 96.5 KB of data (no-zstd !)
+  transferred 96.5 KB in * seconds (*/sec) (glob) (no-zstd !)
+  1030 files to transfer, 93.6 KB of data (zstd !)
+  transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !)
 
   $ ls -1 clone1/.hg/cache
   branch2-base
@@ -211,5 +215,6 @@
   
 
   $ f --size --hex --bytes 256 body
-  body: size=112262
+  body: size=112262 (no-zstd !)
+  body: size=109410 (zstd !)
   0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
@@ -215,7 +220,10 @@
   0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
-  0010: 7f 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......|
-  0020: 05 09 04 0c 44 62 79 74 65 63 6f 75 6e 74 39 38 |....Dbytecount98|
-  0030: 37 37 35 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |775filecount1030|
+  0010: 7f 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......| (no-zstd !)
+  0020: 05 09 04 0c 44 62 79 74 65 63 6f 75 6e 74 39 38 |....Dbytecount98| (no-zstd !)
+  0030: 37 37 35 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |775filecount1030| (no-zstd !)
+  0010: 99 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......| (zstd !)
+  0020: 05 09 04 0c 5e 62 79 74 65 63 6f 75 6e 74 39 35 |....^bytecount95| (zstd !)
+  0030: 38 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |897filecount1030| (zstd !)
   0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote|
   0050: 6e 63 6f 64 65 25 32 43 66 6e 63 61 63 68 65 25 |ncode%2Cfncache%|
   0060: 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 25 32 |2Cgeneraldelta%2|
@@ -219,18 +227,27 @@
   0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote|
   0050: 6e 63 6f 64 65 25 32 43 66 6e 63 61 63 68 65 25 |ncode%2Cfncache%|
   0060: 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 25 32 |2Cgeneraldelta%2|
-  0070: 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 72 |Crevlogv1%2Cspar|
-  0080: 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 65 |serevlog%2Cstore|
-  0090: 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 00 |....s.Bdata/0.i.|
-  00a0: 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 00 |................|
-  00b0: 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff 80 |................|
-  00c0: 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 |)c.I.#....Vg.g,i|
-  00d0: d1 ec 39 00 00 00 00 00 00 00 00 00 00 00 00 75 |..9............u|
-  00e0: 30 73 08 42 64 61 74 61 2f 31 2e 69 00 03 00 01 |0s.Bdata/1.i....|
-  00f0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................|
+  0070: 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 72 |Crevlogv1%2Cspar| (no-zstd !)
+  0080: 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 65 |serevlog%2Cstore| (no-zstd !)
+  0090: 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 00 |....s.Bdata/0.i.| (no-zstd !)
+  00a0: 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 00 |................| (no-zstd !)
+  00b0: 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff 80 |................| (no-zstd !)
+  00c0: 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 |)c.I.#....Vg.g,i| (no-zstd !)
+  00d0: d1 ec 39 00 00 00 00 00 00 00 00 00 00 00 00 75 |..9............u| (no-zstd !)
+  00e0: 30 73 08 42 64 61 74 61 2f 31 2e 69 00 03 00 01 |0s.Bdata/1.i....| (no-zstd !)
+  00f0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................| (no-zstd !)
+  0070: 43 72 65 76 6c 6f 67 2d 63 6f 6d 70 72 65 73 73 |Crevlog-compress| (zstd !)
+  0080: 69 6f 6e 2d 7a 73 74 64 25 32 43 72 65 76 6c 6f |ion-zstd%2Crevlo| (zstd !)
+  0090: 67 76 31 25 32 43 73 70 61 72 73 65 72 65 76 6c |gv1%2Csparserevl| (zstd !)
+  00a0: 6f 67 25 32 43 73 74 6f 72 65 00 00 80 00 73 08 |og%2Cstore....s.| (zstd !)
+  00b0: 42 64 61 74 61 2f 30 2e 69 00 03 00 01 00 00 00 |Bdata/0.i.......| (zstd !)
+  00c0: 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 |................| (zstd !)
+  00d0: 01 ff ff ff ff ff ff ff ff 80 29 63 a0 49 d3 23 |..........)c.I.#| (zstd !)
+  00e0: 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 00 00 00 |....Vg.g,i..9...| (zstd !)
+  00f0: 00 00 00 00 00 00 00 00 00 75 30 73 08 42 64 61 |.........u0s.Bda| (zstd !)
 
 --uncompressed is an alias to --stream
 
 #if stream-legacy
   $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
   streaming all changes
@@ -231,14 +248,16 @@
 
 --uncompressed is an alias to --stream
 
 #if stream-legacy
   $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*/sec) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
   streaming all changes
@@ -239,11 +258,13 @@
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
   streaming all changes
-  1030 files to transfer, 96.5 KB of data
-  transferred 96.5 KB in * seconds (* */sec) (glob)
+  1030 files to transfer, 96.5 KB of data (no-zstd !)
+  transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1030 files to transfer, 93.6 KB of data (zstd !)
+  transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !)
 #endif
 
 Clone with background file closing enabled
@@ -255,6 +276,7 @@
   sending branchmap command
   streaming all changes
   sending stream_out command
-  1027 files to transfer, 96.3 KB of data
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
   starting 4 threads for background file closing
   updating the branch cache
@@ -259,6 +281,7 @@
   starting 4 threads for background file closing
   updating the branch cache
-  transferred 96.3 KB in * seconds (*/sec) (glob)
+  transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   query 1; heads
   sending batch command
   searching for changes
@@ -285,7 +308,8 @@
   bundle2-input-bundle: with-transaction
   bundle2-input-part: "stream2" (params: 3 mandatory) supported
   applying stream bundle
-  1030 files to transfer, 96.5 KB of data
+  1030 files to transfer, 96.5 KB of data (no-zstd !)
+  1030 files to transfer, 93.6 KB of data (zstd !)
   starting 4 threads for background file closing
   starting 4 threads for background file closing
   updating the branch cache
@@ -289,8 +313,10 @@
   starting 4 threads for background file closing
   starting 4 threads for background file closing
   updating the branch cache
-  transferred 96.5 KB in * seconds (* */sec) (glob)
-  bundle2-input-part: total payload size 112094
+  transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !)
+  bundle2-input-part: total payload size 112094 (no-zstd !)
+  transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !)
+  bundle2-input-part: total payload size 109216 (zstd !)
   bundle2-input-part: "listkeys" (params: 1 mandatory) supported
   bundle2-input-bundle: 2 parts total
   checking for updated bookmarks
@@ -322,11 +348,13 @@
 #if stream-legacy
   $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*/sec) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
   streaming all changes
@@ -327,11 +355,13 @@
   searching for changes
   no changes found
 #endif
 #if stream-bundle2
   $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
   streaming all changes
-  1030 files to transfer, 96.5 KB of data
-  transferred 96.5 KB in * seconds (* */sec) (glob)
+  1030 files to transfer, 96.5 KB of data (no-zstd !)
+  transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1030 files to transfer, 93.6 KB of data (zstd !)
+  transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !)
 #endif
 
   $ killdaemons.py
@@ -437,8 +467,10 @@
 #if stream-legacy
   $ hg clone --stream http://localhost:$HGPORT with-bookmarks
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (*) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
@@ -447,8 +479,10 @@
 #if stream-bundle2
   $ hg clone --stream http://localhost:$HGPORT with-bookmarks
   streaming all changes
-  1033 files to transfer, 96.6 KB of data
-  transferred 96.6 KB in * seconds (* */sec) (glob)
+  1033 files to transfer, 96.6 KB of data (no-zstd !)
+  transferred 96.6 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1033 files to transfer, 93.8 KB of data (zstd !)
+  transferred 93.8 KB in * seconds (* */sec) (glob) (zstd !)
   updating to branch default
   1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
 #endif
@@ -467,8 +501,10 @@
 #if stream-legacy
   $ hg clone --stream http://localhost:$HGPORT phase-publish
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (*) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
@@ -477,8 +513,10 @@
 #if stream-bundle2
   $ hg clone --stream http://localhost:$HGPORT phase-publish
   streaming all changes
-  1033 files to transfer, 96.6 KB of data
-  transferred 96.6 KB in * seconds (* */sec) (glob)
+  1033 files to transfer, 96.6 KB of data (no-zstd !)
+  transferred 96.6 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1033 files to transfer, 93.8 KB of data (zstd !)
+  transferred 93.8 KB in * seconds (* */sec) (glob) (zstd !)
   updating to branch default
   1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
 #endif
@@ -503,8 +541,10 @@
 
   $ hg clone --stream http://localhost:$HGPORT phase-no-publish
   streaming all changes
-  1027 files to transfer, 96.3 KB of data
-  transferred 96.3 KB in * seconds (*) (glob)
+  1027 files to transfer, 96.3 KB of data (no-zstd !)
+  transferred 96.3 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1027 files to transfer, 93.5 KB of data (zstd !)
+  transferred 93.5 KB in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
@@ -516,8 +556,10 @@
 #if stream-bundle2
   $ hg clone --stream http://localhost:$HGPORT phase-no-publish
   streaming all changes
-  1034 files to transfer, 96.7 KB of data
-  transferred 96.7 KB in * seconds (* */sec) (glob)
+  1034 files to transfer, 96.7 KB of data (no-zstd !)
+  transferred 96.7 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1034 files to transfer, 93.9 KB of data (zstd !)
+  transferred 93.9 KB in * seconds (* */sec) (glob) (zstd !)
   updating to branch default
   1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R phase-no-publish phase -r 'all()'
@@ -561,8 +603,10 @@
 
   $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence
   streaming all changes
-  1035 files to transfer, 97.1 KB of data
-  transferred 97.1 KB in * seconds (* */sec) (glob)
+  1035 files to transfer, 97.1 KB of data (no-zstd !)
+  transferred 97.1 KB in * seconds (* */sec) (glob) (no-zstd !)
+  1035 files to transfer, 94.3 KB of data (zstd !)
+  transferred 94.3 KB in * seconds (* */sec) (glob) (zstd !)
   $ hg -R with-obsolescence log -T '{rev}: {phase}\n'
   1: draft
   0: draft
diff --git a/tests/test-copies-in-changeset.t b/tests/test-copies-in-changeset.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1jb3BpZXMtaW4tY2hhbmdlc2V0LnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1jb3BpZXMtaW4tY2hhbmdlc2V0LnQ= 100644
--- a/tests/test-copies-in-changeset.t
+++ b/tests/test-copies-in-changeset.t
@@ -43,7 +43,8 @@
   copies-sdc:         yes    yes      no
   revlog-v2:          yes    yes      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
 #else
   $ hg debugformat -v
@@ -57,7 +58,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
 #endif
   $ echo a > a
@@ -428,7 +430,8 @@
   copies-sdc:         yes    yes      no
   revlog-v2:          yes    yes      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugsidedata -c -- 0
   1 sidedata entries
@@ -454,7 +457,8 @@
   copies-sdc:          no     no      no
   revlog-v2:          yes    yes      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugsidedata -c -- 0
   1 sidedata entries
@@ -482,7 +486,8 @@
   copies-sdc:         yes    yes      no
   revlog-v2:          yes    yes      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugsidedata -c -- 0
   1 sidedata entries
diff --git a/tests/test-debugcommands.t b/tests/test-debugcommands.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1kZWJ1Z2NvbW1hbmRzLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1kZWJ1Z2NvbW1hbmRzLnQ= 100644
--- a/tests/test-debugcommands.t
+++ b/tests/test-debugcommands.t
@@ -368,7 +368,8 @@
   7 1
   8 1
   9 1
-  10 2
+  10 2 (no-zstd !)
+  10 1 (zstd !)
   11 1
   $ hg --config extensions.strip= strip --no-backup -r 1
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
diff --git a/tests/test-generaldelta.t b/tests/test-generaldelta.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1nZW5lcmFsZGVsdGEudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1nZW5lcmFsZGVsdGEudA== 100644
--- a/tests/test-generaldelta.t
+++ b/tests/test-generaldelta.t
@@ -106,9 +106,12 @@
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R repo debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000
-        1       1        2        0    prev         57        135        161   1.19259       161         0    0.00000
-        2       1        3        1    prev         57        135        218   1.61481       218         0    0.00000
+        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000 (no-zstd !)
+        1       1        2        0    prev         57        135        161   1.19259       161         0    0.00000 (no-zstd !)
+        2       1        3        1    prev         57        135        218   1.61481       218         0    0.00000 (no-zstd !)
+        0       1        1       -1    base        107        135        107   0.79259       107         0    0.00000 (zstd !)
+        1       1        2        0    prev         57        135        164   1.21481       164         0    0.00000 (zstd !)
+        2       1        3        1    prev         57        135        221   1.63704       221         0    0.00000 (zstd !)
         3       2        1       -1    base        104        135        104   0.77037       104         0    0.00000
   $ hg -R usegd debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
@@ -112,9 +115,13 @@
         3       2        1       -1    base        104        135        104   0.77037       104         0    0.00000
   $ hg -R usegd debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000
-        1       1        2        0      p1         57        135        161   1.19259       161         0    0.00000
-        2       1        3        1    prev         57        135        218   1.61481       218         0    0.00000
-        3       1        2        0      p1         57        135        161   1.19259       275       114    0.70807
+        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000 (no-zstd !)
+        1       1        2        0      p1         57        135        161   1.19259       161         0    0.00000 (no-zstd !)
+        2       1        3        1    prev         57        135        218   1.61481       218         0    0.00000 (no-zstd !)
+        3       1        2        0      p1         57        135        161   1.19259       275       114    0.70807 (no-zstd !)
+        0       1        1       -1    base        107        135        107   0.79259       107         0    0.00000 (zstd !)
+        1       1        2        0      p1         57        135        164   1.21481       164         0    0.00000 (zstd !)
+        2       1        3        1    prev         57        135        221   1.63704       221         0    0.00000 (zstd !)
+        3       1        2        0      p1         57        135        164   1.21481       278       114    0.69512 (zstd !)
   $ hg -R full debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
@@ -119,9 +126,13 @@
   $ hg -R full debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000
-        1       1        2        0      p1         57        135        161   1.19259       161         0    0.00000
-        2       1        2        0      p1         57        135        161   1.19259       218        57    0.35404
-        3       1        2        0      p1         57        135        161   1.19259       275       114    0.70807
+        0       1        1       -1    base        104        135        104   0.77037       104         0    0.00000 (no-zstd !)
+        1       1        2        0      p1         57        135        161   1.19259       161         0    0.00000 (no-zstd !)
+        2       1        2        0      p1         57        135        161   1.19259       218        57    0.35404 (no-zstd !)
+        3       1        2        0      p1         57        135        161   1.19259       275       114    0.70807 (no-zstd !)
+        0       1        1       -1    base        107        135        107   0.79259       107         0    0.00000 (zstd !)
+        1       1        2        0      p1         57        135        164   1.21481       164         0    0.00000 (zstd !)
+        2       1        2        0      p1         57        135        164   1.21481       221        57    0.34756 (zstd !)
+        3       1        2        0      p1         57        135        164   1.21481       278       114    0.69512 (zstd !)
 
 Test revlog.optimize-delta-parent-choice
 
@@ -142,9 +153,12 @@
   $ hg commit -q -m merge
   $ hg debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base         59        215         59   0.27442        59         0    0.00000
-        1       1        2        0    prev         61         86        120   1.39535       120         0    0.00000
-        2       1        2        0      p2         62        301        121   0.40199       182        61    0.50413
+        0       1        1       -1    base         59        215         59   0.27442        59         0    0.00000 (no-zstd !)
+        1       1        2        0    prev         61         86        120   1.39535       120         0    0.00000 (no-zstd !)
+        2       1        2        0      p2         62        301        121   0.40199       182        61    0.50413 (no-zstd !)
+        0       1        1       -1    base         68        215         68   0.31628        68         0    0.00000 (zstd !)
+        1       1        2        0    prev         70         86        138   1.60465       138         0    0.00000 (zstd !)
+        2       1        2        0      p2         68        301        136   0.45183       206        70    0.51471 (zstd !)
 
   $ hg strip -q -r . --config extensions.strip=
 
@@ -154,9 +168,12 @@
   $ hg commit -q -m merge --config storage.revlog.optimize-delta-parent-choice=yes
   $ hg debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base         59        215         59   0.27442        59         0    0.00000
-        1       1        2        0    prev         61         86        120   1.39535       120         0    0.00000
-        2       1        2        0      p2         62        301        121   0.40199       182        61    0.50413
+        0       1        1       -1    base         59        215         59   0.27442        59         0    0.00000 (no-zstd !)
+        1       1        2        0    prev         61         86        120   1.39535       120         0    0.00000 (no-zstd !)
+        2       1        2        0      p2         62        301        121   0.40199       182        61    0.50413 (no-zstd !)
+        0       1        1       -1    base         68        215         68   0.31628        68         0    0.00000 (zstd !)
+        1       1        2        0    prev         70         86        138   1.60465       138         0    0.00000 (zstd !)
+        2       1        2        0      p2         68        301        136   0.45183       206        70    0.51471 (zstd !)
 
 Test that strip bundle use bundle2
   $ hg --config extensions.strip= strip .
@@ -267,8 +284,12 @@
        46       3       29       45      p1         58       1334       1671   1.25262      1671         0    0.00000
        47       3       30       46      p1         58       1380       1729   1.25290      1729         0    0.00000
        48       3       31       47      p1         58       1426       1787   1.25316      1787         0    0.00000
-       49       4        1       -1    base        197        316        197   0.62342       197         0    0.00000
-       50       4        2       49      p1         58        362        255   0.70442       255         0    0.00000
-       51       4        3       50    prev        356        594        611   1.02862       611         0    0.00000
-       52       4        4       51      p1         58        640        669   1.04531       669         0    0.00000
+       49       4        1       -1    base        197        316        197   0.62342       197         0    0.00000 (no-zstd !)
+       50       4        2       49      p1         58        362        255   0.70442       255         0    0.00000 (no-zstd !)
+       51       4        3       50    prev        356        594        611   1.02862       611         0    0.00000 (no-zstd !)
+       52       4        4       51      p1         58        640        669   1.04531       669         0    0.00000 (no-zstd !)
+       49       4        1       -1    base        205        316        205   0.64873       205         0    0.00000 (zstd !)
+       50       4        2       49      p1         58        362        263   0.72652       263         0    0.00000 (zstd !)
+       51       4        3       50    prev        366        594        629   1.05892       629         0    0.00000 (zstd !)
+       52       4        4       51      p1         58        640        687   1.07344       687         0    0.00000 (zstd !)
        53       5        1       -1    base          0          0          0   0.00000         0         0    0.00000
@@ -274,5 +295,6 @@
        53       5        1       -1    base          0          0          0   0.00000         0         0    0.00000
-       54       6        1       -1    base        369        640        369   0.57656       369         0    0.00000
+       54       6        1       -1    base        369        640        369   0.57656       369         0    0.00000 (no-zstd !)
+       54       6        1       -1    base        375        640        375   0.58594       375         0    0.00000 (zstd !)
   $ hg clone --pull source-repo --config experimental.maxdeltachainspan=2800 relax-chain --config format.generaldelta=yes
   requesting all changes
   adding changesets
@@ -333,8 +355,12 @@
        46       3       29       45      p1         58       1334       1671   1.25262      1671         0    0.00000
        47       3       30       46      p1         58       1380       1729   1.25290      1729         0    0.00000
        48       3       31       47      p1         58       1426       1787   1.25316      1787         0    0.00000
-       49       4        1       -1    base        197        316        197   0.62342       197         0    0.00000
-       50       4        2       49      p1         58        362        255   0.70442       255         0    0.00000
-       51       2       13       17      p1         58        594        739   1.24411      2781      2042    2.76319
-       52       5        1       -1    base        369        640        369   0.57656       369         0    0.00000
+       49       4        1       -1    base        197        316        197   0.62342       197         0    0.00000 (no-zstd !)
+       50       4        2       49      p1         58        362        255   0.70442       255         0    0.00000 (no-zstd !)
+       51       2       13       17      p1         58        594        739   1.24411      2781      2042    2.76319 (no-zstd !)
+       52       5        1       -1    base        369        640        369   0.57656       369         0    0.00000 (no-zstd !)
+       49       4        1       -1    base        205        316        205   0.64873       205         0    0.00000 (zstd !)
+       50       4        2       49      p1         58        362        263   0.72652       263         0    0.00000 (zstd !)
+       51       2       13       17      p1         58        594        739   1.24411      2789      2050    2.77402 (zstd !)
+       52       5        1       -1    base        375        640        375   0.58594       375         0    0.00000 (zstd !)
        53       6        1       -1    base          0          0          0   0.00000         0         0    0.00000
@@ -340,5 +366,6 @@
        53       6        1       -1    base          0          0          0   0.00000         0         0    0.00000
-       54       7        1       -1    base        369        640        369   0.57656       369         0    0.00000
+       54       7        1       -1    base        369        640        369   0.57656       369         0    0.00000 (no-zstd !)
+       54       7        1       -1    base        375        640        375   0.58594       375         0    0.00000 (zstd !)
   $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.usegeneraldelta=yes --config storage.revlog.reuse-external-delta-parent=no
   requesting all changes
   adding changesets
@@ -404,4 +431,5 @@
        51       2       13       17      p1         58        594        739   1.24411      2642      1903    2.57510
        52       2       14       51      p1         58        640        797   1.24531      2700      1903    2.38770
        53       4        1       -1    base          0          0          0   0.00000         0         0    0.00000
-       54       5        1       -1    base        369        640        369   0.57656       369         0    0.00000
+       54       5        1       -1    base        369        640        369   0.57656       369         0    0.00000 (no-zstd !)
+       54       5        1       -1    base        375        640        375   0.58594       375         0    0.00000 (zstd !)
diff --git a/tests/test-http-bundle1.t b/tests/test-http-bundle1.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1odHRwLWJ1bmRsZTEudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1odHRwLWJ1bmRsZTEudA== 100644
--- a/tests/test-http-bundle1.t
+++ b/tests/test-http-bundle1.t
@@ -38,7 +38,8 @@
 #if no-reposimplestore
   $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1
   streaming all changes
-  6 files to transfer, 606 bytes of data
+  6 files to transfer, 606 bytes of data (no-zstd !)
+  6 files to transfer, 608 bytes of data (zstd !)
   transferred * bytes in * seconds (*/sec) (glob)
   searching for changes
   no changes found
@@ -225,7 +226,8 @@
 #if no-reposimplestore
   $ hg clone http://user:pass@localhost:$HGPORT2/ dest 2>&1
   streaming all changes
-  7 files to transfer, 916 bytes of data
+  7 files to transfer, 916 bytes of data (no-zstd !)
+  7 files to transfer, 919 bytes of data (zstd !)
   transferred * bytes in * seconds (*/sec) (glob)
   searching for changes
   no changes found
diff --git a/tests/test-http.t b/tests/test-http.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1odHRwLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1odHRwLnQ= 100644
--- a/tests/test-http.t
+++ b/tests/test-http.t
@@ -29,7 +29,8 @@
 #if no-reposimplestore
   $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1
   streaming all changes
-  9 files to transfer, 715 bytes of data
+  9 files to transfer, 715 bytes of data (no-zstd !)
+  9 files to transfer, 717 bytes of data (zstd !)
   transferred * bytes in * seconds (*/sec) (glob)
   updating to branch default
   4 files updated, 0 files merged, 0 files removed, 0 files unresolved
diff --git a/tests/test-init.t b/tests/test-init.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1pbml0LnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1pbml0LnQ= 100644
--- a/tests/test-init.t
+++ b/tests/test-init.t
@@ -21,6 +21,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -59,6 +60,7 @@
   $ hg --config format.usestore=false init old
   $ checknewrepo old
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   testonly-simplestore (reposimplestore !)
   sparserevlog
@@ -70,6 +72,7 @@
   store created
   00changelog.i created
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -83,6 +86,7 @@
   00changelog.i created
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -96,6 +100,7 @@
   00changelog.i created
   dotencode
   fncache
+  revlog-compression-zstd (zstd !)
   revlogv1
   store
   testonly-simplestore (reposimplestore !)
@@ -213,6 +218,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -233,6 +239,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -249,6 +256,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1sZmNvbnZlcnQudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1sZmNvbnZlcnQudA== 100644
--- a/tests/test-lfconvert.t
+++ b/tests/test-lfconvert.t
@@ -99,6 +99,7 @@
   fncache
   generaldelta
   largefiles
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-lfs-largefiles.t b/tests/test-lfs-largefiles.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1sZnMtbGFyZ2VmaWxlcy50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1sZnMtbGFyZ2VmaWxlcy50 100644
--- a/tests/test-lfs-largefiles.t
+++ b/tests/test-lfs-largefiles.t
@@ -293,6 +293,7 @@
   fncache
   generaldelta
   lfs
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-narrow-clone-no-ellipsis.t b/tests/test-narrow-clone-no-ellipsis.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUtbm8tZWxsaXBzaXMudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUtbm8tZWxsaXBzaXMudA== 100644
--- a/tests/test-narrow-clone-no-ellipsis.t
+++ b/tests/test-narrow-clone-no-ellipsis.t
@@ -26,6 +26,7 @@
   dotencode
   fncache
   narrowhg-experimental
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-narrow-clone-stream.t b/tests/test-narrow-clone-stream.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUtc3RyZWFtLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUtc3RyZWFtLnQ= 100644
--- a/tests/test-narrow-clone-stream.t
+++ b/tests/test-narrow-clone-stream.t
@@ -68,6 +68,7 @@
   fncache (flat-fncache !)
   generaldelta
   narrowhg-experimental
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-narrow-clone.t b/tests/test-narrow-clone.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1uYXJyb3ctY2xvbmUudA== 100644
--- a/tests/test-narrow-clone.t
+++ b/tests/test-narrow-clone.t
@@ -42,6 +42,7 @@
   dotencode
   fncache
   narrowhg-experimental
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-narrow-sparse.t b/tests/test-narrow-sparse.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1uYXJyb3ctc3BhcnNlLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1uYXJyb3ctc3BhcnNlLnQ= 100644
--- a/tests/test-narrow-sparse.t
+++ b/tests/test-narrow-sparse.t
@@ -61,6 +61,7 @@
   fncache
   generaldelta
   narrowhg-experimental
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1vYnNvbGV0ZS50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1vYnNvbGV0ZS50 100644
--- a/tests/test-obsolete.t
+++ b/tests/test-obsolete.t
@@ -97,8 +97,10 @@
   # rev p1rev p2rev start   end deltastart base   p1   p2 rawsize totalsize compression heads chainlen
       0    -1    -1     0    59          0    0    0    0      58        58           0     1        0
       1     0    -1    59   118         59   59    0    0      58       116           0     1        0
-      2     1    -1   118   193        118  118   59    0      76       192           0     1        0
-      3     1    -1   193   260        193  193   59    0      66       258           0     2        0
+      2     1    -1   118   193        118  118   59    0      76       192           0     1        0 (no-zstd !)
+      3     1    -1   193   260        193  193   59    0      66       258           0     2        0 (no-zstd !)
+      2     1    -1   118   195        118  118   59    0      76       192           0     1        0 (zstd !)
+      3     1    -1   195   262        195  195   59    0      66       258           0     2        0 (zstd !)
   $ hg debugobsolete
   245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
 
diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1wZXJzaXN0ZW50LW5vZGVtYXAudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1wZXJzaXN0ZW50LW5vZGVtYXAudA== 100644
--- a/tests/test-persistent-nodemap.t
+++ b/tests/test-persistent-nodemap.t
@@ -60,7 +60,8 @@
   copies-sdc:          no
   revlog-v2:           no
   plain-cl-delta:     yes
-  compression:        zlib
+  compression:        zlib (no-zstd !)
+  compression:        zstd (zstd !)
   compression-level:  default
   $ hg debugbuilddag .+5000 --new-file
 
@@ -579,9 +580,10 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugupgraderepo --run --no-backup
   upgrade will perform the following actions:
   
   requirements
@@ -583,9 +585,10 @@
   compression-level:  default default default
   $ hg debugupgraderepo --run --no-backup
   upgrade will perform the following actions:
   
   requirements
-     preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
+     preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !)
+     preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
      removed: persistent-nodemap
   
   processed revlogs:
@@ -624,9 +627,10 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugupgraderepo --run --no-backup
   upgrade will perform the following actions:
   
   requirements
@@ -628,9 +632,10 @@
   compression-level:  default default default
   $ hg debugupgraderepo --run --no-backup
   upgrade will perform the following actions:
   
   requirements
-     preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
+     preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !)
+     preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
      added: persistent-nodemap
   
   persistent-nodemap
@@ -669,7 +674,8 @@
   upgrade will perform the following actions:
   
   requirements
-     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store
+     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (no-zstd !)
+     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
   
   optimisations: re-delta-all
   
@@ -744,7 +750,8 @@
   $ hg clone -U --stream --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)'
   adding [s] 00manifest.n (70 bytes)
   adding [s] 00manifest.i (313 KB)
-  adding [s] 00manifest.d (452 KB)
+  adding [s] 00manifest.d (452 KB) (no-zstd !)
+  adding [s] 00manifest.d (491 KB) (zstd !)
   adding [s] 00manifest-*.nd (118 KB) (glob)
   adding [s] 00changelog.n (70 bytes)
   adding [s] 00changelog.i (313 KB)
@@ -748,7 +755,8 @@
   adding [s] 00manifest-*.nd (118 KB) (glob)
   adding [s] 00changelog.n (70 bytes)
   adding [s] 00changelog.i (313 KB)
-  adding [s] 00changelog.d (360 KB)
+  adding [s] 00changelog.d (360 KB) (no-zstd !)
+  adding [s] 00changelog.d (368 KB) (zstd !)
   adding [s] 00changelog-*.nd (118 KB) (glob)
   $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
   00changelog-*.nd (glob)
diff --git a/tests/test-phases.t b/tests/test-phases.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1waGFzZXMudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1waGFzZXMudA== 100644
--- a/tests/test-phases.t
+++ b/tests/test-phases.t
@@ -886,6 +886,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -913,6 +914,7 @@
   fncache
   generaldelta
   internal-phase
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-remotefilelog-bgprefetch.t b/tests/test-remotefilelog-bgprefetch.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWJncHJlZmV0Y2gudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWJncHJlZmV0Y2gudA== 100644
--- a/tests/test-remotefilelog-bgprefetch.t
+++ b/tests/test-remotefilelog-bgprefetch.t
@@ -29,8 +29,10 @@
 
   $ hgcloneshallow ssh://user@dummy/master shallow --noupdate
   streaming all changes
-  2 files to transfer, 776 bytes of data
-  transferred 776 bytes in * seconds (*/sec) (glob)
+  2 files to transfer, 776 bytes of data (no-zstd !)
+  transferred 776 bytes in * seconds (*/sec) (glob) (no-zstd !)
+  2 files to transfer, 784 bytes of data (zstd !)
+  transferred 784 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
 
diff --git a/tests/test-remotefilelog-clone-tree.t b/tests/test-remotefilelog-clone-tree.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWNsb25lLXRyZWUudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWNsb25lLXRyZWUudA== 100644
--- a/tests/test-remotefilelog-clone-tree.t
+++ b/tests/test-remotefilelog-clone-tree.t
@@ -30,6 +30,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -71,6 +72,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -112,6 +114,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-remotefilelog-clone.t b/tests/test-remotefilelog-clone.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWNsb25lLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWNsb25lLnQ= 100644
--- a/tests/test-remotefilelog-clone.t
+++ b/tests/test-remotefilelog-clone.t
@@ -27,6 +27,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -61,6 +62,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -110,6 +112,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-remotefilelog-log.t b/tests/test-remotefilelog-log.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWxvZy50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLWxvZy50 100644
--- a/tests/test-remotefilelog-log.t
+++ b/tests/test-remotefilelog-log.t
@@ -30,6 +30,7 @@
   exp-remotefilelog-repo-req-1
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-remotefilelog-partial-shallow.t b/tests/test-remotefilelog-partial-shallow.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXBhcnRpYWwtc2hhbGxvdy50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXBhcnRpYWwtc2hhbGxvdy50 100644
--- a/tests/test-remotefilelog-partial-shallow.t
+++ b/tests/test-remotefilelog-partial-shallow.t
@@ -18,8 +18,10 @@
 
   $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.includepattern=foo
   streaming all changes
-  3 files to transfer, 336 bytes of data
-  transferred 336 bytes in * seconds (*/sec) (glob)
+  3 files to transfer, 336 bytes of data (no-zstd !)
+  transferred 336 bytes in * seconds (* */sec) (glob) (no-zstd !)
+  3 files to transfer, 338 bytes of data (zstd !)
+  transferred 338 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   $ cat >> shallow/.hg/hgrc <<EOF
diff --git a/tests/test-remotefilelog-prefetch.t b/tests/test-remotefilelog-prefetch.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXByZWZldGNoLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXByZWZldGNoLnQ= 100644
--- a/tests/test-remotefilelog-prefetch.t
+++ b/tests/test-remotefilelog-prefetch.t
@@ -22,8 +22,10 @@
 
   $ hgcloneshallow ssh://user@dummy/master shallow --noupdate
   streaming all changes
-  2 files to transfer, 528 bytes of data
-  transferred 528 bytes in * seconds (*/sec) (glob)
+  2 files to transfer, 528 bytes of data (no-zstd !)
+  transferred 528 bytes in * seconds (* */sec) (glob) (no-zstd !)
+  2 files to transfer, 532 bytes of data (zstd !)
+  transferred 532 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   $ cd shallow
@@ -163,8 +165,10 @@
 
   $ hgcloneshallow ssh://user@dummy/master shallow2
   streaming all changes
-  2 files to transfer, 528 bytes of data
-  transferred 528 bytes in * seconds * (glob)
+  2 files to transfer, 528 bytes of data (no-zstd !)
+  transferred 528 bytes in * seconds * (glob) (no-zstd !)
+  2 files to transfer, 532 bytes of data (zstd !)
+  transferred 532 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
diff --git a/tests/test-remotefilelog-sparse.t b/tests/test-remotefilelog-sparse.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXNwYXJzZS50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXNwYXJzZS50 100644
--- a/tests/test-remotefilelog-sparse.t
+++ b/tests/test-remotefilelog-sparse.t
@@ -22,8 +22,10 @@
 
   $ hgcloneshallow ssh://user@dummy/master shallow --noupdate
   streaming all changes
-  2 files to transfer, 527 bytes of data
-  transferred 527 bytes in 0.* seconds (*/sec) (glob)
+  2 files to transfer, 527 bytes of data (no-zstd !)
+  transferred 527 bytes in * seconds (* */sec) (glob) (no-zstd !)
+  2 files to transfer, 534 bytes of data (zstd !)
+  transferred 534 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   $ cd shallow
@@ -72,8 +74,10 @@
 
   $ hgcloneshallow ssh://user@dummy/master shallow2
   streaming all changes
-  2 files to transfer, 527 bytes of data
-  transferred 527 bytes in 0.* seconds (*) (glob)
+  2 files to transfer, 527 bytes of data (no-zstd !)
+  transferred 527 bytes in * seconds (*) (glob) (no-zstd !)
+  2 files to transfer, 534 bytes of data (zstd !)
+  transferred 534 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
diff --git a/tests/test-remotefilelog-tags.t b/tests/test-remotefilelog-tags.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXRhZ3MudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZW1vdGVmaWxlbG9nLXRhZ3MudA== 100644
--- a/tests/test-remotefilelog-tags.t
+++ b/tests/test-remotefilelog-tags.t
@@ -18,8 +18,10 @@
 
   $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.excludepattern=.hgtags
   streaming all changes
-  3 files to transfer, 662 bytes of data
-  transferred 662 bytes in * seconds (*/sec) (glob)
+  3 files to transfer, 662 bytes of data (no-zstd !)
+  transferred 662 bytes in * seconds (* */sec) (glob) (no-zstd !)
+  3 files to transfer, 665 bytes of data (zstd !)
+  transferred 665 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   $ cat >> shallow/.hg/hgrc <<EOF
diff --git a/tests/test-requires.t b/tests/test-requires.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZXF1aXJlcy50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZXF1aXJlcy50 100644
--- a/tests/test-requires.t
+++ b/tests/test-requires.t
@@ -53,6 +53,7 @@
   featuresetup-test
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-revlog-v2.t b/tests/test-revlog-v2.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yZXZsb2ctdjIudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yZXZsb2ctdjIudA== 100644
--- a/tests/test-revlog-v2.t
+++ b/tests/test-revlog-v2.t
@@ -24,6 +24,7 @@
   dotencode
   exp-revlogv2.2
   fncache
+  revlog-compression-zstd (zstd !)
   sparserevlog
   store
 
diff --git a/tests/test-rhg.t b/tests/test-rhg.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1yaGcudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1yaGcudA== 100644
--- a/tests/test-rhg.t
+++ b/tests/test-rhg.t
@@ -176,6 +176,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-sidedata.t b/tests/test-sidedata.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zaWRlZGF0YS50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zaWRlZGF0YS50 100644
--- a/tests/test-sidedata.t
+++ b/tests/test-sidedata.t
@@ -60,7 +60,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat -v -R up-no-side-data --config format.exp-use-side-data=yes
   format-variant     repo config default
@@ -73,7 +74,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no    yes      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugupgraderepo -R up-no-side-data --config format.exp-use-side-data=yes > /dev/null
 
@@ -92,7 +94,8 @@
   copies-sdc:          no     no      no
   revlog-v2:          yes     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat -v -R up-side-data --config format.exp-use-side-data=no
   format-variant     repo config default
@@ -105,6 +108,7 @@
   copies-sdc:          no     no      no
   revlog-v2:          yes     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ hg debugupgraderepo -R up-side-data --config format.exp-use-side-data=no > /dev/null
diff --git a/tests/test-sparse-requirement.t b/tests/test-sparse-requirement.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zcGFyc2UtcmVxdWlyZW1lbnQudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zcGFyc2UtcmVxdWlyZW1lbnQudA== 100644
--- a/tests/test-sparse-requirement.t
+++ b/tests/test-sparse-requirement.t
@@ -20,6 +20,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -38,6 +39,7 @@
   exp-sparse
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -57,6 +59,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-sqlitestore.t b/tests/test-sqlitestore.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zcWxpdGVzdG9yZS50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zcWxpdGVzdG9yZS50 100644
--- a/tests/test-sqlitestore.t
+++ b/tests/test-sqlitestore.t
@@ -17,6 +17,7 @@
   dotencode
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -31,6 +32,7 @@
   exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ (no-zstd !)
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -49,6 +51,7 @@
   exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
@@ -62,6 +65,7 @@
   exp-sqlite-comp-001=none
   fncache
   generaldelta
+  revlog-compression-zstd (zstd !)
   revlogv1
   sparserevlog
   store
diff --git a/tests/test-ssh-bundle1.t b/tests/test-ssh-bundle1.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zc2gtYnVuZGxlMS50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zc2gtYnVuZGxlMS50 100644
--- a/tests/test-ssh-bundle1.t
+++ b/tests/test-ssh-bundle1.t
@@ -72,8 +72,10 @@
 
   $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream
   streaming all changes
-  4 files to transfer, 602 bytes of data
-  transferred 602 bytes in * seconds (*) (glob)
+  4 files to transfer, 602 bytes of data (no-zstd !)
+  transferred 602 bytes in * seconds (*) (glob) (no-zstd !)
+  4 files to transfer, 621 bytes of data (zstd !)
+  transferred 621 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
@@ -94,8 +96,10 @@
   $ hg -R local-stream book mybook
   $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/local-stream stream2
   streaming all changes
-  4 files to transfer, 602 bytes of data
-  transferred 602 bytes in * seconds (*) (glob)
+  4 files to transfer, 602 bytes of data (no-zstd !)
+  transferred 602 bytes in * seconds (*) (glob) (no-zstd !)
+  4 files to transfer, 621 bytes of data (zstd !)
+  transferred 621 bytes in * seconds (* */sec) (glob) (zstd !)
   searching for changes
   no changes found
   updating to branch default
diff --git a/tests/test-ssh.t b/tests/test-ssh.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zc2gudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zc2gudA== 100644
--- a/tests/test-ssh.t
+++ b/tests/test-ssh.t
@@ -64,8 +64,10 @@
 
   $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream
   streaming all changes
-  8 files to transfer, 827 bytes of data
-  transferred 827 bytes in * seconds (*) (glob)
+  8 files to transfer, 827 bytes of data (no-zstd !)
+  transferred 827 bytes in * seconds (*) (glob) (no-zstd !)
+  8 files to transfer, 846 bytes of data (zstd !)
+  transferred * bytes in * seconds (* */sec) (glob) (zstd !)
   updating to branch default
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd local-stream
diff --git a/tests/test-stream-bundle-v2.t b/tests/test-stream-bundle-v2.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC1zdHJlYW0tYnVuZGxlLXYyLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC1zdHJlYW0tYnVuZGxlLXYyLnQ= 100644
--- a/tests/test-stream-bundle-v2.t
+++ b/tests/test-stream-bundle-v2.t
@@ -46,5 +46,6 @@
   $ hg bundle -a --type="none-v2;stream=v2" bundle.hg
   $ hg debugbundle bundle.hg
   Stream params: {}
-  stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True)
+  stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True) (no-zstd !)
+  stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlog-compression-zstd%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True) (zstd !)
   $ hg debugbundle --spec bundle.hg
@@ -50,5 +51,6 @@
   $ hg debugbundle --spec bundle.hg
-  none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore
+  none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore (no-zstd !)
+  none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlog-compression-zstd%2Crevlogv1%2Csparserevlog%2Cstore (zstd !)
 
 Test that we can apply the bundle as a stream clone bundle
 
diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC10cmVlbWFuaWZlc3QudA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC10cmVlbWFuaWZlc3QudA== 100644
--- a/tests/test-treemanifest.t
+++ b/tests/test-treemanifest.t
@@ -832,7 +832,8 @@
 
 Packed bundle
   $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
-  writing 5330 bytes for 18 files
+  writing 5330 bytes for 18 files (no-zstd !)
+  writing 5400 bytes for 18 files (zstd !)
   bundle requirements: generaldelta, revlogv1, sparserevlog, treemanifest
   $ hg debugbundle --spec repo-packed.hg
   none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog%2Ctreemanifest
diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA==..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA== 100644
--- a/tests/test-upgrade-repo.t
+++ b/tests/test-upgrade-repo.t
@@ -78,7 +78,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zlib   zlib    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat --verbose --config format.usefncache=no
   format-variant     repo config default
@@ -91,7 +92,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zlib   zlib    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat --verbose --config format.usefncache=no --color=debug
   format-variant     repo config default
@@ -104,7 +106,8 @@
   [formatvariant.name.uptodate|copies-sdc:        ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   [formatvariant.name.uptodate|revlog-v2:         ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   [formatvariant.name.uptodate|plain-cl-delta:    ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
-  [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
+  [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib] (no-zstd !)
+  [formatvariant.name.mismatchdefault|compression:       ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special|   zlib][formatvariant.default|    zstd] (zstd !)
   [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
   $ hg debugformat -Tjson
   [
@@ -164,7 +167,8 @@
    },
    {
     "config": "zlib",
-    "default": "zlib",
+    "default": "zlib", (no-zstd !)
+    "default": "zstd", (zstd !)
     "name": "compression",
     "repo": "zlib"
    },
@@ -323,7 +327,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zlib   zlib    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat --verbose --config format.usegeneraldelta=no
   format-variant     repo config default
@@ -336,7 +341,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zlib   zlib    zstd (zstd !)
   compression-level:  default default default
   $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
   format-variant     repo config default
@@ -349,7 +355,8 @@
   [formatvariant.name.uptodate|copies-sdc:        ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   [formatvariant.name.uptodate|revlog-v2:         ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   [formatvariant.name.uptodate|plain-cl-delta:    ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
-  [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
+  [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib] (no-zstd !)
+  [formatvariant.name.mismatchdefault|compression:       ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special|   zlib][formatvariant.default|    zstd] (zstd !)
   [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
   $ hg debugupgraderepo
   repository lacks features recommended by current config options:
@@ -1293,7 +1300,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zstd   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zlib    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
@@ -1329,7 +1337,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zlib   zlib    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zlib   zlib    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
@@ -1368,7 +1377,8 @@
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
-  compression:        zstd   zstd    zlib
+  compression:        zlib   zlib    zlib (no-zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
@@ -1413,7 +1423,7 @@
   revlog-v2:          yes     no      no
   plain-cl-delta:     yes    yes     yes
   compression:        zlib   zlib    zlib (no-zstd !)
-  compression:        zstd   zstd    zlib (zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
@@ -1457,7 +1467,7 @@
   revlog-v2:           no     no      no
   plain-cl-delta:     yes    yes     yes
   compression:        zlib   zlib    zlib (no-zstd !)
-  compression:        zstd   zstd    zlib (zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
@@ -1501,7 +1511,7 @@
   revlog-v2:          yes    yes      no
   plain-cl-delta:     yes    yes     yes
   compression:        zlib   zlib    zlib (no-zstd !)
-  compression:        zstd   zstd    zlib (zstd !)
+  compression:        zstd   zstd    zstd (zstd !)
   compression-level:  default default default
   $ cat .hg/requires
   dotencode
diff --git a/tests/test-wireproto-command-rawstorefiledata.t b/tests/test-wireproto-command-rawstorefiledata.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC13aXJlcHJvdG8tY29tbWFuZC1yYXdzdG9yZWZpbGVkYXRhLnQ=..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC13aXJlcHJvdG8tY29tbWFuZC1yYXdzdG9yZWZpbGVkYXRhLnQ= 100644
--- a/tests/test-wireproto-command-rawstorefiledata.t
+++ b/tests/test-wireproto-command-rawstorefiledata.t
@@ -56,8 +56,9 @@
   response: gen[
     {
       b'filecount': 1,
-      b'totalsize': 527
+      b'totalsize': 527 (no-zstd !)
+      b'totalsize': 530 (zstd !)
     },
     {
       b'location': b'store',
       b'path': b'00changelog.i',
@@ -60,6 +61,7 @@
     },
     {
       b'location': b'store',
       b'path': b'00changelog.i',
-      b'size': 527
+      b'size': 527 (no-zstd !)
+      b'size': 530 (zstd !)
     },
@@ -65,5 +67,6 @@
     },
-    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3',
+    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (no-zstd !)
+    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd WE\x02\x00r\x04\x0f\x14\x90\x01\x0e#\xf7h$;NQC%\xf8f\xd7\xb1\x81\x8d+\x01\x16+)5\xa8\x19\xdaA\xae\xe3\x00\xe9v\xe2l\x05v\x19\x11\xd4\xc1onK\xa2\x17c\xb4\xf3\xe7 z\x13\x8f\x1c\xf3j4\x03\x03\x00`\x06\x84\x8b\x1a\n\x14\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (zstd !)
     b''
   ]
 
@@ -78,8 +81,9 @@
   response: gen[
     {
       b'filecount': 1,
-      b'totalsize': 584
+      b'totalsize': 584 (no-zstd !)
+      b'totalsize': 588 (zstd !)
     },
     {
       b'location': b'store',
       b'path': b'00manifest.i',
@@ -82,6 +86,7 @@
     },
     {
       b'location': b'store',
       b'path': b'00manifest.i',
-      b'size': 584
+      b'size': 584 (no-zstd !)
+      b'size': 588 (zstd !)
     },
@@ -87,5 +92,6 @@
     },
-    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n',
+    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (no-zstd !)
+    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00H\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd V\xfd\x01\x00b\xc5\x0e\x0f\xc0\xd1\x00\xfb\x0c\xb9\xca\xdf\xb2R\xba!\xf2\xf6\x1d\x80\xd5\x95Yc\xef9DaT\xcefcM\xf1\x12\t\x84\xf3\x1a\x04\x04N\\\'S\xf2\'\x8cz5\xc5\x9f\xfa\x18\xf3\x82W\x1a\x83Y\xe8\xf0\x00\x00\x00\x00\x00\x00H\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x91\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd \xccE\x04\x00bK\x1e\x17\xb0A0\xff\xff\x9b\xb5V\x99\x99\xfa\xb6\xae\xf5n),"\xf1\n\x02\xb5\x07\x82++\xd1]T\x1b3\xaa\x8e\x10+)R\xa6\\\x9a\x10\xab+\xb4\x8bB\x9f\x13U\xd4\x98\xbd\xde \x9a\xf4\xd1}[\xfb{,q\x14Kf\x06\x1e\x10\xd6\x17\xbbl\x90\x16\xb9\xb3\xd8\x07\xee\xfc\xa8\x8eI\x10]\x9c\x1ava\x054W\xad\xdf\xb3\x18\xee\xbdd\x15\xdf$\x85St\n\xde\xee?\x91\xa0\x83\x11\x08\xd8\x01\x80\x10B\x04\x00\x04S\x04B\xc7Tw\x9f\xb9,\x00\x00\x00\x00\x01\x10\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (zstd !)
     b''
   ]
 
@@ -100,8 +106,9 @@
   response: gen[
     {
       b'filecount': 2,
-      b'totalsize': 1111
+      b'totalsize': 1111 (no-zstd !)
+      b'totalsize': 1118 (zstd !)
     },
     {
       b'location': b'store',
       b'path': b'00manifest.i',
@@ -104,6 +111,7 @@
     },
     {
       b'location': b'store',
       b'path': b'00manifest.i',
-      b'size': 584
+      b'size': 584 (no-zstd !)
+      b'size': 588 (zstd !)
     },
@@ -109,6 +117,7 @@
     },
-    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n',
+    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (no-zstd !)
+    b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00H\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd V\xfd\x01\x00b\xc5\x0e\x0f\xc0\xd1\x00\xfb\x0c\xb9\xca\xdf\xb2R\xba!\xf2\xf6\x1d\x80\xd5\x95Yc\xef9DaT\xcefcM\xf1\x12\t\x84\xf3\x1a\x04\x04N\\\'S\xf2\'\x8cz5\xc5\x9f\xfa\x18\xf3\x82W\x1a\x83Y\xe8\xf0\x00\x00\x00\x00\x00\x00H\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x91\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd \xccE\x04\x00bK\x1e\x17\xb0A0\xff\xff\x9b\xb5V\x99\x99\xfa\xb6\xae\xf5n),"\xf1\n\x02\xb5\x07\x82++\xd1]T\x1b3\xaa\x8e\x10+)R\xa6\\\x9a\x10\xab+\xb4\x8bB\x9f\x13U\xd4\x98\xbd\xde \x9a\xf4\xd1}[\xfb{,q\x14Kf\x06\x1e\x10\xd6\x17\xbbl\x90\x16\xb9\xb3\xd8\x07\xee\xfc\xa8\x8eI\x10]\x9c\x1ava\x054W\xad\xdf\xb3\x18\xee\xbdd\x15\xdf$\x85St\n\xde\xee?\x91\xa0\x83\x11\x08\xd8\x01\x80\x10B\x04\x00\x04S\x04B\xc7Tw\x9f\xb9,\x00\x00\x00\x00\x01\x10\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (zstd !)
     b'',
     {
       b'location': b'store',
       b'path': b'00changelog.i',
@@ -111,6 +120,7 @@
     b'',
     {
       b'location': b'store',
       b'path': b'00changelog.i',
-      b'size': 527
+      b'size': 527 (no-zstd !)
+      b'size': 530 (zstd !)
     },
@@ -116,5 +126,6 @@
     },
-    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3',
+    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (no-zstd !)
+    b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd WE\x02\x00r\x04\x0f\x14\x90\x01\x0e#\xf7h$;NQC%\xf8f\xd7\xb1\x81\x8d+\x01\x16+)5\xa8\x19\xdaA\xae\xe3\x00\xe9v\xe2l\x05v\x19\x11\xd4\xc1onK\xa2\x17c\xb4\xf3\xe7 z\x13\x8f\x1c\xf3j4\x03\x03\x00`\x06\x84\x8b\x1a\n\x14\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (zstd !)
     b''
   ]
 
diff --git a/tests/test-wireproto-exchangev2.t b/tests/test-wireproto-exchangev2.t
index fde033e2027d78dec114236b49e26d8315f5088d_dGVzdHMvdGVzdC13aXJlcHJvdG8tZXhjaGFuZ2V2Mi50..f69ea64c0cb1ae0a4fb7aed82b0396b4c93b6e35_dGVzdHMvdGVzdC13aXJlcHJvdG8tZXhjaGFuZ2V2Mi50 100644
--- a/tests/test-wireproto-exchangev2.t
+++ b/tests/test-wireproto-exchangev2.t
@@ -1099,7 +1099,8 @@
   $ cat clone-output | grep "received frame"
   received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
   received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
-  received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
+  received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (no-zstd !)
+  received frame(size=1283; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (zstd !)
   received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
   received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
   received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
@@ -1196,7 +1197,8 @@
   $ cat clone-output | grep "received frame"
   received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
   received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
-  received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
+  received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (no-zstd !)
+  received frame(size=1283; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (zstd !)
   received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
   received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
   received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)