1# $NetBSD: varmod-hash.mk,v 1.6 2024/07/20 11:05:12 rillig Exp $
2#
3# Tests for the :hash variable modifier, which computes a 32-bit hash from
4# the value of the expression.
5
6# Test vectors for generating certain hashes.  Found by a brute force
7# search over [a-z]{8}.
8#
9VECTORS+= 00000000 adjbuqnt
10VECTORS+= 00000001 beiiyxdp
11VECTORS+= 00000002 ajriwzqe
12VECTORS+= 00000004 aimszzcb
13VECTORS+= 00000008 afffvsgz
14VECTORS+= 00000010 alkksbun
15VECTORS+= 00000020 arqeianj
16VECTORS+= 00000040 acgaltwv
17VECTORS+= 00000080 addsjxec
18VECTORS+= 00000100 acbozubm
19VECTORS+= 00000200 acnbugtp
20VECTORS+= 00000400 ajyfkpcl
21VECTORS+= 00000800 akobyelz
22VECTORS+= 00001000 aclmaggk
23VECTORS+= 00002000 aauwlqiq
24VECTORS+= 00004000 ankfvoqf
25VECTORS+= 00008000 airtytts
26VECTORS+= 00010000 bfwwrqfi
27VECTORS+= 00020000 actwkzix
28VECTORS+= 00040000 alsfbgvo
29VECTORS+= 00080000 aioiauem
30VECTORS+= 00100000 bxexhpji
31VECTORS+= 00200000 awtxcwch
32VECTORS+= 00400000 aoqpmqam
33VECTORS+= 00800000 akgtvjhz
34VECTORS+= 01000000 bcmsuvrm
35VECTORS+= 02000000 aqnktorm
36VECTORS+= 04000000 aweqylny
37VECTORS+= 08000000 crvkuyze
38VECTORS+= 10000000 alxiatjv
39VECTORS+= 20000000 aezwuukx
40VECTORS+= 40000000 abdpnifu
41VECTORS+= 80000000 auusgoii
42VECTORS+= ffffffff ahnvmfdw
43
44VECTORS+= b2af338b ""
45VECTORS+= 3360ac65 a
46VECTORS+= 7747f046 ab
47VECTORS+= 9ca87054 abc
48VECTORS+= 880fe816 abcd
49VECTORS+= 208fcbd3 abcde
50VECTORS+= d5d376eb abcdef
51VECTORS+= de41416c abcdefghijklmnopqrstuvwxyz
52
53.for hash input in ${VECTORS}
54.  if ${input:S,^""$,,:hash} != ${hash}
55.    warning Expected ${hash} for ${input}, but was ${input:hash}.
56.  endif
57.endfor
58
59all: step-{1,2,3,4,5}
60step-1:
61          @echo ${12345:L:has}                              # modifier name too short
62step-2:
63          @echo ${12345:L:hash}                             # ok
64step-3:
65          @echo ${12345:L:hash=SHA-256}           # :hash does not accept '='
66step-4:
67          @echo ${12345:L:hasX}                             # misspelled
68step-5:
69          @echo ${12345:L:hashed}                           # modifier name too long
70