summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Moinvaziri <nathan@nathanm.com>2026-01-10 10:29:05 -0800
committerHans Kristian Rosbach <hk-github@circlestorm.org>2026-01-13 18:43:50 +0100
commit69f8f4ed0a18215044713236cd908406fecb84dc (patch)
treeaa8f3e144757bff6de1f8a5a6a61ebbfa9bb6787
parent2a208327a47d535e16caf3cec1c12c6268298bc5 (diff)
downloadProject-Tick-69f8f4ed0a18215044713236cd908406fecb84dc.tar.gz
Project-Tick-69f8f4ed0a18215044713236cd908406fecb84dc.zip
Merge adler32 and crc32 hash test strings.
-rw-r--r--test/crc32_test_strings_p.h194
-rw-r--r--test/hash_test_strings_p.h (renamed from test/adler32_test_strings_p.h)356
-rw-r--r--test/test_adler32.cc10
-rw-r--r--test/test_adler32_copy.cc20
-rw-r--r--test/test_crc32.cc10
-rw-r--r--test/test_crc32_copy.cc20
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) { \