summaryrefslogtreecommitdiffstats
path: root/lib/fnv/test_fnv.c
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2022-06-27 07:18:21 +1000
committerGitHub <noreply@github.com>2022-06-27 07:18:21 +1000
commit01ecf332ff9f0c8f61e493cdca116f58d80bb5fb (patch)
tree92fc03cbdeb2bf963574bfeed29276e164ca7561 /lib/fnv/test_fnv.c
parent0d013a21e1347fc38e742b2bd876329e86c153a9 (diff)
Generic wear-leveling algorithm (#16996)
* Initial import of wear-leveling algorithm. * Alignment. * Docs tweaks. * Lock/unlock. * Update quantum/wear_leveling/wear_leveling_internal.h Co-authored-by: Stefan Kerkmann <karlk90@pm.me> * More tests, fix issue with consolidation when unlocked. * More tests. * Review comments. * Add plumbing for FNV1a. * Another test checking that checksum mismatch clears the cache. * Check that the write log still gets played back. Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Diffstat (limited to 'lib/fnv/test_fnv.c')
-rw-r--r--lib/fnv/test_fnv.c2237
1 files changed, 2237 insertions, 0 deletions
diff --git a/lib/fnv/test_fnv.c b/lib/fnv/test_fnv.c
new file mode 100644
index 0000000000..efec3dec1d
--- /dev/null
+++ b/lib/fnv/test_fnv.c
@@ -0,0 +1,2237 @@
+/*
+ * test_fnv - FNV test suite
+ *
+ * @(#) $Revision: 5.3 $
+ * @(#) $Id: test_fnv.c,v 5.3 2009/06/30 11:50:41 chongo Exp $
+ * @(#) $Source: /usr/local/src/cmd/fnv/RCS/test_fnv.c,v $
+ *
+ ***
+ *
+ * Fowler/Noll/Vo hash
+ *
+ * The basis of this hash algorithm was taken from an idea sent
+ * as reviewer comments to the IEEE POSIX P1003.2 committee by:
+ *
+ * Phong Vo (http://www.research.att.com/info/kpv/)
+ * Glenn Fowler (http://www.research.att.com/~gsf/)
+ *
+ * In a subsequent ballot round:
+ *
+ * Landon Curt Noll (http://www.isthe.com/chongo/)
+ *
+ * improved on their algorithm. Some people tried this hash
+ * and found that it worked rather well. In an EMail message
+ * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash.
+ *
+ * FNV hashes are designed to be fast while maintaining a low
+ * collision rate. The FNV speed allows one to quickly hash lots
+ * of data while maintaining a reasonable collision rate. See:
+ *
+ * http://www.isthe.com/chongo/tech/comp/fnv/index.html
+ *
+ * for more details as well as other forms of the FNV hash.
+ *
+ ***
+ *
+ * Please do not copyright this code. This code is in the public domain.
+ *
+ * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+ * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+ * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * By:
+ * chongo <Landon Curt Noll> /\oo/\
+ * http://www.isthe.com/chongo/
+ *
+ * Share and Enjoy! :-)
+ */
+
+#include <stdio.h>
+#include "longlong.h"
+#include "fnv.h"
+
+#define LEN(x) (sizeof(x)-1)
+/* TEST macro does not include trailing NUL byte in the test vector */
+#define TEST(x) {x, LEN(x)}
+/* TEST0 macro includes the trailing NUL byte in the test vector */
+#define TEST0(x) {x, sizeof(x)}
+/* REPEAT500 - repeat a string 500 times */
+#define R500(x) R100(x)R100(x)R100(x)R100(x)R100(x)
+#define R100(x) R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)
+#define R10(x) x x x x x x x x x x
+
+/*
+ * FNV test vectors
+ *
+ * NOTE: A NULL pointer marks beyond the end of the test vectors.
+ *
+ * NOTE: The order of the fnv_test_str[] test vectors is 1-to-1 with:
+ *
+ * struct fnv0_32_test_vector fnv0_32_vector[];
+ * struct fnv1_32_test_vector fnv1_32_vector[];
+ * struct fnv1a_32_test_vector fnv1a_32_vector[];
+ * struct fnv0_64_test_vector fnv0_64_vector[];
+ * struct fnv1_64_test_vector fnv1_64_vector[];
+ * struct fnv1a_64_test_vector fnv1a_64_vector[];
+ *
+ * IMPORTANT NOTE:
+ *
+ * If you change the fnv_test_str[] array, you need
+ * to also change ALL of the above fnv*_vector arrays!!!
+ *
+ * To rebuild, try:
+ *
+ * make vector.c
+ *
+ * and then fold the results into the source file.
+ * Of course, you better make sure that the vaules
+ * produced by the above command are valid, otherwise
+ * you will be testing against invalid vectors!
+ */
+struct test_vector fnv_test_str[] = {
+ TEST(""),
+ TEST("a"),
+ TEST("b"),
+ TEST("c"),
+ TEST("d"),
+ TEST("e"),
+ TEST("f"),
+ TEST("fo"),
+ TEST("foo"),
+ TEST("foob"),
+ TEST("fooba"),
+ TEST("foobar"),
+ TEST0(""),
+ TEST0("a"),
+ TEST0("b"),
+ TEST0("c"),
+ TEST0("d"),
+ TEST0("e"),
+ TEST0("f"),
+ TEST0("fo"),
+ TEST0("foo"),
+ TEST0("foob"),
+ TEST0("fooba"),
+ TEST0("foobar"),
+ TEST("ch"),
+ TEST("cho"),
+ TEST("chon"),
+ TEST("chong"),
+ TEST("chongo"),
+ TEST("chongo "),
+ TEST("chongo w"),
+ TEST("chongo wa"),
+ TEST("chongo was"),
+ TEST("chongo was "),
+ TEST("chongo was h"),
+ TEST("chongo was he"),
+ TEST("chongo was her"),
+ TEST("chongo was here"),
+ TEST("chongo was here!"),
+ TEST("chongo was here!\n"),
+ TEST0("ch"),
+ TEST0("cho"),
+ TEST0("chon"),
+ TEST0("chong"),
+ TEST0("chongo"),
+ TEST0("chongo "),
+ TEST0("chongo w"),
+ TEST0("chongo wa"),
+ TEST0("chongo was"),
+ TEST0("chongo was "),
+ TEST0("chongo was h"),
+ TEST0("chongo was he"),
+ TEST0("chongo was her"),
+ TEST0("chongo was here"),
+ TEST0("chongo was here!"),
+ TEST0("chongo was here!\n"),
+ TEST("cu"),
+ TEST("cur"),
+ TEST("curd"),
+ TEST("curds"),
+ TEST("curds "),
+ TEST("curds a"),
+ TEST("curds an"),
+ TEST("curds and"),
+ TEST("curds and "),
+ TEST("curds and w"),
+ TEST("curds and wh"),
+ TEST("curds and whe"),
+ TEST("curds and whey"),
+ TEST("curds and whey\n"),
+ TEST0("cu"),
+ TEST0("cur"),
+ TEST0("curd"),
+ TEST0("curds"),
+ TEST0("curds "),
+ TEST0("curds a"),
+ TEST0("curds an"),
+ TEST0("curds and"),
+ TEST0("curds and "),
+ TEST0("curds and w"),
+ TEST0("curds and wh"),
+ TEST0("curds and whe"),
+ TEST0("curds and whey"),
+ TEST0("curds and whey\n"),
+ TEST("hi"), TEST0("hi"),
+ TEST("hello"), TEST0("hello"),
+ TEST("\xff\x00\x00\x01"), TEST("\x01\x00\x00\xff"),
+ TEST("\xff\x00\x00\x02"), TEST("\x02\x00\x00\xff"),
+ TEST("\xff\x00\x00\x03"), TEST("\x03\x00\x00\xff"),
+ TEST("\xff\x00\x00\x04"), TEST("\x04\x00\x00\xff"),
+ TEST("\x40\x51\x4e\x44"), TEST("\x44\x4e\x51\x40"),
+ TEST("\x40\x51\x4e\x4a"), TEST("\x4a\x4e\x51\x40"),
+ TEST("\x40\x51\x4e\x54"), TEST("\x54\x4e\x51\x40"),
+ TEST("127.0.0.1"), TEST0("127.0.0.1"),
+ TEST("127.0.0.2"), TEST0("127.0.0.2"),
+ TEST("127.0.0.3"), TEST0("127.0.0.3"),
+ TEST("64.81.78.68"), TEST0("64.81.78.68"),
+ TEST("64.81.78.74"), TEST0("64.81.78.74"),
+ TEST("64.81.78.84"), TEST0("64.81.78.84"),
+ TEST("feedface"), TEST0("feedface"),
+ TEST("feedfacedaffdeed"), TEST0("feedfacedaffdeed"),
+ TEST("feedfacedeadbeef"), TEST0("feedfacedeadbeef"),
+ TEST("line 1\nline 2\nline 3"),
+ TEST("chongo <Landon Curt Noll> /\\../\\"),
+ TEST0("chongo <Landon Curt Noll> /\\../\\"),
+ TEST("chongo (Landon Curt Noll) /\\../\\"),
+ TEST0("chongo (Landon Curt Noll) /\\../\\"),
+ TEST("http://antwrp.gsfc.nasa.gov/apod/astropix.html"),
+ TEST("http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash"),
+ TEST("http://epod.usra.edu/"),
+ TEST("http://exoplanet.eu/"),
+ TEST("http://hvo.wr.usgs.gov/cam3/"),
+ TEST("http://hvo.wr.usgs.gov/cams/HMcam/"),
+ TEST("http://hvo.wr.usgs.gov/kilauea/update/deformation.html"),
+ TEST("http://hvo.wr.usgs.gov/kilauea/update/images.html"),
+ TEST("http://hvo.wr.usgs.gov/kilauea/update/maps.html"),
+ TEST("http://hvo.wr.usgs.gov/volcanowatch/current_issue.html"),
+ TEST("http://neo.jpl.nasa.gov/risk/"),
+ TEST("http://norvig.com/21-days.html"),
+ TEST("http://primes.utm.edu/curios/home.php"),
+ TEST("http://slashdot.org/"),
+ TEST("http://tux.wr.usgs.gov/Maps/155.25-19.5.html"),
+ TEST("http://volcano.wr.usgs.gov/kilaueastatus.php"),
+ TEST("http://www.avo.alaska.edu/activity/Redoubt.php"),
+ TEST("http://www.dilbert.com/fast/"),
+ TEST("http://www.fourmilab.ch/gravitation/orbits/"),
+ TEST("http://www.fpoa.net/"),
+ TEST("http://www.ioccc.org/index.html"),
+ TEST("http://www.isthe.com/cgi-bin/number.cgi"),
+ TEST("http://www.isthe.com/chongo/bio.html"),
+ TEST("http://www.isthe.com/chongo/index.html"),
+ TEST("http://www.isthe.com/chongo/src/calc/lucas-calc"),
+ TEST("http://www.isthe.com/chongo/tech/astro/venus2004.html"),
+ TEST("http://www.isthe.com/chongo/tech/astro/vita.html"),
+ TEST("http://www.isthe.com/chongo/tech/comp/c/expert.html"),
+ TEST("http://www.isthe.com/chongo/tech/comp/calc/index.html"),
+ TEST("http://www.isthe.com/chongo/tech/comp/fnv/index.html"),
+ TEST("http://www.isthe.com/chongo/tech/math/number/howhigh.html"),
+ TEST("http://www.isthe.com/chongo/tech/math/number/number.html"),
+ TEST("http://www.isthe.com/chongo/tech/math/prime/mersenne.html"),
+ TEST("http://www.isthe.com/chongo/tech/math/prime/mersenne.html#largest"),
+ TEST("http://www.lavarnd.org/cgi-bin/corpspeak.cgi"),
+ TEST("http://www.lavarnd.org/cgi-bin/haiku.cgi"),
+ TEST("http://www.lavarnd.org/cgi-bin/rand-none.cgi"),
+ TEST("http://www.lavarnd.org/cgi-bin/randdist.cgi"),
+ TEST("http://www.lavarnd.org/index.html"),
+ TEST("http://www.lavarnd.org/what/nist-test.html"),
+ TEST("http://www.macosxhints.com/"),
+ TEST("http://www.mellis.com/"),
+ TEST("http://www.nature.nps.gov/air/webcams/parks/havoso2alert/havoalert.cfm"),
+ TEST("http://www.nature.nps.gov/air/webcams/parks/havoso2alert/timelines_24.cfm"),
+ TEST("http://www.paulnoll.com/"),
+ TEST("http://www.pepysdiary.com/"),
+ TEST("http://www.sciencenews.org/index/home/activity/view"),
+ TEST("http://www.skyandtelescope.com/"),
+ TEST("http://www.sput.nl/~rob/sirius.html"),
+ TEST("http://www.systemexperts.com/"),
+ TEST("http://www.tq-international.com/phpBB3/index.php"),
+ TEST("http://www.travelquesttours.com/index.htm"),
+ TEST("http://www.wunderground.com/global/stations/89606.html"),
+ TEST(R10("21701")),
+ TEST(R10("M21701")),
+ TEST(R10("2^21701-1")),
+ TEST(R10("\x54\xc5")),
+ TEST(R10("\xc5\x54")),
+ TEST(R10("23209")),
+ TEST(R10("M23209")),
+ TEST(R10("2^23209-1")),
+ TEST(R10("\x5a\xa9")),
+ TEST(R10("\xa9\x5a")),
+ TEST(R10("391581216093")),
+ TEST(R10("391581*2^216093-1")),
+ TEST(R10("\x05\xf9\x9d\x03\x4c\x81")),
+ TEST(R10("FEDCBA9876543210")),
+ TEST(R10("\xfe\xdc\xba\x98\x76\x54\x32\x10")),
+ TEST(R10("EFCDAB8967452301")),
+ TEST(R10("\xef\xcd\xab\x89\x67\x45\x23\x01")),
+ TEST(R10("0123456789ABCDEF")),
+ TEST(R10("\x01\x23\x45\x67\x89\xab\xcd\xef")),
+ TEST(R10("1032547698BADCFE")),
+ TEST(R10("\x10\x32\x54\x76\x98\xba\xdc\xfe")),
+ TEST(R500("\x00")),
+ TEST(R500("\x07")),
+ TEST(R500("~")),
+ TEST(R500("\x7f")),
+ {NULL, 0} /* MUST BE LAST */
+};
+
+
+/*
+ * insert the contents of vector.c below
+ *
+ * make vector.c
+ * :r vector.c
+ */
+/* start of output generated by make vector.c */
+
+/* FNV-0 32 bit test vectors */
+struct fnv0_32_test_vector fnv0_32_vector[] = {
+ { &fnv_test_str[0], (Fnv32_t) 0x00000000UL },
+ { &fnv_test_str[1], (Fnv32_t) 0x00000061UL },
+ { &fnv_test_str[2], (Fnv32_t) 0x00000062UL },
+ { &fnv_test_str[3], (Fnv32_t) 0x00000063UL },
+ { &fnv_test_str[4], (Fnv32_t) 0x00000064UL },
+ { &fnv_test_str[5], (Fnv32_t) 0x00000065UL },
+ { &fnv_test_str[6], (Fnv32_t) 0x00000066UL },
+ { &fnv_test_str[7], (Fnv32_t) 0x6600a0fdUL },
+ { &fnv_test_str[8], (Fnv32_t) 0x8ffd6e28UL },
+ { &fnv_test_str[9], (Fnv32_t) 0xd3f4689aUL },
+ { &fnv_test_str[10], (Fnv32_t) 0x43c0aa0fUL },
+ { &fnv_test_str[11], (Fnv32_t) 0xb74bb5efUL },
+ { &fnv_test_str[12], (Fnv32_t) 0x00000000UL },
+ { &fnv_test_str[13], (Fnv32_t) 0x610098b3UL },
+ { &fnv_test_str[14], (Fnv32_t) 0x62009a46UL },
+ { &fnv_test_str[15], (Fnv32_t) 0x63009bd9UL },
+ { &fnv_test_str[16], (Fnv32_t) 0x64009d6cUL },
+ { &fnv_test_str[17], (Fnv32_t) 0x65009effUL },
+ { &fnv_test_str[18], (Fnv32_t) 0x6600a092UL },
+ { &fnv_test_str[19], (Fnv32_t) 0x8ffd6e47UL },
+ { &fnv_test_str[20], (Fnv32_t) 0xd3f468f8UL },
+ { &fnv_test_str[21], (Fnv32_t) 0x43c0aa6eUL },
+ { &fnv_test_str[22], (Fnv32_t) 0xb74bb59dUL },
+ { &fnv_test_str[23], (Fnv32_t) 0x7b2f673dUL },
+ { &fnv_test_str[24], (Fnv32_t) 0x63009bb1UL },
+ { &fnv_test_str[25], (Fnv32_t) 0x8af517ccUL },
+ { &fnv_test_str[26], (Fnv32_t) 0x8bd4764aUL },
+ { &fnv_test_str[27], (Fnv32_t) 0x69763619UL },
+ { &fnv_test_str[28], (Fnv32_t) 0x1e172934UL },
+ { &fnv_test_str[29], (Fnv32_t) 0x9275dcfcUL },
+ { &fnv_test_str[30], (Fnv32_t) 0x8b8ae0c3UL },
+ { &fnv_test_str[31], (Fnv32_t) 0x6e9fd298UL },
+ { &fnv_test_str[32], (Fnv32_t) 0xbd98853bUL },
+ { &fnv_test_str[33], (Fnv32_t) 0xb219bbc1UL },
+ { &fnv_test_str[34], (Fnv32_t) 0x1f8290bbUL },
+ { &fnv_test_str[35], (Fnv32_t) 0x5589d604UL },
+ { &fnv_test_str[36], (Fnv32_t) 0xabfbe83eUL },
+ { &fnv_test_str[37], (Fnv32_t) 0xfb8e99ffUL },
+ { &fnv_test_str[38], (Fnv32_t) 0x007c6c4cUL },
+ { &fnv_test_str[39], (Fnv32_t) 0x0fde7baeUL },
+ { &fnv_test_str[40], (Fnv32_t) 0x8af517a3UL },
+ { &fnv_test_str[41], (Fnv32_t) 0x8bd47624UL },
+ { &fnv_test_str[42], (Fnv32_t) 0x6976367eUL },
+ { &fnv_test_str[43], (Fnv32_t) 0x1e17295bUL },
+ { &fnv_test_str[44], (Fnv32_t) 0x9275dcdcUL },
+ { &fnv_test_str[45], (Fnv32_t) 0x8b8ae0b4UL },
+ { &fnv_test_str[46], (Fnv32_t) 0x6e9fd2f9UL },
+ { &fnv_test_str[47], (Fnv32_t) 0xbd988548UL },
+ { &fnv_test_str[48], (Fnv32_t) 0xb219bbe1UL },
+ { &fnv_test_str[49], (Fnv32_t) 0x1f8290d3UL },
+ { &fnv_test_str[50], (Fnv32_t) 0x5589d661UL },
+ { &fnv_test_str[51], (Fnv32_t) 0xabfbe84cUL },
+ { &fnv_test_str[52], (Fnv32_t) 0xfb8e999aUL },
+ { &fnv_test_str[53], (Fnv32_t) 0x007c6c6dUL },
+ { &fnv_test_str[54], (Fnv32_t) 0x0fde7ba4UL },
+ { &fnv_test_str[55], (Fnv32_t) 0xa93cb2eaUL },
+ { &fnv_test_str[56], (Fnv32_t) 0x63009bacUL },
+ { &fnv_test_str[57], (Fnv32_t) 0x85f50fb6UL },
+ { &fnv_test_str[58], (Fnv32_t) 0x96c7bbe6UL },
+ { &fnv_test_str[59], (Fnv32_t) 0x426ccb61UL },
+ { &fnv_test_str[60], (Fnv32_t) 0xf2442993UL },
+ { &fnv_test_str[61], (Fnv32_t) 0xf44d7208UL },
+ { &fnv_test_str[62], (Fnv32_t) 0x9dea82f6UL },
+ { &fnv_test_str[63], (Fnv32_t) 0x8e2c2926UL },
+ { &fnv_test_str[64], (Fnv32_t) 0xf584c6f2UL },
+ { &fnv_test_str[65], (Fnv32_t) 0x72052e81UL },
+ { &fnv_test_str[66], (Fnv32_t) 0xff28357bUL },
+ { &fnv_test_str[67], (Fnv32_t) 0x274c30c4UL },
+ { &fnv_test_str[68], (Fnv32_t) 0xa0f0c4f5UL },
+ { &fnv_test_str[69], (Fnv32_t) 0x50060da5UL },
+ { &fnv_test_str[70], (Fnv32_t) 0x85f50fc4UL },
+ { &fnv_test_str[71], (Fnv32_t) 0x96c7bb82UL },
+ { &fnv_test_str[72], (Fnv32_t) 0x426ccb12UL },
+ { &fnv_test_str[73], (Fnv32_t) 0xf24429b3UL },
+ { &fnv_test_str[74], (Fnv32_t) 0xf44d7269UL },
+ { &fnv_test_str[75], (Fnv32_t) 0x9dea8298UL },
+ { &fnv_test_str[76], (Fnv32_t) 0x8e2c2942UL },
+ { &fnv_test_str[77], (Fnv32_t) 0xf584c6d2UL },
+ { &fnv_test_str[78], (Fnv32_t) 0x72052ef6UL },
+ { &fnv_test_str[79], (Fnv32_t) 0xff283513UL },
+ { &fnv_test_str[80], (Fnv32_t) 0x274c30a1UL },
+ { &fnv_test_str[81], (Fnv32_t) 0xa0f0c48cUL },
+ { &fnv_test_str[82], (Fnv32_t) 0x50060dafUL },
+ { &fnv_test_str[83], (Fnv32_t) 0x9e877abfUL },
+ { &fnv_test_str[84], (Fnv32_t) 0x6800a3d1UL },
+ { &fnv_test_str[85], (Fnv32_t) 0x8a01e203UL },
+ { &fnv_test_str[86], (Fnv32_t) 0xec6d6be8UL },
+ { &fnv_test_str[87], (Fnv32_t) 0x1840de38UL },
+ { &fnv_test_str[88], (Fnv32_t) 0xa7cc97b4UL },
+ { &fnv_test_str[89], (Fnv32_t) 0x3ee6b3b4UL },
+ { &fnv_test_str[90], (Fnv32_t) 0xa7cc97b7UL },
+ { &fnv_test_str[91], (Fnv32_t) 0x7dcd6669UL },
+ { &fnv_test_str[92], (Fnv32_t) 0xa7cc97b6UL },
+ { &fnv_test_str[93], (Fnv32_t) 0xbcb4191eUL },
+ { &fnv_test_str[94], (Fnv32_t) 0xa7cc97b1UL },
+ { &fnv_test_str[95], (Fnv32_t) 0xfb9acdd3UL },
+ { &fnv_test_str[96], (Fnv32_t) 0x89380433UL },
+ { &fnv_test_str[97], (Fnv32_t) 0x8acd2855UL },
+ { &fnv_test_str[98], (Fnv32_t) 0x8938043dUL },
+ { &fnv_test_str[99], (Fnv32_t) 0xcaeed493UL },
+ { &fnv_test_str[100], (Fnv32_t) 0x89380423UL },
+ { &fnv_test_str[101], (Fnv32_t) 0x59382a25UL },
+ { &fnv_test_str[102], (Fnv32_t) 0x567f75d7UL },
+ { &fnv_test_str[103], (Fnv32_t) 0x01a68175UL },
+ { &fnv_test_str[104], (Fnv32_t) 0x567f75d4UL },
+ { &fnv_test_str[105], (Fnv32_t) 0xfea67cbcUL },
+ { &fnv_test_str[106], (Fnv32_t) 0x567f75d5UL },
+ { &fnv_test_str[107], (Fnv32_t) 0xffa67e4fUL },
+ { &fnv_test_str[108], (Fnv32_t) 0xd131b668UL },
+ { &fnv_test_str[109], (Fnv32_t) 0xb94225b8UL },
+ { &fnv_test_str[110], (Fnv32_t) 0xd231b7d7UL },
+ { &fnv_test_str[111], (Fnv32_t) 0xbb446775UL },
+ { &fnv_test_str[112], (Fnv32_t) 0xdf31cc6eUL },
+ { &fnv_test_str[113], (Fnv32_t) 0xc964d12aUL },
+ { &fnv_test_str[114], (Fnv32_t) 0x23af8f9fUL },
+ { &fnv_test_str[115], (Fnv32_t) 0xcc5f174dUL },
+ { &fnv_test_str[116], (Fnv32_t) 0x96b29b8cUL },
+ { &fnv_test_str[117], (Fnv32_t) 0xc72add64UL },
+ { &fnv_test_str[118], (Fnv32_t) 0x528fb7efUL },
+ { &fnv_test_str[119], (Fnv32_t) 0xe73e8d3dUL },
+ { &fnv_test_str[120], (Fnv32_t) 0x876386feUL },
+ { &fnv_test_str[121], (Fnv32_t) 0x811c9dc5UL },
+ { &fnv_test_str[122], (Fnv32_t) 0x050c5d1fUL },
+ { &fnv_test_str[123], (Fnv32_t) 0x14bf7238UL },
+ { &fnv_test_str[124], (Fnv32_t) 0xe160ce28UL },
+ { &fnv_test_str[125], (Fnv32_t) 0x89dc5a75UL },
+ { &fnv_test_str[126], (Fnv32_t) 0xd89b69a0UL },
+ { &fnv_test_str[127], (Fnv32_t) 0x94471a88UL },
+ { &fnv_test_str[128], (Fnv32_t) 0xe78db65fUL },
+ { &fnv_test_str[129], (Fnv32_t) 0x0c3009a2UL },
+ { &fnv_test_str[130], (Fnv32_t) 0x122dff03UL },
+ { &fnv_test_str[131], (Fnv32_t) 0xb4cd8875UL },
+ { &fnv_test_str[132], (Fnv32_t) 0xf4dba725UL },
+ { &fnv_test_str[133], (Fnv32_t) 0x41a16560UL },
+ { &fnv_test_str[134], (Fnv32_t) 0x9c0f941fUL },
+ { &fnv_test_str[135], (Fnv32_t) 0x451a5348UL },
+ { &fnv_test_str[136], (Fnv32_t) 0x3f1d1d89UL },
+ { &fnv_test_str[137], (Fnv32_t) 0x1b91b57aUL },
+ { &fnv_test_str[138], (Fnv32_t) 0x3e99b577UL },
+ { &fnv_test_str[139], (Fnv32_t) 0x4c9de07aUL },
+ { &fnv_test_str[140], (Fnv32_t) 0x1ddf7572UL },
+ { &fnv_test_str[141], (Fnv32_t) 0x64e81976UL },
+ { &fnv_test_str[142], (Fnv32_t) 0x1106a888UL },
+ { &fnv_test_str[143], (Fnv32_t) 0xa498d8e5UL },
+ { &fnv_test_str[144], (Fnv32_t) 0x3c03d2e3UL },
+ { &fnv_test_str[145], (Fnv32_t) 0x26568b28UL },
+ { &fnv_test_str[146], (Fnv32_t) 0x70d7fb42UL },
+ { &fnv_test_str[147], (Fnv32_t) 0xd3ae1d22UL },
+ { &fnv_test_str[148], (Fnv32_t) 0xac8ea5f4UL },
+ { &fnv_test_str[149], (Fnv32_t) 0x4d0abd60UL },
+ { &fnv_test_str[150], (Fnv32_t) 0x48f5e086UL },
+ { &fnv_test_str[151], (Fnv32_t) 0xa8f6241bUL },
+ { &fnv_test_str[152], (Fnv32_t) 0x572f864fUL },
+ { &fnv_test_str[153], (Fnv32_t) 0xa5340803UL },
+ { &fnv_test_str[154], (Fnv32_t) 0x22881aa8UL },
+ { &fnv_test_str[155], (Fnv32_t) 0xc2e2f5a2UL },
+ { &fnv_test_str[156], (Fnv32_t) 0xebf5aec7UL },
+ { &fnv_test_str[157], (Fnv32_t) 0x3cdbfb85UL },
+ { &fnv_test_str[158], (Fnv32_t) 0xbb859704UL },
+ { &fnv_test_str[159], (Fnv32_t) 0xc956fe11UL },
+ { &fnv_test_str[160], (Fnv32_t) 0x8f11a7c9UL },
+ { &fnv_test_str[161], (Fnv32_t) 0x36c48ecfUL },
+ { &fnv_test_str[162], (Fnv32_t) 0x24bfa27eUL },
+ { &fnv_test_str[163], (Fnv32_t) 0xf2596ad1UL },
+ { &fnv_test_str[164], (Fnv32_t) 0xf14a9b45UL },
+ { &fnv_test_str[165], (Fnv32_t) 0x7d45835aUL },
+ { &fnv_test_str[166], (Fnv32_t) 0x6e49334dUL },
+ { &fnv_test_str[167], (Fnv32_t) 0x71767337UL },
+ { &fnv_test_str[168], (Fnv32_t) 0x858a1a8aUL },
+ { &fnv_test_str[169], (Fnv32_t) 0x16e75ac2UL },
+ { &fnv_test_str[170], (Fnv32_t) 0x409f99dfUL },
+ { &fnv_test_str[171], (Fnv32_t) 0x6d6652ddUL },
+ { &fnv_test_str[172], (Fnv32_t) 0x2761a9ffUL },
+ { &fnv_test_str[173], (Fnv32_t) 0x41f0d616UL },
+ { &fnv_test_str[174], (Fnv32_t) 0x0e2d0d0fUL },
+ { &fnv_test_str[175], (Fnv32_t) 0x06adc8fdUL },
+ { &fnv_test_str[176], (Fnv32_t) 0x60e0d4b9UL },
+ { &fnv_test_str[177], (Fnv32_t) 0x5ddc79d3UL },
+ { &fnv_test_str[178], (Fnv32_t) 0x1e6d0b46UL },
+ { &fnv_test_str[179], (Fnv32_t) 0x1d1514d8UL },
+ { &fnv_test_str[180], (Fnv32_t) 0xb1903a4eUL },
+ { &fnv_test_str[181], (Fnv32_t) 0x8200c318UL },
+ { &fnv_test_str[182], (Fnv32_t) 0x15e22888UL },
+ { &fnv_test_str[183], (Fnv32_t) 0x57591760UL },
+ { &fnv_test_str[184], (Fnv32_t) 0x02462efcUL },
+ { &fnv_test_str[185], (Fnv32_t) 0x7651ec44UL },
+ { &fnv_test_str[186], (Fnv32_t) 0x7c24e9d4UL },
+ { &fnv_test_str[187], (Fnv32_t) 0x1952a034UL },
+ { &fnv_test_str[188], (Fnv32_t) 0xd4c46864UL },
+ { &fnv_test_str[189], (Fnv32_t) 0xcb57cde0UL },
+ { &fnv_test_str[190], (Fnv32_t) 0x71136a70UL },
+ { &fnv_test_str[191], (Fnv32_t) 0x0618fb40UL },
+ { &fnv_test_str[192], (Fnv32_t) 0x69a24fc0UL },
+ { &fnv_test_str[193], (Fnv32_t) 0x6a9be510UL },
+ { &fnv_test_str[194], (Fnv32_t) 0xe0477040UL },
+ { &fnv_test_str[195], (Fnv32_t) 0x85aa94b0UL },
+ { &fnv_test_str[196], (Fnv32_t) 0xc6d76240UL },
+ { &fnv_test_str[197], (Fnv32_t) 0xa9f09e40UL },
+ { &fnv_test_str[198], (Fnv32_t) 0xa0291540UL },
+ { &fnv_test_str[199], (Fnv32_t) 0x00000000UL },
+ { &fnv_test_str[200], (Fnv32_t) 0x2e672aa4UL },
+ { &fnv_test_str[201], (Fnv32_t) 0x84b1aa48UL },
+ { &fnv_test_str[202], (Fnv32_t) 0xfc24ba24UL },
+ { NULL, 0 }
+};
+
+/* FNV-1 32 bit test vectors */
+struct fnv1_32_test_vector fnv1_32_vector[] = {
+ { &fnv_test_str[0], (Fnv32_t) 0x811c9dc5UL },
+ { &fnv_test_str[1], (Fnv32_t) 0x050c5d7eUL },
+ { &fnv_test_str[2], (Fnv32_t) 0x050c5d7dUL },
+ { &fnv_test_str[3], (Fnv32_t) 0x050c5d7cUL },
+ { &fnv_test_str[4], (Fnv32_t) 0x050c5d7bUL },
+ { &fnv_test_str[5], (Fnv32_t) 0x050c5d7aUL },
+ { &fnv_test_str[6], (Fnv32_t) 0x050c5d79UL },
+ { &fnv_test_str[7], (Fnv32_t) 0x6b772514UL },
+ { &fnv_test_str[8], (Fnv32_t) 0x408f5e13UL },
+ { &fnv_test_str[9], (Fnv32_t) 0xb4b1178bUL },
+ { &fnv_test_str[10], (Fnv32_t) 0xfdc80fb0UL },
+ { &fnv_test_str[11], (Fnv32_t) 0x31f0b262UL },
+ { &fnv_test_str[12], (Fnv32_t) 0x050c5d1fUL },
+ { &fnv_test_str[13], (Fnv32_t) 0x70772d5aUL },
+ { &fnv_test_str[14], (Fnv32_t) 0x6f772bc7UL },
+ { &fnv_test_str[15], (Fnv32_t) 0x6e772a34UL },
+ { &fnv_test_str[16], (Fnv32_t) 0x6d7728a1UL },
+ { &fnv_test_str[17], (Fnv32_t) 0x6c77270eUL },
+ { &fnv_test_str[18], (Fnv32_t) 0x6b77257bUL },
+ { &fnv_test_str[19], (Fnv32_t) 0x408f5e7cUL },
+ { &fnv_test_str[20], (Fnv32_t) 0xb4b117e9UL },
+ { &fnv_test_str[21], (Fnv32_t) 0xfdc80fd1UL },
+ { &fnv_test_str[22], (Fnv32_t) 0x31f0b210UL },
+ { &fnv_test_str[23], (Fnv32_t) 0xffe8d046UL },
+ { &fnv_test_str[24], (Fnv32_t) 0x6e772a5cUL },
+ { &fnv_test_str[25], (Fnv32_t) 0x4197aebbUL },
+ { &fnv_test_str[26], (Fnv32_t) 0xfcc8100fUL },
+ { &fnv_test_str[27], (Fnv32_t) 0xfdf147faUL },
+ { &fnv_test_str[28], (Fnv32_t) 0xbcd44ee1UL },
+ { &fnv_test_str[29], (Fnv32_t) 0x23382c13UL },
+ { &fnv_test_str[30], (Fnv32_t) 0x846d619eUL },
+ { &fnv_test_str[31], (Fnv32_t) 0x1630abdbUL },
+ { &fnv_test_str[32], (Fnv32_t) 0xc99e89b2UL },
+ { &fnv_test_str[33], (Fnv32_t) 0x1692c316UL },
+ { &fnv_test_str[34], (Fnv32_t) 0x9f091bcaUL },
+ { &fnv_test_str[35], (Fnv32_t) 0x2556be9bUL },
+ { &fnv_test_str[36], (Fnv32_t) 0x628e0e73UL },
+ { &fnv_test_str[37], (Fnv32_t) 0x98a0bf6cUL },
+ { &fnv_test_str[38], (Fnv32_t) 0xb10d5725UL },
+ { &fnv_test_str[39], (Fnv32_t) 0xdd002f35UL },
+ { &fnv_test_str[40], (Fnv32_t) 0x4197aed4UL },
+ { &fnv_test_str[41], (Fnv32_t) 0xfcc81061UL },
+ { &fnv_test_str[42], (Fnv32_t) 0xfdf1479dUL },
+ { &fnv_test_str[43], (Fnv32_t) 0xbcd44e8eUL },
+ { &fnv_test_str[44], (Fnv32_t) 0x23382c33UL },
+ { &fnv_test_str[45], (Fnv32_t) 0x846d61e9UL },
+ { &fnv_test_str[46], (Fnv32_t) 0x1630abbaUL },
+ { &fnv_test_str[47], (Fnv32_t) 0xc99e89c1UL },
+ { &fnv_test_str[48], (Fnv32_t) 0x1692c336UL },
+ { &fnv_test_str[49], (Fnv32_t) 0x9f091ba2UL },
+ { &fnv_test_str[50], (Fnv32_t) 0x2556befeUL },
+ { &fnv_test_str[51], (Fnv32_t) 0x628e0e01UL },
+ { &fnv_test_str[52], (Fnv32_t) 0x98a0bf09UL },
+ { &fnv_test_str[53], (Fnv32_t) 0xb10d5704UL },
+ { &fnv_test_str[54], (Fnv32_t) 0xdd002f3fUL },
+ { &fnv_test_str[55], (Fnv32_t) 0x1c4a506fUL },
+ { &fnv_test_str[56], (Fnv32_t) 0x6e772a41UL },
+ { &fnv_test_str[57], (Fnv32_t) 0x26978421UL },
+ { &fnv_test_str[58], (Fnv32_t) 0xe184ff97UL },
+ { &fnv_test_str[59], (Fnv32_t) 0x9b5e5ac6UL },
+ { &fnv_test_str[60], (Fnv32_t) 0x5b88e592UL },
+ { &fnv_test_str[61], (Fnv32_t) 0xaa8164b7UL },
+ { &fnv_test_str[62], (Fnv32_t) 0x20b18c7bUL },
+ { &fnv_test_str[63], (Fnv32_t) 0xf28025c5UL },
+ { &fnv_test_str[64], (Fnv32_t) 0x84bb753fUL },
+ { &fnv_test_str[65], (Fnv32_t) 0x3219925aUL },
+ { &fnv_test_str[66], (Fnv32_t) 0x384163c6UL },
+ { &fnv_test_str[67], (Fnv32_t) 0x54f010d7UL },
+ { &fnv_test_str[68], (Fnv32_t) 0x8cea820cUL },
+ { &fnv_test_str[69], (Fnv32_t) 0xe12ab8eeUL },
+ { &fnv_test_str[70], (Fnv32_t) 0x26978453UL },
+ { &fnv_test_str[71], (Fnv32_t) 0xe184fff3UL },
+ { &fnv_test_str[72], (Fnv32_t) 0x9b5e5ab5UL },
+ { &fnv_test_str[73], (Fnv32_t) 0x5b88e5b2UL },
+ { &fnv_test_str[74], (Fnv32_t) 0xaa8164d6UL },
+ { &fnv_test_str[75], (Fnv32_t) 0x20b18c15UL },
+ { &fnv_test_str[76], (Fnv32_t) 0xf28025a1UL },
+ { &fnv_test_str[77], (Fnv32_t) 0x84bb751fUL },
+ { &fnv_test_str[78], (Fnv32_t) 0x3219922dUL },
+ { &fnv_test_str[79], (Fnv32_t) 0x384163aeUL },
+ { &fnv_test_str[80], (Fnv32_t) 0x54f010b2UL },
+ { &fnv_test_str[81], (Fnv32_t) 0x8cea8275UL },
+ { &fnv_test_str[82], (Fnv32_t) 0xe12ab8e4UL },
+ { &fnv_test_str[83], (Fnv32_t) 0x64411eaaUL },
+ { &fnv_test_str[84], (Fnv32_t) 0x6977223cUL },
+ { &fnv_test_str[85], (Fnv32_t) 0x428ae474UL },
+ { &fnv_test_str[86], (Fnv32_t) 0xb6fa7167UL },
+ { &fnv_test_str[87], (Fnv32_t) 0x73408525UL },
+ { &fnv_test_str[88], (Fnv32_t) 0xb78320a1UL },
+ { &fnv_test_str[89], (Fnv32_t) 0x0caf4135UL },
+ { &fnv_test_str[90], (Fnv32_t) 0xb78320a2UL },
+ { &fnv_test_str[91], (Fnv32_t) 0xcdc88e80UL },
+ { &fnv_test_str[92], (Fnv32_t) 0xb78320a3UL },
+ { &fnv_test_str[93], (Fnv32_t) 0x8ee1dbcbUL },
+ { &fnv_test_str[94], (Fnv32_t) 0xb78320a4UL },
+ { &fnv_test_str[95], (Fnv32_t) 0x4ffb2716UL },
+ { &fnv_test_str[96], (Fnv32_t) 0x860632aaUL },
+ { &fnv_test_str[97], (Fnv32_t) 0xcc2c5c64UL },
+ { &fnv_test_str[98], (Fnv32_t) 0x860632a4UL },
+ { &fnv_test_str[99], (Fnv32_t) 0x2a7ec4a6UL },
+ { &fnv_test_str[100], (Fnv32_t) 0x860632baUL },
+ { &fnv_test_str[101], (Fnv32_t) 0xfefe8e14UL },
+ { &fnv_test_str[102], (Fnv32_t) 0x0a3cffd8UL },
+ { &fnv_test_str[103], (Fnv32_t) 0xf606c108UL },
+ { &fnv_test_str[104], (Fnv32_t) 0x0a3cffdbUL },
+ { &fnv_test_str[105], (Fnv32_t) 0xf906c5c1UL },
+ { &fnv_test_str[106], (Fnv32_t) 0x0a3cffdaUL },
+ { &fnv_test_str[107], (Fnv32_t) 0xf806c42eUL },
+ { &fnv_test_str[108], (Fnv32_t) 0xc07167d7UL },
+ { &fnv_test_str[109], (Fnv32_t) 0xc9867775UL },
+ { &fnv_test_str[110], (Fnv32_t) 0xbf716668UL },
+ { &fnv_test_str[111], (Fnv32_t) 0xc78435b8UL },
+ { &fnv_test_str[112], (Fnv32_t) 0xc6717155UL },
+ { &fnv_test_str[113], (Fnv32_t) 0xb99568cfUL },
+ { &fnv_test_str[114], (Fnv32_t) 0x7662e0d6UL },
+ { &fnv_test_str[115], (Fnv32_t) 0x33a7f0e2UL },
+ { &fnv_test_str[116], (Fnv32_t) 0xc2732f95UL },
+ { &fnv_test_str[117], (Fnv32_t) 0xb053e78fUL },
+ { &fnv_test_str[118], (Fnv32_t) 0x3a19c02aUL },
+ { &fnv_test_str[119], (Fnv32_t) 0xa089821eUL },
+ { &fnv_test_str[120], (Fnv32_t) 0x31ae8f83UL },
+ { &fnv_test_str[121], (Fnv32_t) 0x995fa9c4UL },
+ { &fnv_test_str[122], (Fnv32_t) 0x35983f8cUL },
+ { &fnv_test_str[123], (Fnv32_t) 0x5036a251UL },
+ { &fnv_test_str[124], (Fnv32_t) 0x97018583UL },
+ { &fnv_test_str[125], (Fnv32_t) 0xb4448d60UL },
+ { &fnv_test_str[126], (Fnv32_t) 0x025dfe59UL },
+ { &fnv_test_str[127], (Fnv32_t) 0xc5eab3afUL },
+ { &fnv_test_str[128], (Fnv32_t) 0x7d21ba1eUL },
+ { &fnv_test_str[129], (Fnv32_t) 0x7704cddbUL },
+ { &fnv_test_str[130], (Fnv32_t) 0xd0071bfeUL },
+ { &fnv_test_str[131], (Fnv32_t) 0x0ff3774cUL },
+ { &fnv_test_str[132], (Fnv32_t) 0xb0fea0eaUL },
+ { &fnv_test_str[133], (Fnv32_t) 0x58177303UL },
+ { &fnv_test_str[134], (Fnv32_t) 0x4f599cdaUL },
+ { &fnv_test_str[135], (Fnv32_t) 0x3e590a47UL },
+ { &fnv_test_str[136], (Fnv32_t) 0x965595f8UL },
+ { &fnv_test_str[137], (Fnv32_t) 0xc37f178dUL },
+ { &fnv_test_str[138], (Fnv32_t) 0x9711dd26UL },
+ { &fnv_test_str[139], (Fnv32_t) 0x23c99b7fUL },
+ { &fnv_test_str[140], (Fnv32_t) 0x6e568b17UL },
+ { &fnv_test_str[141], (Fnv32_t) 0x43f0245bUL },
+ { &fnv_test_str[142], (Fnv32_t) 0xbcb7a001UL },
+ { &fnv_test_str[143], (Fnv32_t) 0x12e6dffeUL },
+ { &fnv_test_str[144], (Fnv32_t) 0x0792f2d6UL },
+ { &fnv_test_str[145], (Fnv32_t) 0xb966936bUL },
+ { &fnv_test_str[146], (Fnv32_t) 0x46439ac5UL },
+ { &fnv_test_str[147], (Fnv32_t) 0x728d49afUL },
+ { &fnv_test_str[148], (Fnv32_t) 0xd33745c9UL },
+ { &fnv_test_str[149], (Fnv32_t) 0xbc382a57UL },
+ { &fnv_test_str[150], (Fnv32_t) 0x4bda1d31UL },
+ { &fnv_test_str[151], (Fnv32_t) 0xce35ccaeUL },
+ { &fnv_test_str[152], (Fnv32_t) 0x3b6eed94UL },
+ { &fnv_test_str[153], (Fnv32_t) 0x445c9c58UL },
+ { &fnv_test_str[154], (Fnv32_t) 0x3db8bf9dUL },
+ { &fnv_test_str[155], (Fnv32_t) 0x2dee116dUL },
+ { &fnv_test_str[156], (Fnv32_t) 0xc18738daUL },
+ { &fnv_test_str[157], (Fnv32_t) 0x5b156176UL },
+ { &fnv_test_str[158], (Fnv32_t) 0x2aa7d593UL },
+ { &fnv_test_str[159], (Fnv32_t) 0xb2409658UL },
+ { &fnv_test_str[160], (Fnv32_t) 0xe1489528UL },
+ { &fnv_test_str[161], (Fnv32_t) 0xfe1ee07eUL },
+ { &fnv_test_str[162], (Fnv32_t) 0xe8842315UL },
+ { &fnv_test_str[163], (Fnv32_t) 0x3a6a63a2UL },
+ { &fnv_test_str[164], (Fnv32_t) 0x06d2c18cUL },
+ { &fnv_test_str[165], (Fnv32_t) 0xf8ef7225UL },
+ { &fnv_test_str[166], (Fnv32_t) 0x843d3300UL },
+ { &fnv_test_str[167], (Fnv32_t) 0xbb24f7aeUL },
+ { &fnv_test_str[168], (Fnv32_t) 0x878c0ec9UL },
+ { &fnv_test_str[169], (Fnv32_t) 0xb557810fUL },
+ { &fnv_test_str[170], (Fnv32_t) 0x57423246UL },
+ { &fnv_test_str[171], (Fnv32_t) 0x87f7505eUL },
+ { &fnv_test_str[172], (Fnv32_t) 0xbb809f20UL },
+ { &fnv_test_str[173], (Fnv32_t) 0x8932abb5UL },
+ { &fnv_test_str[174], (Fnv32_t) 0x0a9b3aa0UL },
+ { &fnv_test_str[175], (Fnv32_t) 0xb8682a24UL },
+ { &fnv_test_str[176], (Fnv32_t) 0xa7ac1c56UL },
+ { &fnv_test_str[177], (Fnv32_t) 0x11409252UL },
+ { &fnv_test_str[178], (Fnv32_t) 0xa987f517UL },
+ { &fnv_test_str[179], (Fnv32_t) 0xf309e7edUL },
+ { &fnv_test_str[180], (Fnv32_t) 0xc9e8f417UL },
+ { &fnv_test_str[181], (Fnv32_t) 0x7f447bddUL },
+ { &fnv_test_str[182], (Fnv32_t) 0xb929adc5UL },
+ { &fnv_test_str[183], (Fnv32_t) 0x57022879UL },
+ { &fnv_test_str[184], (Fnv32_t) 0xdcfd2c49UL },
+ { &fnv_test_str[185], (Fnv32_t) 0x6edafff5UL },
+ { &fnv_test_str[186], (Fnv32_t) 0xf04fb1f1UL },
+ { &fnv_test_str[187], (Fnv32_t) 0xfb7de8b9UL },
+ { &fnv_test_str[188], (Fnv32_t) 0xc5f1d7e9UL },
+ { &fnv_test_str[189], (Fnv32_t) 0x32c1f439UL },
+ { &fnv_test_str[190], (Fnv32_t) 0x7fd3eb7dUL },
+ { &fnv_test_str[191], (Fnv32_t) 0x81597da5UL },
+ { &fnv_test_str[192], (Fnv32_t) 0x05eb7a25UL },
+ { &fnv_test_str[193], (Fnv32_t) 0x9c0fa1b5UL },
+ { &fnv_test_str[194], (Fnv32_t) 0x53ccb1c5UL },
+ { &fnv_test_str[195], (Fnv32_t) 0xfabece15UL },
+ { &fnv_test_str[196], (Fnv32_t) 0x4ad745a5UL },
+ { &fnv_test_str[197], (Fnv32_t) 0xe5bdc495UL },
+ { &fnv_test_str[198], (Fnv32_t) 0x23b3c0a5UL },
+ { &fnv_test_str[199], (Fnv32_t) 0xfa823dd5UL },
+ { &fnv_test_str[200], (Fnv32_t) 0x0c6c58b9UL },
+ { &fnv_test_str[201], (Fnv32_t) 0xe2dbccd5UL },
+ { &fnv_test_str[202], (Fnv32_t) 0xdb7f50f9UL },
+ { NULL, 0 }
+};
+
+/* FNV-1a 32 bit test vectors */
+struct fnv1a_32_test_vector fnv1a_32_vector[] = {
+ { &fnv_test_str[0], (Fnv32_t) 0x811c9dc5UL },
+ { &fnv_test_str[1], (Fnv32_t) 0xe40c292cUL },
+ { &fnv_test_str[2], (Fnv32_t) 0xe70c2de5UL },
+ { &fnv_test_str[3], (Fnv32_t) 0xe60c2c52UL },
+ { &fnv_test_str[4], (Fnv32_t) 0xe10c2473UL },
+ { &fnv_test_str[5], (Fnv32_t) 0xe00c22e0UL },
+ { &fnv_test_str[6], (Fnv32_t) 0xe30c2799UL },
+ { &fnv_test_str[7], (Fnv32_t) 0x6222e842UL },
+ { &fnv_test_str[8], (Fnv32_t) 0xa9f37ed7UL },
+ { &fnv_test_str[9], (Fnv32_t) 0x3f5076efUL },
+ { &fnv_test_str[10], (Fnv32_t) 0x39aaa18aUL },
+ { &fnv_test_str[11], (Fnv32_t) 0xbf9cf968UL },
+ { &fnv_test_str[12], (Fnv32_t) 0x050c5d1fUL },
+ { &fnv_test_str[13], (Fnv32_t) 0x2b24d044UL },
+ { &fnv_test_str[14], (Fnv32_t) 0x9d2c3f7fUL },
+ { &fnv_test_str[15], (Fnv32_t) 0x7729c516UL },
+ { &fnv_test_str[16], (Fnv32_t) 0xb91d6109UL },
+ { &fnv_test_str[17], (Fnv32_t) 0x931ae6a0UL },
+ { &fnv_test_str[18], (Fnv32_t) 0x052255dbUL },
+ { &fnv_test_str[19], (Fnv32_t) 0xbef39fe6UL },
+ { &fnv_test_str[20], (Fnv32_t) 0x6150ac75UL },
+ { &fnv_test_str[21], (Fnv32_t) 0x9aab3a3dUL },
+ { &fnv_test_str[22], (Fnv32_t) 0x519c4c3eUL },
+ { &fnv_test_str[23], (Fnv32_t) 0x0c1c9eb8UL },
+ { &fnv_test_str[24], (Fnv32_t) 0x5f299f4eUL },
+ { &fnv_test_str[25], (Fnv32_t) 0xef8580f3UL },
+ { &fnv_test_str[26], (Fnv32_t) 0xac297727UL },
+ { &fnv_test_str[27], (Fnv32_t) 0x4546b9c0UL },
+ { &fnv_test_str[28], (Fnv32_t) 0xbd564e7dUL },
+ { &fnv_test_str[29], (Fnv32_t) 0x6bdd5c67UL },
+ { &fnv_test_str[30], (Fnv32_t) 0xdd77ed30UL },
+ { &fnv_test_str[31], (Fnv32_t) 0xf4ca9683UL },
+ { &fnv_test_str[32], (Fnv32_t) 0x4aeb9bd0UL },
+ { &fnv_test_str[33], (Fnv32_t) 0xe0e67ad0UL },
+ { &fnv_test_str[34], (Fnv32_t) 0xc2d32fa8UL },
+ { &fnv_test_str[35], (Fnv32_t) 0x7f743fb7UL },
+ { &fnv_test_str[36], (Fnv32_t) 0x6900631fUL },
+ { &fnv_test_str[37], (Fnv32_t) 0xc59c990eUL },
+ { &fnv_test_str[38], (Fnv32_t) 0x448524fdUL },
+ { &fnv_test_str[39], (Fnv32_t) 0xd49930d5UL },
+ { &fnv_test_str[40], (Fnv32_t) 0x1c85c7caUL },
+ { &fnv_test_str[41], (Fnv32_t) 0x0229fe89UL },
+ { &fnv_test_str[42], (Fnv32_t) 0x2c469265UL },
+ { &fnv_test_str[43], (Fnv32_t) 0xce566940UL },
+ { &fnv_test_str[44], (Fnv32_t) 0x8bdd8ec7UL },
+ { &fnv_test_str[45], (Fnv32_t) 0x34787625UL },
+ { &fnv_test_str[46], (Fnv32_t) 0xd3ca6290UL },
+ { &fnv_test_str[47], (Fnv32_t) 0xddeaf039UL },
+ { &fnv_test_str[48], (Fnv32_t) 0xc0e64870UL },
+ { &fnv_test_str[49], (Fnv32_t) 0xdad35570UL },
+ { &fnv_test_str[50], (Fnv32_t) 0x5a740578UL },
+ { &fnv_test_str[51], (Fnv32_t) 0x5b004d15UL },
+ { &fnv_test_str[52], (Fnv32_t) 0x6a9c09cdUL },
+ { &fnv_test_str[53], (Fnv32_t) 0x2384f10aUL },
+ { &fnv_test_str[54], (Fnv32_t) 0xda993a47UL },
+ { &fnv_test_str[55], (Fnv32_t) 0x8227df4fUL },
+ { &fnv_test_str[56], (Fnv32_t) 0x4c298165UL },
+ { &fnv_test_str[57], (Fnv32_t) 0xfc563735UL },
+ { &fnv_test_str[58], (Fnv32_t) 0x8cb91483UL },
+ { &fnv_test_str[59], (Fnv32_t) 0x775bf5d0UL },
+ { &fnv_test_str[60], (Fnv32_t) 0xd5c428d0UL },
+ { &fnv_test_str[61], (Fnv32_t) 0x34cc0ea3UL },
+ { &fnv_test_str[62], (Fnv32_t) 0xea3b4cb7UL },
+ { &fnv_test_str[63], (Fnv32_t) 0x8e59f029UL },
+ { &fnv_test_str[64], (Fnv32_t) 0x2094de2bUL },
+ { &fnv_test_str[65], (Fnv32_t) 0xa65a0ad4UL },
+ { &fnv_test_str[66], (Fnv32_t) 0x9bbee5f4UL },
+ { &fnv_test_str[67], (Fnv32_t) 0xbe836343UL },
+ { &fnv_test_str[68], (Fnv32_t) 0x22d5344eUL },
+ { &fnv_test_str[69], (Fnv32_t) 0x19a1470cUL },
+ { &fnv_test_str[70], (Fnv32_t) 0x4a56b1ffUL },
+ { &fnv_test_str[71], (Fnv32_t) 0x70b8e86fUL },
+ { &fnv_test_str[72], (Fnv32_t) 0x0a5b4a39UL },
+ { &fnv_test_str[73], (Fnv32_t) 0xb5c3f670UL },
+ { &fnv_test_str[74], (Fnv32_t) 0x53cc3f70UL },
+ { &fnv_test_str[75], (Fnv32_t) 0xc03b0a99UL },
+ { &fnv_test_str[76], (Fnv32_t) 0x7259c415UL },
+ { &fnv_test_str[77], (Fnv32_t) 0x4095108bUL },
+ { &fnv_test_str[78], (Fnv32_t) 0x7559bdb1UL },
+ { &fnv_test_str[79], (Fnv32_t) 0xb3bf0bbcUL },
+ { &fnv_test_str[80], (Fnv32_t) 0x2183ff1cUL },
+ { &fnv_test_str[81], (Fnv32_t) 0x2bd54279UL },
+ { &fnv_test_str[82], (Fnv32_t) 0x23a156caUL },
+ { &fnv_test_str[83], (Fnv32_t) 0x64e2d7e4UL },
+ { &fnv_test_str[84], (Fnv32_t) 0x683af69aUL },
+ { &fnv_test_str[85], (Fnv32_t) 0xaed2346eUL },
+ { &fnv_test_str[86], (Fnv32_t) 0x4f9f2cabUL },
+ { &fnv_test_str[87], (Fnv32_t) 0x02935131UL },
+ { &fnv_test_str[88], (Fnv32_t) 0xc48fb86dUL },
+ { &fnv_test_str[89], (Fnv32_t) 0x2269f369UL },
+ { &fnv_test_str[90], (Fnv32_t) 0xc18fb3b4UL },
+ { &fnv_test_str[91], (Fnv32_t) 0x50ef1236UL },
+ { &fnv_test_str[92], (Fnv32_t) 0xc28fb547UL },
+ { &fnv_test_str[93], (Fnv32_t) 0x96c3bf47UL },
+ { &fnv_test_str[94], (Fnv32_t) 0xbf8fb08eUL },
+ { &fnv_test_str[95], (Fnv32_t) 0xf3e4d49cUL },
+ { &fnv_test_str[96], (Fnv32_t) 0x32179058UL },
+ { &fnv_test_str[97], (Fnv32_t) 0x280bfee6UL },
+ { &fnv_test_str[98], (Fnv32_t) 0x30178d32UL },
+ { &fnv_test_str[99], (Fnv32_t) 0x21addaf8UL },
+ { &fnv_test_str[100], (Fnv32_t) 0x4217a988UL },
+ { &fnv_test_str[101], (Fnv32_t) 0x772633d6UL },
+ { &fnv_test_str[102], (Fnv32_t) 0x08a3d11eUL },
+ { &fnv_test_str[103], (Fnv32_t) 0xb7e2323aUL },
+ { &fnv_test_str[104], (Fnv32_t) 0x07a3cf8bUL },
+ { &fnv_test_str[105], (Fnv32_t) 0x91dfb7d1UL },
+ { &fnv_test_str[106], (Fnv32_t) 0x06a3cdf8UL },
+ { &fnv_test_str[107], (Fnv32_t) 0x6bdd3d68UL },
+ { &fnv_test_str[108], (Fnv32_t) 0x1d5636a7UL },
+ { &fnv_test_str[109], (Fnv32_t) 0xd5b808e5UL },
+ { &fnv_test_str[110], (Fnv32_t) 0x1353e852UL },
+ { &fnv_test_str[111], (Fnv32_t) 0xbf16b916UL },
+ { &fnv_test_str[112], (Fnv32_t) 0xa55b89edUL },
+ { &fnv_test_str[113], (Fnv32_t) 0x3c1a2017UL },
+ { &fnv_test_str[114], (Fnv32_t) 0x0588b13cUL },
+ { &fnv_test_str[115], (Fnv32_t) 0xf22f0174UL },
+ { &fnv_test_str[116], (Fnv32_t) 0xe83641e1UL },
+ { &fnv_test_str[117], (Fnv32_t) 0x6e69b533UL },
+ { &fnv_test_str[118], (Fnv32_t) 0xf1760448UL },
+ { &fnv_test_str[119], (Fnv32_t) 0x64c8bd58UL },
+ { &fnv_test_str[120], (Fnv32_t) 0x97b4ea23UL },
+ { &fnv_test_str[121], (Fnv32_t) 0x9a4e92e6UL },
+ { &fnv_test_str[122], (Fnv32_t) 0xcfb14012UL },
+ { &fnv_test_str[123], (Fnv32_t) 0xf01b2511UL },
+