32 lines
925 B
Plaintext
32 lines
925 B
Plaintext
.{hashers, log, memory, string} := @use("../../../../../libraries/stn/src/lib.hb")
|
|
|
|
test := fn(): uint {
|
|
buffer := memory.request_page(1)
|
|
target := "abcdefghijklmnop\0"
|
|
strings := [^u8].("abcdefshijklmnop\0", "abcdefghijklnnop\0", "abcdefshijklmnop\0", "abcdefghijklmnop\0", "abcdefghijflmnop\0", "dbcdefghijklmnop\0", "abcdefghijklmnop\0")
|
|
len := @sizeof(@TypeOf(strings)) / @sizeof(^u8)
|
|
strlen := string.length(target)
|
|
|
|
// hasher := hashers.foldhash.FoldHasher.new(1)
|
|
hasher := hashers.foldhash.FoldHasher.default()
|
|
hasher.write(target, strlen)
|
|
correct := hasher.finish()
|
|
|
|
log.warn("target:\0")
|
|
log.warn(target)
|
|
|
|
i := 0
|
|
loop if i == len break else {
|
|
defer i += 1
|
|
hasher.reset()
|
|
hasher.write(strings[i], strlen)
|
|
d := hasher.finish()
|
|
if d == correct {
|
|
log.warn("match found\0")
|
|
}
|
|
log.info(strings[i])
|
|
log.debug(string.display_int(@bitcast(d), buffer, 16))
|
|
string.clear(buffer)
|
|
}
|
|
return 0
|
|
} |