diff options
| author | Nathan Moinvaziri <nathan@nathanm.com> | 2026-01-10 10:29:05 -0800 |
|---|---|---|
| committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2026-01-13 18:43:50 +0100 |
| commit | 69f8f4ed0a18215044713236cd908406fecb84dc (patch) | |
| tree | aa8f3e144757bff6de1f8a5a6a61ebbfa9bb6787 /test | |
| parent | 2a208327a47d535e16caf3cec1c12c6268298bc5 (diff) | |
| download | Project-Tick-69f8f4ed0a18215044713236cd908406fecb84dc.tar.gz Project-Tick-69f8f4ed0a18215044713236cd908406fecb84dc.zip | |
Merge adler32 and crc32 hash test strings.
Diffstat (limited to 'test')
| -rw-r--r-- | test/crc32_test_strings_p.h | 194 | ||||
| -rw-r--r-- | test/hash_test_strings_p.h (renamed from test/adler32_test_strings_p.h) | 356 | ||||
| -rw-r--r-- | test/test_adler32.cc | 10 | ||||
| -rw-r--r-- | test/test_adler32_copy.cc | 20 | ||||
| -rw-r--r-- | test/test_crc32.cc | 10 | ||||
| -rw-r--r-- | test/test_crc32_copy.cc | 20 |
6 files changed, 230 insertions, 380 deletions
diff --git a/test/crc32_test_strings_p.h b/test/crc32_test_strings_p.h deleted file mode 100644 index c1a15f0b2f..0000000000 --- a/test/crc32_test_strings_p.h +++ /dev/null @@ -1,194 +0,0 @@ -#ifndef CRC32_TEST_STRINGS_P_H -#define CRC32_TEST_STRINGS_P_H - -ALIGNED_(16) static uint8_t crc32_fullwin_buf[615336]; - -static uint8_t* crc32_setup_buf() { - for (int i = 0; i < 615336; ++i) { - uint8_t ic = (uint8_t)(i % 256); - crc32_fullwin_buf[i] = ic; - } - - return crc32_fullwin_buf; -} - -static uint8_t *buf32k = crc32_setup_buf(); - -typedef struct { - unsigned long crc; - const uint8_t *buf; - size_t len; - unsigned long expect; -} crc32_test; - -/* (init-)crc, buf, len, expect(-crc) */ -static const crc32_test crc32_tests[] = { - {0x0, (const uint8_t *)0x0, 0, 0x0}, - {0xffffffff, (const uint8_t *)0x0, 0, 0x0}, - {0x0, (const uint8_t *)0x0, 255, 0x0}, /* BZ 174799. */ - {0x0, (const uint8_t *)0x0, 256, 0x0}, - {0x0, (const uint8_t *)0x0, 257, 0x0}, - {0x0, (const uint8_t *)0x0, 32767, 0x0}, - {0x0, (const uint8_t *)0x0, 32768, 0x0}, - {0x0, (const uint8_t *)0x0, 32769, 0x0}, - {0x0, (const uint8_t *)"", 0, 0x0}, - {0xffffffff, (const uint8_t *)"", 0, 0xffffffff}, - {0x0, (const uint8_t *)"abacus", 6, 0xc3d7115b}, - {0x0, (const uint8_t *)"backlog", 7, 0x269205}, - {0x0, (const uint8_t *)"campfire", 8, 0x22a515f8}, - {0x0, (const uint8_t *)"delta", 5, 0x9643fed9}, - {0x0, (const uint8_t *)"executable", 10, 0xd68eda01}, - {0x0, (const uint8_t *)"file", 4, 0x8c9f3610}, - {0x0, (const uint8_t *)"greatest", 8, 0xc1abd6cd}, - {0x0, (const uint8_t *)"hello", 5, 0x3610a686}, - {0x0, (const uint8_t *)"inverter", 8, 0xc9e962c9}, - {0x0, (const uint8_t *)"jigsaw", 6, 0xce4e3f69}, - {0x0, (const uint8_t *)"karate", 6, 0x890be0e2}, - {0x0, (const uint8_t *)"landscape", 9, 0xc4e0330b}, - {0x0, (const uint8_t *)"machine", 7, 0x1505df84}, - {0x0, (const uint8_t *)"nanometer", 9, 0xd4e19f39}, - {0x0, (const uint8_t *)"oblivion", 8, 0xdae9de77}, - {0x0, (const uint8_t *)"panama", 6, 0x66b8979c}, - {0x0, (const uint8_t *)"quest", 5, 0x4317f817}, - {0x0, (const uint8_t *)"resource", 8, 0xbc91f416}, - {0x0, (const uint8_t *)"secret", 6, 0x5ca2e8e5}, - {0x0, (const uint8_t *)"test", 4, 0xd87f7e0c}, - {0x0, (const uint8_t *)"ultimate", 8, 0x3fc79b0b}, - {0x0, (const uint8_t *)"vector", 6, 0x1b6e485b}, - {0x0, (const uint8_t *)"walrus", 6, 0xbe769b97}, - {0x0, (const uint8_t *)"xeno", 4, 0xe7a06444}, - {0x0, (const uint8_t *)"yelling", 7, 0xfe3944e5}, - {0x0, (const uint8_t *)"zlib", 4, 0x73887d3a}, - {0x0, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0xd487a5a1}, - {0x0, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0x61a0132e}, - {0x0, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdf02f76}, - {0x0, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x579b2b0a}, - {0x0, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xf7d16e2d}, - {0x0, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0x731788f5}, - {0x0, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0x7112bb11}, - {0x0, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xf32a0dac}, - {0x0, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0x625437bb}, - {0x0, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0x896930f9}, - {0x0, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0x8579a37}, - {0x0, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0x632aa8e0}, - {0x0, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0xc829af29}, - {0x0, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x1b08b7e8}, - {0x0, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x4e33b192}, - {0x0, (const uint8_t *)"70684206568419061514", 20, 0x59a179f0}, - {0x0, (const uint8_t *)"42015093765128581010", 20, 0xcd1013d7}, - {0x0, (const uint8_t *)"88214814356148806939", 20, 0xab927546}, - {0x0, (const uint8_t *)"43472694284527343838", 20, 0x11f3b20c}, - {0x0, (const uint8_t *)"49769333513942933689", 20, 0xd562d4ca}, - {0x0, (const uint8_t *)"54979784887993251199", 20, 0x233395f7}, - {0x0, (const uint8_t *)"58360544869206793220", 20, 0x2d167fd5}, - {0x0, (const uint8_t *)"27347953487840714234", 20, 0x8b5108ba}, - {0x0, (const uint8_t *)"07650690295365319082", 20, 0xc46b3cd8}, - {0x0, (const uint8_t *)"42655507906821911703", 20, 0xc10b2662}, - {0x0, (const uint8_t *)"29977409200786225655", 20, 0xc9a0f9d2}, - {0x0, (const uint8_t *)"85181542907229116674", 20, 0x9341357b}, - {0x0, (const uint8_t *)"87963594337989416799", 20, 0xf0424937}, - {0x0, (const uint8_t *)"21395988329504168551", 20, 0xd7c4c31f}, - {0x0, (const uint8_t *)"51991013580943379423", 20, 0xf11edcc4}, - {0x0, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x40795df4}, - {0x0, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0xdd61a631}, - {0x0, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xca907a99}, - {0x0, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0xf652deac}, - {0x0, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0xaf39a5a9}, - {0x0, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x6bebb4cf}, - {0x0, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0x76430bac}, - {0x0, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x6c80c388}, - {0x0, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xd54d977d}, - {0x0, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0xe3966ad5}, - {0x0, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xe7c71db9}, - {0x0, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xeaa52777}, - {0x0, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xcd472048}, - {0x7a30360d, (const uint8_t *)"abacus", 6, 0xf8655a84}, - {0x6fd767ee, (const uint8_t *)"backlog", 7, 0x1ed834b1}, - {0xefeb7589, (const uint8_t *)"campfire", 8, 0x686cfca}, - {0x61cf7e6b, (const uint8_t *)"delta", 5, 0x1554e4b1}, - {0xdc712e2, (const uint8_t *)"executable", 10, 0x761b4254}, - {0xad23c7fd, (const uint8_t *)"file", 4, 0x7abdd09b}, - {0x85cb2317, (const uint8_t *)"greatest", 8, 0x4ba91c6b}, - {0x9eed31b0, (const uint8_t *)"inverter", 8, 0xd5e78ba5}, - {0xb94f34ca, (const uint8_t *)"jigsaw", 6, 0x23649109}, - {0xab058a2, (const uint8_t *)"karate", 6, 0xc5591f41}, - {0x5bff2b7a, (const uint8_t *)"landscape", 9, 0xf10eb644}, - {0x605c9a5f, (const uint8_t *)"machine", 7, 0xbaa0a636}, - {0x51bdeea5, (const uint8_t *)"nanometer", 9, 0x6af89afb}, - {0x85c21c79, (const uint8_t *)"oblivion", 8, 0xecae222b}, - {0x97216f56, (const uint8_t *)"panama", 6, 0x47dffac4}, - {0x18444af2, (const uint8_t *)"quest", 5, 0x70c2fe36}, - {0xbe6ce359, (const uint8_t *)"resource", 8, 0x1471d925}, - {0x843071f1, (const uint8_t *)"secret", 6, 0x50c9a0db}, - {0xf2480c60, (const uint8_t *)"ultimate", 8, 0xf973daf8}, - {0x2d2feb3d, (const uint8_t *)"vector", 6, 0x344ac03d}, - {0x7490310a, (const uint8_t *)"walrus", 6, 0x6d1408ef}, - {0x97d247d4, (const uint8_t *)"xeno", 4, 0xe62670b5}, - {0x93cf7599, (const uint8_t *)"yelling", 7, 0x1b36da38}, - {0x73c84278, (const uint8_t *)"zlib", 4, 0x6432d127}, - {0x228a87d1, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0x997107d0}, - {0xa7a048d0, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0xdc567274}, - {0x1f0ded40, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdcc63870}, - {0xa804a62f, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x6926cffd}, - {0x508fae6a, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xb52b38bc}, - {0xe5adaf4f, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0xf83b8178}, - {0x67136a40, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0xc5213070}, - {0xb00c4a10, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xbc7648b0}, - {0x2e0c84b5, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0xd8123a72}, - {0x81238d44, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0xd5ac5620}, - {0xf853aa92, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0xceae099d}, - {0x5a692325, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0xb07d2b24}, - {0x3275b9f, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0x24ce91df}, - {0x38371feb, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x707b3b30}, - {0xafc8bf62, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x16abc6a9}, - {0x9b07db73, (const uint8_t *)"70684206568419061514", 20, 0xae1fb7b7}, - {0xe75b214, (const uint8_t *)"42015093765128581010", 20, 0xd4eecd2d}, - {0x72d0fe6f, (const uint8_t *)"88214814356148806939", 20, 0x4660ec7}, - {0xf857a4b1, (const uint8_t *)"43472694284527343838", 20, 0xfd8afdf7}, - {0x54b8e14, (const uint8_t *)"49769333513942933689", 20, 0xc6d1b5f2}, - {0xd6aa5616, (const uint8_t *)"54979784887993251199", 20, 0x32476461}, - {0x11e63098, (const uint8_t *)"58360544869206793220", 20, 0xd917cf1a}, - {0xbe92385, (const uint8_t *)"27347953487840714234", 20, 0x4ad14a12}, - {0x49511de0, (const uint8_t *)"07650690295365319082", 20, 0xe37b5c6c}, - {0x3db13bc1, (const uint8_t *)"42655507906821911703", 20, 0x7cc497f1}, - {0xbb899bea, (const uint8_t *)"29977409200786225655", 20, 0x99781bb2}, - {0xf6cd9436, (const uint8_t *)"85181542907229116674", 20, 0x132256a1}, - {0x9109e6c3, (const uint8_t *)"87963594337989416799", 20, 0xbfdb2c83}, - {0x75770fc, (const uint8_t *)"21395988329504168551", 20, 0x8d9d1e81}, - {0x69b1d19b, (const uint8_t *)"51991013580943379423", 20, 0x7b6d4404}, - {0xc6132975, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x8619f010}, - {0xd58cb00c, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0x15746ac3}, - {0xb63b8caa, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xaccf812f}, - {0x8a45a2b8, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0x78af45de}, - {0xcbe95b78, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0x25b06b59}, - {0x4ef8a54b, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x4ba0d08f}, - {0x76ad267a, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0xe26b6aac}, - {0x569e613c, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x7e2b0a66}, - {0x36aa61da, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xb3430dc7}, - {0xf67222df, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0x626c17a}, - {0x74b34fd3, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xccf98060}, - {0x351fd770, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xd8b95312}, - {0xc45aef77, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xbb1c9912}, - {0xc45aef77, (const uint8_t *) - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" - "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 600, 0x888AFA5B}, - {0x0, buf32k, 32768, 0x217726B2}, - {0x0, buf32k, 16384, 0xE81722F0}, - {0x0, buf32k, 118960+512, 0xF0D2C66F}, - {0x0, buf32k, 615078, 0x6A023677}, - {0x0, buf32k, 615142, 0x8A1B2FC5}, - {0x0, buf32k, 615270, 0xAF836355}, - {0x0, buf32k, 615302, 0x42E83C6C}, - {0x0, buf32k, 615318, 0x563BCB26}, - {0x0, buf32k, 615326, 0xD39DEA79}, - {0x0, buf32k, 615330, 0xEC355488}, - {0x0, buf32k, 615334, 0x391AB77C}, - {0x0, buf32k, 615335, 0xB43DCEF0}, - {0x0, buf32k, 615336, 0x27b91614} -}; - -#endif /* CRC32_TEST_STRINGS_P_H */ diff --git a/test/adler32_test_strings_p.h b/test/hash_test_strings_p.h index 6f2f514a1c..622b32968d 100644 --- a/test/adler32_test_strings_p.h +++ b/test/hash_test_strings_p.h @@ -1,12 +1,20 @@ -#ifndef ADLER32_TEST_STRINGS_P_H -#define ADLER32_TEST_STRINGS_P_H +#ifndef HASH_TEST_STRINGS_P_H +#define HASH_TEST_STRINGS_P_H -typedef struct { - uint32_t adler; - const uint8_t *buf; - uint32_t len; - uint32_t expect; -} adler32_test; +#define HASH_TEST_MAX_LENGTH 615336U + +ALIGNED_(16) static uint8_t hash_fullwin_buf[HASH_TEST_MAX_LENGTH]; + +static uint8_t* hash_setup_big_buf() { + for (size_t i = 0; i < HASH_TEST_MAX_LENGTH; ++i) { + uint8_t ic = (uint8_t)(i % 256); + hash_fullwin_buf[i] = ic; + } + + return hash_fullwin_buf; +} + +static uint8_t *big_test = hash_setup_big_buf(); static const uint8_t long_string[5552] = { 'q','j','d','w','q','4','8','m','B','u','k','J','V','U','z','V','V','f','M','j','i','q','S','W','L','5','G','n','F','S','P','Q', @@ -184,149 +192,193 @@ static const uint8_t long_string[5552] = { '6','a','z','Z','a','t','f','p','4','v','J','Y','j','h','M','D','t','k','A','B','p','Q','A','y','x','X','7','p','S','8','m','M', 'y','K','B','A','5','2','7','b','y','R','K','q','A','u','3','J'}; -static const adler32_test tests[] = { - {0x1, (const uint8_t *)0x0, 0, 0x1}, - {0x1, (const uint8_t *)"", 1, 0x10001}, - {0x1, (const uint8_t *)"a", 1, 0x620062}, - {0x1, (const uint8_t *)"abacus", 6, 0x8400270}, - {0x1, (const uint8_t *)"backlog", 7, 0xb1f02d4}, - {0x1, (const uint8_t *)"campfire", 8, 0xea10348}, - {0x1, (const uint8_t *)"delta", 5, 0x61a020b}, - {0x1, (const uint8_t *)"executable", 10, 0x16fa0423}, - {0x1, (const uint8_t *)"file", 4, 0x41401a1}, - {0x1, (const uint8_t *)"greatest", 8, 0xefa0360}, - {0x1, (const uint8_t *)"inverter", 8, 0xf6f0370}, - {0x1, (const uint8_t *)"jigsaw", 6, 0x8bd0286}, - {0x1, (const uint8_t *)"karate", 6, 0x8a50279}, - {0x1, (const uint8_t *)"landscape", 9, 0x126a03ac}, - {0x1, (const uint8_t *)"machine", 7, 0xb5302d6}, - {0x1, (const uint8_t *)"nanometer", 9, 0x12d803ca}, - {0x1, (const uint8_t *)"oblivion", 8, 0xf220363}, - {0x1, (const uint8_t *)"panama", 6, 0x8a1026f}, - {0x1, (const uint8_t *)"quest", 5, 0x6970233}, - {0x1, (const uint8_t *)"resource", 8, 0xf8d0369}, - {0x1, (const uint8_t *)"secret", 6, 0x8d10287}, - {0x1, (const uint8_t *)"ultimate", 8, 0xf8d0366}, - {0x1, (const uint8_t *)"vector", 6, 0x8fb0294}, - {0x1, (const uint8_t *)"walrus", 6, 0x918029f}, - {0x1, (const uint8_t *)"xeno", 4, 0x45e01bb}, - {0x1, (const uint8_t *)"yelling", 7, 0xbfe02f5}, - {0x1, (const uint8_t *)"zero", 4, 0x46e01c1}, - {0x1, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0x3eef064d}, - {0x1, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0x425d065f}, - {0x1, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0x4f1a073e}, - {0x1, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x42290650}, - {0x1, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0x43fd0690}, - {0x1, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0x3f770609}, - {0x1, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0x4c7c0703}, - {0x1, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0x48ac06b7}, - {0x1, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0x489a0698}, - {0x1, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0x44a906e6}, - {0x1, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0x4a29071c}, - {0x1, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0x4a7706f9}, - {0x1, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0x4ce60769}, - {0x1, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x48ae06e5}, - {0x1, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x51d60750}, - {0x1, (const uint8_t *)"70684206568419061514", 20, 0x2b100414}, - {0x1, (const uint8_t *)"42015093765128581010", 20, 0x2a550405}, - {0x1, (const uint8_t *)"88214814356148806939", 20, 0x2b450423}, - {0x1, (const uint8_t *)"43472694284527343838", 20, 0x2b460421}, - {0x1, (const uint8_t *)"49769333513942933689", 20, 0x2bc1042b}, - {0x1, (const uint8_t *)"54979784887993251199", 20, 0x2ccd043d}, - {0x1, (const uint8_t *)"58360544869206793220", 20, 0x2b68041a}, - {0x1, (const uint8_t *)"27347953487840714234", 20, 0x2b84041d}, - {0x1, (const uint8_t *)"07650690295365319082", 20, 0x2afa0417}, - {0x1, (const uint8_t *)"42655507906821911703", 20, 0x2aff0412}, - {0x1, (const uint8_t *)"29977409200786225655", 20, 0x2b8d0420}, - {0x1, (const uint8_t *)"85181542907229116674", 20, 0x2b140419}, - {0x1, (const uint8_t *)"87963594337989416799", 20, 0x2c8e043f}, - {0x1, (const uint8_t *)"21395988329504168551", 20, 0x2b68041f}, - {0x1, (const uint8_t *)"51991013580943379423", 20, 0x2af10417}, - {0x1, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x7c9d0841}, - {0x1, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0x71060751}, - {0x1, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0x7095070a}, - {0x1, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0x82530815}, - {0x1, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0x61250661}, - {0x1, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x642006a3}, - {0x1, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0x674206cb}, - {0x1, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x67670680}, - {0x1, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0x7547070f}, - {0x1, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0x69ea06ee}, - {0x1, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0x1b01e92}, - {0x1, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xfbdb1e96}, - {0x1, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0x47a61ec8}, - {0x1, (const uint8_t *)long_string, 5552, 0x8b81718f}, - {0x7a30360d, (const uint8_t *)0x0, 0, 0x1}, - {0x6fd767ee, (const uint8_t *)"", 1, 0xd7c567ee}, - {0xefeb7589, (const uint8_t *)"a", 1, 0x65e475ea}, - {0x61cf7e6b, (const uint8_t *)"abacus", 6, 0x60b880da}, - {0xdc712e2, (const uint8_t *)"backlog", 7, 0x9d0d15b5}, - {0xad23c7fd, (const uint8_t *)"campfire", 8, 0xfbfecb44}, - {0x85cb2317, (const uint8_t *)"delta", 5, 0x3b622521}, - {0x9eed31b0, (const uint8_t *)"executable", 10, 0xa6db35d2}, - {0xb94f34ca, (const uint8_t *)"file", 4, 0x9096366a}, - {0xab058a2, (const uint8_t *)"greatest", 8, 0xded05c01}, - {0x5bff2b7a, (const uint8_t *)"inverter", 8, 0xc7452ee9}, - {0x605c9a5f, (const uint8_t *)"jigsaw", 6, 0x7899ce4}, - {0x51bdeea5, (const uint8_t *)"karate", 6, 0xf285f11d}, - {0x85c21c79, (const uint8_t *)"landscape", 9, 0x98732024}, - {0x97216f56, (const uint8_t *)"machine", 7, 0xadf4722b}, - {0x18444af2, (const uint8_t *)"nanometer", 9, 0xcdb34ebb}, - {0xbe6ce359, (const uint8_t *)"oblivion", 8, 0xe8b7e6bb}, - {0x843071f1, (const uint8_t *)"panama", 6, 0x389e745f}, - {0xf2480c60, (const uint8_t *)"quest", 5, 0x36c90e92}, - {0x2d2feb3d, (const uint8_t *)"resource", 8, 0x9705eea5}, - {0x7490310a, (const uint8_t *)"secret", 6, 0xa3a63390}, - {0x97d247d4, (const uint8_t *)"ultimate", 8, 0xe6154b39}, - {0x93cf7599, (const uint8_t *)"vector", 6, 0x5e87782c}, - {0x73c84278, (const uint8_t *)"walrus", 6, 0xbc84516}, - {0x228a87d1, (const uint8_t *)"xeno", 4, 0x4646898b}, - {0xa7a048d0, (const uint8_t *)"yelling", 7, 0xb1654bc4}, - {0x1f0ded40, (const uint8_t *)"zero", 4, 0xd8a4ef00}, - {0xa804a62f, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0xe34eac7b}, - {0x508fae6a, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0x33f2b4c8}, - {0xe5adaf4f, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xe7b1b68c}, - {0x67136a40, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0xf6a0708f}, - {0xb00c4a10, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xbd8f509f}, - {0x2e0c84b5, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0xcc298abd}, - {0x81238d44, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0xd7809446}, - {0xf853aa92, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0x9525b148}, - {0x5a692325, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0x620029bc}, - {0x3275b9f, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0x70916284}, - {0x38371feb, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0xd52706}, - {0xafc8bf62, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0xeeb4c65a}, - {0x9b07db73, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0xde3e2db}, - {0xe75b214, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x4171b8f8}, - {0x72d0fe6f, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0xa66a05cd}, - {0xf857a4b1, (const uint8_t *)"70684206568419061514", 20, 0x1f9a8c4}, - {0x54b8e14, (const uint8_t *)"42015093765128581010", 20, 0x49c19218}, - {0xd6aa5616, (const uint8_t *)"88214814356148806939", 20, 0xbbfc5a38}, - {0x11e63098, (const uint8_t *)"43472694284527343838", 20, 0x93434b8}, - {0xbe92385, (const uint8_t *)"49769333513942933689", 20, 0xfe1827af}, - {0x49511de0, (const uint8_t *)"54979784887993251199", 20, 0xcba8221c}, - {0x3db13bc1, (const uint8_t *)"58360544869206793220", 20, 0x14643fda}, - {0xbb899bea, (const uint8_t *)"27347953487840714234", 20, 0x1604a006}, - {0xf6cd9436, (const uint8_t *)"07650690295365319082", 20, 0xb69f984c}, - {0x9109e6c3, (const uint8_t *)"42655507906821911703", 20, 0xc43eead4}, - {0x75770fc, (const uint8_t *)"29977409200786225655", 20, 0x707751b}, - {0x69b1d19b, (const uint8_t *)"85181542907229116674", 20, 0xf5bdd5b3}, - {0xc6132975, (const uint8_t *)"87963594337989416799", 20, 0x2fed2db3}, - {0xd58cb00c, (const uint8_t *)"21395988329504168551", 20, 0xc2a2b42a}, - {0xb63b8caa, (const uint8_t *)"51991013580943379423", 20, 0xdf0590c0}, - {0x8a45a2b8, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x1980aaf8}, - {0xcbe95b78, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0xf58662c8}, - {0x4ef8a54b, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0x1f65ac54}, - {0x76ad267a, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0x7b792e8e}, - {0x569e613c, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0x1d61679c}, - {0x36aa61da, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x12ec687c}, - {0xf67222df, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0x740329a9}, - {0x74b34fd3, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x374c5652}, - {0x351fd770, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xeadfde7e}, - {0xc45aef77, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0x3fcbf664}, - {0xd034ea71, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0x6b080911}, - {0xdeadc0de, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0x355fdf73}, - {0xba5eba11, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xb48bd8d8}, - {0x7712aa45, (const uint8_t *)long_string, 5552, 0x7dc51be2}, +typedef struct { + uint32_t crc; + uint32_t adler; + const uint8_t *buf; + uint32_t len; + uint32_t expect_crc; + uint32_t expect_adler; +} hash_test; + +static const hash_test hash_tests[] = { + {0x0, 0x0, (const uint8_t *)0x0, 0, 0x0, 0x1}, + {0xffffffff, 0xffffffff, (const uint8_t *)0x0, 0, 0x0, 0x1}, + {0x0, 0x0, (const uint8_t *)0x0, 255, 0x0, 0x1}, /* BZ 174799. */ + {0x0, 0x0, (const uint8_t *)0x0, 256, 0x0, 0x1}, + {0x0, 0x0, (const uint8_t *)0x0, 257, 0x0, 0x1}, + {0x0, 0x0, (const uint8_t *)0x0, 32767, 0x0, 0x1}, + {0x0, 0x0, (const uint8_t *)0x0, 32768, 0x0, 0x1}, + {0x0, 0x0, (const uint8_t *)0x0, 32769, 0x0, 0x1}, + {0x0, 0x1, (const uint8_t *)"", 0, 0x0, 0x1}, + {0x0, 0x1, (const uint8_t *)"", 1, 0xd202ef8d, 0x10001}, + {0xffffffff, 0xffffffff, (const uint8_t *)"", 0, 0xffffffff, 0x000e000e}, + {0x0, 0x1, (const uint8_t *)"a", 1, 0xe8b7be43, 0x00620062}, + {0x0, 0x1, (const uint8_t *)"abacus", 6, 0xc3d7115b, 0x8400270}, + {0x0, 0x1, (const uint8_t *)"backlog", 7, 0x269205, 0xb1f02d4}, + {0x0, 0x1, (const uint8_t *)"campfire", 8, 0x22a515f8, 0xea10348}, + {0x0, 0x1, (const uint8_t *)"delta", 5, 0x9643fed9, 0x61a020b}, + {0x0, 0x1, (const uint8_t *)"executable", 10, 0xd68eda01, 0x16fa0423}, + {0x0, 0x1, (const uint8_t *)"file", 4, 0x8c9f3610, 0x41401a1}, + {0x0, 0x1, (const uint8_t *)"greatest", 8, 0xc1abd6cd, 0xefa0360}, + {0x0, 0x1, (const uint8_t *)"hello", 5, 0x3610a686, 0x062c0215}, + {0x0, 0x1, (const uint8_t *)"inverter", 8, 0xc9e962c9, 0xf6f0370}, + {0x0, 0x1, (const uint8_t *)"jigsaw", 6, 0xce4e3f69, 0x8bd0286}, + {0x0, 0x1, (const uint8_t *)"karate", 6, 0x890be0e2, 0x8a50279}, + {0x0, 0x1, (const uint8_t *)"landscape", 9, 0xc4e0330b, 0x126a03ac}, + {0x0, 0x1, (const uint8_t *)"machine", 7, 0x1505df84, 0xb5302d6}, + {0x0, 0x1, (const uint8_t *)"nanometer", 9, 0xd4e19f39, 0x12d803ca}, + {0x0, 0x1, (const uint8_t *)"oblivion", 8, 0xdae9de77, 0xf220363}, + {0x0, 0x1, (const uint8_t *)"panama", 6, 0x66b8979c, 0x8a1026f}, + {0x0, 0x1, (const uint8_t *)"quest", 5, 0x4317f817, 0x6970233}, + {0x0, 0x1, (const uint8_t *)"resource", 8, 0xbc91f416, 0xf8d0369}, + {0x0, 0x1, (const uint8_t *)"secret", 6, 0x5ca2e8e5, 0x8d10287}, + {0x0, 0x1, (const uint8_t *)"test", 4, 0xd87f7e0c, 0x045d01c1}, + {0x0, 0x1, (const uint8_t *)"ultimate", 8, 0x3fc79b0b, 0xf8d0366}, + {0x0, 0x1, (const uint8_t *)"vector", 6, 0x1b6e485b, 0x8fb0294}, + {0x0, 0x1, (const uint8_t *)"walrus", 6, 0xbe769b97, 0x918029f}, + {0x0, 0x1, (const uint8_t *)"xeno", 4, 0xe7a06444, 0x45e01bb}, + {0x0, 0x1, (const uint8_t *)"yelling", 7, 0xfe3944e5, 0xbfe02f5}, + {0x0, 0x1, (const uint8_t *)"zero", 4, 0xabdef192, 0x046e01c1}, + {0x0, 0x1, (const uint8_t *)"zlib", 4, 0x73887d3a, 0x046401b2}, + {0x0, 0x1, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0xd487a5a1, 0x3eef064d}, + {0x0, 0x1, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0x61a0132e, 0x425d065f}, + {0x0, 0x1, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdf02f76, 0x4f1a073e}, + {0x0, 0x1, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x579b2b0a, 0x42290650}, + {0x0, 0x1, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xf7d16e2d, 0x43fd0690}, + {0x0, 0x1, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0x731788f5, 0x3f770609}, + {0x0, 0x1, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0x7112bb11, 0x4c7c0703}, + {0x0, 0x1, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xf32a0dac, 0x48ac06b7}, + {0x0, 0x1, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0x625437bb, 0x489a0698}, + {0x0, 0x1, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0x896930f9, 0x44a906e6}, + {0x0, 0x1, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0x8579a37, 0x4a29071c}, + {0x0, 0x1, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0x632aa8e0, 0x4a7706f9}, + {0x0, 0x1, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0xc829af29, 0x4ce60769}, + {0x0, 0x1, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x1b08b7e8, 0x48ae06e5}, + {0x0, 0x1, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x4e33b192, 0x51d60750}, + {0x0, 0x1, (const uint8_t *)"70684206568419061514", 20, 0x59a179f0, 0x2b100414}, + {0x0, 0x1, (const uint8_t *)"42015093765128581010", 20, 0xcd1013d7, 0x2a550405}, + {0x0, 0x1, (const uint8_t *)"88214814356148806939", 20, 0xab927546, 0x2b450423}, + {0x0, 0x1, (const uint8_t *)"43472694284527343838", 20, 0x11f3b20c, 0x2b460421}, + {0x0, 0x1, (const uint8_t *)"49769333513942933689", 20, 0xd562d4ca, 0x2bc1042b}, + {0x0, 0x1, (const uint8_t *)"54979784887993251199", 20, 0x233395f7, 0x2ccd043d}, + {0x0, 0x1, (const uint8_t *)"58360544869206793220", 20, 0x2d167fd5, 0x2b68041a}, + {0x0, 0x1, (const uint8_t *)"27347953487840714234", 20, 0x8b5108ba, 0x2b84041d}, + {0x0, 0x1, (const uint8_t *)"07650690295365319082", 20, 0xc46b3cd8, 0x2afa0417}, + {0x0, 0x1, (const uint8_t *)"42655507906821911703", 20, 0xc10b2662, 0x2aff0412}, + {0x0, 0x1, (const uint8_t *)"29977409200786225655", 20, 0xc9a0f9d2, 0x2b8d0420}, + {0x0, 0x1, (const uint8_t *)"85181542907229116674", 20, 0x9341357b, 0x2b140419}, + {0x0, 0x1, (const uint8_t *)"87963594337989416799", 20, 0xf0424937, 0x2c8e043f}, + {0x0, 0x1, (const uint8_t *)"21395988329504168551", 20, 0xd7c4c31f, 0x2b68041f}, + {0x0, 0x1, (const uint8_t *)"51991013580943379423", 20, 0xf11edcc4, 0x2af10417}, + {0x0, 0x1, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x40795df4, 0x7c9d0841}, + {0x0, 0x1, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0xdd61a631, 0x71060751}, + {0x0, 0x1, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xca907a99, 0x7095070a}, + {0x0, 0x1, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0xf652deac, 0x82530815}, + {0x0, 0x1, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0xaf39a5a9, 0x61250661}, + {0x0, 0x1, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x6bebb4cf, 0x642006a3}, + {0x0, 0x1, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0x76430bac, 0x674206cb}, + {0x0, 0x1, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x6c80c388, 0x67670680}, + {0x0, 0x1, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xd54d977d, 0x7547070f}, + {0x0, 0x1, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0xe3966ad5, 0x69ea06ee}, + {0x0, 0x1, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xe7c71db9, 0x1b01e92}, + {0x0, 0x1, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xeaa52777, 0xfbdb1e96}, + {0x0, 0x1, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xcd472048, 0x47a61ec8}, + {0x0, 0x1, (const uint8_t *)long_string, 5552, 0x426fa73b, 0x8b81718f}, + {0x0, 0x7a30360d, (const uint8_t *)0x0, 0, 0x0, 0x1}, + {0x7a30360d, 0x1, (const uint8_t *)"abacus", 6, 0xf8655a84, 0x8400270}, + {0x6fd767ee, 0x6fd767ee, (const uint8_t *)"", 1, 0x95dff795, 0xd7c567ee}, + {0x0, 0xefeb7589, (const uint8_t *)"a", 1, 0xe8b7be43, 0x65e475ea}, + {0x0, 0x61cf7e6b, (const uint8_t *)"abacus", 6, 0xc3d7115b, 0x60b880da}, + {0x6fd767ee, 0x1, (const uint8_t *)"backlog", 7, 0x1ed834b1, 0xb1f02d4}, + {0xefeb7589, 0xdc712e2, (const uint8_t *)"backlog", 7, 0x975f06f6, 0x9d0d15b5}, + {0x0, 0xad23c7fd, (const uint8_t *)"campfire", 8, 0x22a515f8, 0xfbfecb44}, + {0xefeb7589, 0x1, (const uint8_t *)"campfire", 8, 0x686cfca, 0xea10348}, + {0x61cf7e6b, 0x85cb2317, (const uint8_t *)"delta", 5, 0x1554e4b1, 0x3b622521}, + {0xdc712e2, 0x9eed31b0, (const uint8_t *)"executable", 10, 0x761b4254, 0xa6db35d2}, + {0xad23c7fd, 0xb94f34ca, (const uint8_t *)"file", 4, 0x7abdd09b, 0x9096366a}, + {0x85cb2317, 0xab058a2, (const uint8_t *)"greatest", 8, 0x4ba91c6b, 0xded05c01}, + {0x9eed31b0, 0x5bff2b7a, (const uint8_t *)"inverter", 8, 0xd5e78ba5, 0xc7452ee9}, + {0xb94f34ca, 0x605c9a5f, (const uint8_t *)"jigsaw", 6, 0x23649109, 0x7899ce4}, + {0xab058a2, 0x51bdeea5, (const uint8_t *)"karate", 6, 0xc5591f41, 0xf285f11d}, + {0x5bff2b7a, 0x85c21c79, (const uint8_t *)"landscape", 9, 0xf10eb644, 0x98732024}, + {0x605c9a5f, 0x97216f56, (const uint8_t *)"machine", 7, 0xbaa0a636, 0xadf4722b}, + {0x51bdeea5, 0x18444af2, (const uint8_t *)"nanometer", 9, 0x6af89afb, 0xcdb34ebb}, + {0x85c21c79, 0xbe6ce359, (const uint8_t *)"oblivion", 8, 0xecae222b, 0xe8b7e6bb}, + {0x97216f56, 0x843071f1, (const uint8_t *)"panama", 6, 0x47dffac4, 0x389e745f}, + {0x18444af2, 0xf2480c60, (const uint8_t *)"quest", 5, 0x70c2fe36, 0x36c90e92}, + {0xbe6ce359, 0x2d2feb3d, (const uint8_t *)"resource", 8, 0x1471d925, 0x9705eea5}, + {0x843071f1, 0x7490310a, (const uint8_t *)"secret", 6, 0x50c9a0db, 0xa3a63390}, + {0xf2480c60, 0x97d247d4, (const uint8_t *)"ultimate", 8, 0xf973daf8, 0xe6154b39}, + {0x2d2feb3d, 0x93cf7599, (const uint8_t *)"vector", 6, 0x344ac03d, 0x5e87782c}, + {0x7490310a, 0x73c84278, (const uint8_t *)"walrus", 6, 0x6d1408ef, 0xbc84516}, + {0x97d247d4, 0x228a87d1, (const uint8_t *)"xeno", 4, 0xe62670b5, 0x4646898b}, + {0x93cf7599, 0xa7a048d0, (const uint8_t *)"yelling", 7, 0x1b36da38, 0xb1654bc4}, + {0x73c84278, 0x1f0ded40, (const uint8_t *)"zlib", 4, 0x6432d127, 0xd89aeef1}, + {0x228a87d1, 0xa804a62f, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0x997107d0, 0xe34eac7b}, + {0xa7a048d0, 0x508fae6a, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0xdc567274, 0x33f2b4c8}, + {0x1f0ded40, 0xe5adaf4f, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdcc63870, 0xe7b1b68c}, + {0xa804a62f, 0x67136a40, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x6926cffd, 0xf6a0708f}, + {0x508fae6a, 0xb00c4a10, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xb52b38bc, 0xbd8f509f}, + {0xe5adaf4f, 0x2e0c84b5, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0xf83b8178, 0xcc298abd}, + {0x67136a40, 0x81238d44, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0xc5213070, 0xd7809446}, + {0xb00c4a10, 0xf853aa92, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xbc7648b0, 0x9525b148}, + {0x2e0c84b5, 0x5a692325, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0xd8123a72, 0x620029bc}, + {0x81238d44, 0x3275b9f, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0xd5ac5620, 0x70916284}, + {0xf853aa92, 0x38371feb, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0xceae099d, 0xd52706}, + {0x5a692325, 0xafc8bf62, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0xb07d2b24, 0xeeb4c65a}, + {0x3275b9f, 0x9b07db73, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0x24ce91df, 0xde3e2db}, + {0x38371feb, 0xe75b214, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x707b3b30, 0x4171b8f8}, + {0xafc8bf62, 0x72d0fe6f, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x16abc6a9, 0xa66a05cd}, + {0x9b07db73, 0xf857a4b1, (const uint8_t *)"70684206568419061514", 20, 0xae1fb7b7, 0x1f9a8c4}, + {0xe75b214, 0x54b8e14, (const uint8_t *)"42015093765128581010", 20, 0xd4eecd2d, 0x49c19218}, + {0x72d0fe6f, 0xd6aa5616, (const uint8_t *)"88214814356148806939", 20, 0x4660ec7, 0xbbfc5a38}, + {0xf857a4b1, 0x11e63098, (const uint8_t *)"43472694284527343838", 20, 0xfd8afdf7, 0x93434b8}, + {0x54b8e14, 0xbe92385, (const uint8_t *)"49769333513942933689", 20, 0xc6d1b5f2, 0xfe1827af}, + {0xd6aa5616, 0x49511de0, (const uint8_t *)"54979784887993251199", 20, 0x32476461, 0xcba8221c}, + {0x11e63098, 0x3db13bc1, (const uint8_t *)"58360544869206793220", 20, 0xd917cf1a, 0x14643fda}, + {0xbe92385, 0xbb899bea, (const uint8_t *)"27347953487840714234", 20, 0x4ad14a12, 0x1604a006}, + {0x49511de0, 0xf6cd9436, (const uint8_t *)"07650690295365319082", 20, 0xe37b5c6c, 0xb69f984c}, + {0x3db13bc1, 0x9109e6c3, (const uint8_t *)"42655507906821911703", 20, 0x7cc497f1, 0xc43eead4}, + {0xbb899bea, 0x75770fc, (const uint8_t *)"29977409200786225655", 20, 0x99781bb2, 0x707751b}, + {0xf6cd9436, 0x69b1d19b, (const uint8_t *)"85181542907229116674", 20, 0x132256a1, 0xf5bdd5b3}, + {0x9109e6c3, 0xc6132975, (const uint8_t *)"87963594337989416799", 20, 0xbfdb2c83, 0x2fed2db3}, + {0x75770fc, 0xd58cb00c, (const uint8_t *)"21395988329504168551", 20, 0x8d9d1e81, 0xc2a2b42a}, + {0x69b1d19b, 0xb63b8caa, (const uint8_t *)"51991013580943379423", 20, 0x7b6d4404, 0xdf0590c0}, + {0xc6132975, 0x8a45a2b8, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x8619f010, 0x1980aaf8}, + {0xd58cb00c, 0xcbe95b78, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0x15746ac3, 0xf58662c8}, + {0xb63b8caa, 0x4ef8a54b, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xaccf812f, 0x1f65ac54}, + {0x8a45a2b8, 0x76ad267a, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0x78af45de, 0x7b792e8e}, + {0xcbe95b78, 0x569e613c, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0x25b06b59, 0x1d61679c}, + {0x4ef8a54b, 0x36aa61da, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x4ba0d08f, 0x12ec687c}, + {0x76ad267a, 0xf67222df, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0xe26b6aac, 0x740329a9}, + {0x569e613c, 0x74b34fd3, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x7e2b0a66, 0x374c5652}, + {0x36aa61da, 0x351fd770, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xb3430dc7, 0xeadfde7e}, + {0xf67222df, 0xc45aef77, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0x626c17a, 0x3fcbf664}, + {0x74b34fd3, 0xd034ea71, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xccf98060, 0x6b080911}, + {0x351fd770, 0xdeadc0de, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xd8b95312, 0x355fdf73}, + {0xc45aef77, 0xba5eba11, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xbb1c9912, 0xb48bd8d8}, + {0xc45aef77, 0x0, (const uint8_t *) + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&" + "h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 600, 0x888afa5b, 0xc3ab8aa}, + {0x0, 0x7712aa45, (const uint8_t *)long_string, 5552, 0x426fa73b, 0x7dc51be2}, + {0x0, 0x0, big_test, 32768, 0x217726b2, 0xbfcdc3b1}, + {0x0, 0x0, big_test, 16384, 0xe81722f0, 0x186ae1d1}, + {0x0, 0x0, big_test, 118960+512, 0xf0d2c66f, 0xf0d560c0}, + {0x0, 0x0, big_test, 615078, 0x6a023677, 0xd153ca93}, + {0x0, 0x0, big_test, 615142, 0x8a1b2fc5, 0x68cafbf3}, + {0x0, 0x0, big_test, 615270, 0xaf836355, 0x343e28c2}, + {0x0, 0x0, big_test, 615302, 0x42e83c6c, 0x34883772}, + {0x0, 0x0, big_test, 615318, 0x563bcb26, 0xf5ad404a}, + {0x0, 0x0, big_test, 615326, 0xd39dea79, 0x0d964516}, + {0x0, 0x0, big_test, 615330, 0xec355488, 0x28334794}, + {0x0, 0x0, big_test, 615334, 0x391ab77c, 0x4cf04a22}, + {0x0, 0x0, big_test, 615335, 0xb43dcef0, 0x97b84ac8}, + {0x0, 0x0, big_test, 615336, 0x27b91614, 0xe3274b6f}, }; -#endif /* ADLER32_TEST_STRINGS_P_H */
\ No newline at end of file +#endif /* HASH_TEST_STRINGS_P_H */ diff --git a/test/test_adler32.cc b/test/test_adler32.cc index f4d1cf8319..73b15c4728 100644 --- a/test/test_adler32.cc +++ b/test/test_adler32.cc @@ -12,20 +12,20 @@ extern "C" { # include "zbuild.h" # include "arch_functions.h" # include "test_cpu_features.h" -# include "adler32_test_strings_p.h" +# include "hash_test_strings_p.h" } #include <gtest/gtest.h> -class adler32_variant : public ::testing::TestWithParam<adler32_test> { +class adler32_variant : public ::testing::TestWithParam<hash_test> { public: - void hash(adler32_test param, adler32_func adler32) { + void hash(hash_test param, adler32_func adler32) { uint32_t adler = adler32((uint32_t)param.adler, param.buf, param.len); - EXPECT_EQ(adler, param.expect); + EXPECT_EQ(adler, param.expect_adler); } }; -INSTANTIATE_TEST_SUITE_P(adler32, adler32_variant, testing::ValuesIn(tests)); +INSTANTIATE_TEST_SUITE_P(adler32, adler32_variant, testing::ValuesIn(hash_tests)); #define TEST_ADLER32(name, func, support_flag) \ TEST_P(adler32_variant, name) { \ diff --git a/test/test_adler32_copy.cc b/test/test_adler32_copy.cc index b27739612f..ff135cdc34 100644 --- a/test/test_adler32_copy.cc +++ b/test/test_adler32_copy.cc @@ -9,34 +9,30 @@ extern "C" { # include "zbuild.h" # include "arch_functions.h" # include "test_cpu_features.h" -# include "adler32_test_strings_p.h" +# include "hash_test_strings_p.h" } -#define BUFSIZE 615336U - -class adler32_copy_variant : public ::testing::TestWithParam<adler32_test> { +class adler32_copy_variant : public ::testing::TestWithParam<hash_test> { protected: - uint8_t dstbuf[BUFSIZE]; + uint8_t dstbuf[HASH_TEST_MAX_LENGTH]; public: /* Ensure that adler32 copy functions returns the correct adler and copies the data */ - void adler32_copy_test(adler32_copy_func copyfunc, adler32_test params) { - uint32_t adler = 0; - - ASSERT_LE(params.len, BUFSIZE); + void adler32_copy_test(adler32_copy_func copyfunc, hash_test params) { + ASSERT_LE(params.len, HASH_TEST_MAX_LENGTH); if (params.buf == NULL) { GTEST_SKIP(); } - adler = copyfunc(params.adler, dstbuf, params.buf, params.len); + uint32_t adler = copyfunc(params.adler, dstbuf, params.buf, params.len); - EXPECT_EQ(adler, params.expect); + EXPECT_EQ(adler, params.expect_adler); EXPECT_EQ(0, memcmp(params.buf, dstbuf, params.len)); } }; -INSTANTIATE_TEST_SUITE_P(adler32_copy, adler32_copy_variant, testing::ValuesIn(tests)); +INSTANTIATE_TEST_SUITE_P(adler32_copy, adler32_copy_variant, testing::ValuesIn(hash_tests)); #define TEST_ADLER32_COPY(name, copyfunc, support_flag) \ TEST_P(adler32_copy_variant, name) { \ diff --git a/test/test_crc32.cc b/test/test_crc32.cc index 9639a9af62..0763f10c5e 100644 --- a/test/test_crc32.cc +++ b/test/test_crc32.cc @@ -12,12 +12,12 @@ extern "C" { # include "zbuild.h" # include "arch_functions.h" # include "test_cpu_features.h" -# include "crc32_test_strings_p.h" +# include "hash_test_strings_p.h" } -class crc32_variant : public ::testing::TestWithParam<crc32_test> { +class crc32_variant : public ::testing::TestWithParam<hash_test> { public: - void hash(crc32_test param, crc32_func crc32) { + void hash(hash_test param, crc32_func crc32) { uint32_t crc = 0; if (param.buf != NULL) { if (param.len) { @@ -26,7 +26,7 @@ public: crc = param.crc; } } - EXPECT_EQ(crc, param.expect); + EXPECT_EQ(crc, param.expect_crc); } }; @@ -69,7 +69,7 @@ public: uint8_t *crc32_large_buf::buffer = nullptr; -INSTANTIATE_TEST_SUITE_P(crc32, crc32_variant, testing::ValuesIn(crc32_tests)); +INSTANTIATE_TEST_SUITE_P(crc32, crc32_variant, testing::ValuesIn(hash_tests)); #define TEST_CRC32(name, func, support_flag) \ TEST_P(crc32_variant, name) { \ diff --git a/test/test_crc32_copy.cc b/test/test_crc32_copy.cc index 0ced8b86ee..e965669afc 100644 --- a/test/test_crc32_copy.cc +++ b/test/test_crc32_copy.cc @@ -9,34 +9,30 @@ extern "C" { # include "zbuild.h" # include "arch_functions.h" # include "test_cpu_features.h" -# include "crc32_test_strings_p.h" +# include "hash_test_strings_p.h" } -#define BUFSIZE 615336U - -class crc32_copy_variant : public ::testing::TestWithParam<crc32_test> { +class crc32_copy_variant : public ::testing::TestWithParam<hash_test> { protected: - uint8_t dstbuf[BUFSIZE]; + uint8_t dstbuf[HASH_TEST_MAX_LENGTH]; public: /* Ensure that crc32 copy functions returns the correct crc and copies the data */ - void crc32_copy_test(crc32_copy_func copyfunc, crc32_test params) { - uint32_t crc = 0; - - ASSERT_LE(params.len, BUFSIZE); + void crc32_copy_test(crc32_copy_func copyfunc, hash_test params) { + ASSERT_LE(params.len, HASH_TEST_MAX_LENGTH); if (params.buf == NULL) { GTEST_SKIP(); } - crc = copyfunc(params.crc, dstbuf, params.buf, params.len); + uint32_t crc = copyfunc(params.crc, dstbuf, params.buf, params.len); - EXPECT_EQ(crc, params.expect); + EXPECT_EQ(crc, params.expect_crc); EXPECT_EQ(0, memcmp(params.buf, dstbuf, params.len)); } }; -INSTANTIATE_TEST_SUITE_P(crc32_copy, crc32_copy_variant, testing::ValuesIn(crc32_tests)); +INSTANTIATE_TEST_SUITE_P(crc32_copy, crc32_copy_variant, testing::ValuesIn(hash_tests)); #define TEST_CRC32_COPY(name, copyfunc, support_flag) \ TEST_P(crc32_copy_variant, name) { \ |
