Mercurial > public > mercurial-scm > hg-stable
comparison contrib/python-zstandard/tests/test_data_structures_fuzzing.py @ 43999:de7838053207
zstandard: vendor python-zstandard 0.13.0
Version 0.13.0 of the package was just released. It contains
an upgraded zstd C library which can result in some performance
wins, official support for Python 3.8, and a blackened code base.
There were no meaningful code or functionality changes in this
release of python-zstandard: just reformatting and an upgraded
zstd library version. So the diff seems much larger than what it
is.
Files were added without modifications.
The clang-format-ignorelist file was updated to reflect a new
header file in the zstd distribution.
# no-check-commit because 3rd party code has different style guidelines
Differential Revision: https://phab.mercurial-scm.org/D7770
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 28 Dec 2019 09:55:45 -0800 |
parents | 675775c33ab6 |
children | 5e84a96d865b |
comparison
equal
deleted
inserted
replaced
43998:873d0fecb9a3 | 43999:de7838053207 |
---|---|
5 | 5 |
6 try: | 6 try: |
7 import hypothesis | 7 import hypothesis |
8 import hypothesis.strategies as strategies | 8 import hypothesis.strategies as strategies |
9 except ImportError: | 9 except ImportError: |
10 raise unittest.SkipTest('hypothesis not available') | 10 raise unittest.SkipTest("hypothesis not available") |
11 | 11 |
12 import zstandard as zstd | 12 import zstandard as zstd |
13 | 13 |
14 from .common import ( | 14 from .common import ( |
15 make_cffi, | 15 make_cffi, |
16 TestCase, | |
16 ) | 17 ) |
17 | 18 |
18 | 19 |
19 s_windowlog = strategies.integers(min_value=zstd.WINDOWLOG_MIN, | 20 s_windowlog = strategies.integers( |
20 max_value=zstd.WINDOWLOG_MAX) | 21 min_value=zstd.WINDOWLOG_MIN, max_value=zstd.WINDOWLOG_MAX |
21 s_chainlog = strategies.integers(min_value=zstd.CHAINLOG_MIN, | 22 ) |
22 max_value=zstd.CHAINLOG_MAX) | 23 s_chainlog = strategies.integers( |
23 s_hashlog = strategies.integers(min_value=zstd.HASHLOG_MIN, | 24 min_value=zstd.CHAINLOG_MIN, max_value=zstd.CHAINLOG_MAX |
24 max_value=zstd.HASHLOG_MAX) | 25 ) |
25 s_searchlog = strategies.integers(min_value=zstd.SEARCHLOG_MIN, | 26 s_hashlog = strategies.integers(min_value=zstd.HASHLOG_MIN, max_value=zstd.HASHLOG_MAX) |
26 max_value=zstd.SEARCHLOG_MAX) | 27 s_searchlog = strategies.integers( |
27 s_minmatch = strategies.integers(min_value=zstd.MINMATCH_MIN, | 28 min_value=zstd.SEARCHLOG_MIN, max_value=zstd.SEARCHLOG_MAX |
28 max_value=zstd.MINMATCH_MAX) | 29 ) |
29 s_targetlength = strategies.integers(min_value=zstd.TARGETLENGTH_MIN, | 30 s_minmatch = strategies.integers( |
30 max_value=zstd.TARGETLENGTH_MAX) | 31 min_value=zstd.MINMATCH_MIN, max_value=zstd.MINMATCH_MAX |
31 s_strategy = strategies.sampled_from((zstd.STRATEGY_FAST, | 32 ) |
32 zstd.STRATEGY_DFAST, | 33 s_targetlength = strategies.integers( |
33 zstd.STRATEGY_GREEDY, | 34 min_value=zstd.TARGETLENGTH_MIN, max_value=zstd.TARGETLENGTH_MAX |
34 zstd.STRATEGY_LAZY, | 35 ) |
35 zstd.STRATEGY_LAZY2, | 36 s_strategy = strategies.sampled_from( |
36 zstd.STRATEGY_BTLAZY2, | 37 ( |
37 zstd.STRATEGY_BTOPT, | 38 zstd.STRATEGY_FAST, |
38 zstd.STRATEGY_BTULTRA, | 39 zstd.STRATEGY_DFAST, |
39 zstd.STRATEGY_BTULTRA2)) | 40 zstd.STRATEGY_GREEDY, |
41 zstd.STRATEGY_LAZY, | |
42 zstd.STRATEGY_LAZY2, | |
43 zstd.STRATEGY_BTLAZY2, | |
44 zstd.STRATEGY_BTOPT, | |
45 zstd.STRATEGY_BTULTRA, | |
46 zstd.STRATEGY_BTULTRA2, | |
47 ) | |
48 ) | |
40 | 49 |
41 | 50 |
42 @make_cffi | 51 @make_cffi |
43 @unittest.skipUnless('ZSTD_SLOW_TESTS' in os.environ, 'ZSTD_SLOW_TESTS not set') | 52 @unittest.skipUnless("ZSTD_SLOW_TESTS" in os.environ, "ZSTD_SLOW_TESTS not set") |
44 class TestCompressionParametersHypothesis(unittest.TestCase): | 53 class TestCompressionParametersHypothesis(TestCase): |
45 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog, | 54 @hypothesis.given( |
46 s_minmatch, s_targetlength, s_strategy) | 55 s_windowlog, |
47 def test_valid_init(self, windowlog, chainlog, hashlog, searchlog, | 56 s_chainlog, |
48 minmatch, targetlength, strategy): | 57 s_hashlog, |
49 zstd.ZstdCompressionParameters(window_log=windowlog, | 58 s_searchlog, |
50 chain_log=chainlog, | 59 s_minmatch, |
51 hash_log=hashlog, | 60 s_targetlength, |
52 search_log=searchlog, | 61 s_strategy, |
53 min_match=minmatch, | 62 ) |
54 target_length=targetlength, | 63 def test_valid_init( |
55 strategy=strategy) | 64 self, windowlog, chainlog, hashlog, searchlog, minmatch, targetlength, strategy |
65 ): | |
66 zstd.ZstdCompressionParameters( | |
67 window_log=windowlog, | |
68 chain_log=chainlog, | |
69 hash_log=hashlog, | |
70 search_log=searchlog, | |
71 min_match=minmatch, | |
72 target_length=targetlength, | |
73 strategy=strategy, | |
74 ) | |
56 | 75 |
57 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog, | 76 @hypothesis.given( |
58 s_minmatch, s_targetlength, s_strategy) | 77 s_windowlog, |
59 def test_estimated_compression_context_size(self, windowlog, chainlog, | 78 s_chainlog, |
60 hashlog, searchlog, | 79 s_hashlog, |
61 minmatch, targetlength, | 80 s_searchlog, |
62 strategy): | 81 s_minmatch, |
63 if minmatch == zstd.MINMATCH_MIN and strategy in (zstd.STRATEGY_FAST, zstd.STRATEGY_GREEDY): | 82 s_targetlength, |
83 s_strategy, | |
84 ) | |
85 def test_estimated_compression_context_size( | |
86 self, windowlog, chainlog, hashlog, searchlog, minmatch, targetlength, strategy | |
87 ): | |
88 if minmatch == zstd.MINMATCH_MIN and strategy in ( | |
89 zstd.STRATEGY_FAST, | |
90 zstd.STRATEGY_GREEDY, | |
91 ): | |
64 minmatch += 1 | 92 minmatch += 1 |
65 elif minmatch == zstd.MINMATCH_MAX and strategy != zstd.STRATEGY_FAST: | 93 elif minmatch == zstd.MINMATCH_MAX and strategy != zstd.STRATEGY_FAST: |
66 minmatch -= 1 | 94 minmatch -= 1 |
67 | 95 |
68 p = zstd.ZstdCompressionParameters(window_log=windowlog, | 96 p = zstd.ZstdCompressionParameters( |
69 chain_log=chainlog, | 97 window_log=windowlog, |
70 hash_log=hashlog, | 98 chain_log=chainlog, |
71 search_log=searchlog, | 99 hash_log=hashlog, |
72 min_match=minmatch, | 100 search_log=searchlog, |
73 target_length=targetlength, | 101 min_match=minmatch, |
74 strategy=strategy) | 102 target_length=targetlength, |
103 strategy=strategy, | |
104 ) | |
75 size = p.estimated_compression_context_size() | 105 size = p.estimated_compression_context_size() |
76 |