fune/third_party/rust/rust_cascade/test_data/make-sample-data.py
J.C. Jones 6ac6057d92 Bug 1626636 - Vendor rust-cascade v0.6.0 r=keeler
Add salts, file format v2, SHA256 hash support, and logic inversion

Differential Revision: https://phabricator.services.mozilla.com/D69435

--HG--
rename : third_party/rust/rust_cascade/test_data/test_mlbf => third_party/rust/rust_cascade/test_data/test_v1_murmur_mlbf
rename : third_party/rust/rust_cascade/test_data/test_short_mlbf => third_party/rust/rust_cascade/test_data/test_v1_murmur_short_mlbf
extra : moz-landing-system : lando
2020-04-02 20:30:15 +00:00

59 lines
1.8 KiB
Python

import filtercascade
import hashlib
from pathlib import Path
def predictable_serial_gen(end):
counter = 0
while counter < end:
counter += 1
m = hashlib.sha256()
m.update(counter.to_bytes(4, byteorder="big"))
yield m.hexdigest()
def store(fc, path):
if path.exists():
path.unlink()
with open(path, "wb") as f:
fc.tofile(f)
large_set = set(predictable_serial_gen(100_000))
v2_sha256_with_salt = filtercascade.FilterCascade(
[], defaultHashAlg=filtercascade.fileformats.HashAlgorithm.SHA256, salt=b"nacl"
)
v2_sha256_with_salt.initialize(
include=[b"this", b"that"], exclude=large_set | set([b"other"])
)
store(v2_sha256_with_salt, Path("test_v2_sha256_salt_mlbf"))
v2_sha256 = filtercascade.FilterCascade(
[], defaultHashAlg=filtercascade.fileformats.HashAlgorithm.SHA256
)
v2_sha256.initialize(include=[b"this", b"that"], exclude=large_set | set([b"other"]))
store(v2_sha256, Path("test_v2_sha256_mlbf"))
v2_murmur = filtercascade.FilterCascade(
[], defaultHashAlg=filtercascade.fileformats.HashAlgorithm.MURMUR3
)
v2_murmur.initialize(include=[b"this", b"that"], exclude=large_set | set([b"other"]))
store(v2_murmur, Path("test_v2_murmur_mlbf"))
v2_murmur_inverted = filtercascade.FilterCascade(
[], defaultHashAlg=filtercascade.fileformats.HashAlgorithm.MURMUR3
)
v2_murmur_inverted.initialize(
include=large_set | set([b"this", b"that"]), exclude=[b"other"]
)
store(v2_murmur_inverted, Path("test_v2_murmur_inverted_mlbf"))
v2_sha256_inverted = filtercascade.FilterCascade(
[], defaultHashAlg=filtercascade.fileformats.HashAlgorithm.SHA256
)
v2_sha256_inverted.initialize(
include=large_set | set([b"this", b"that"]), exclude=[b"other"]
)
store(v2_sha256_inverted, Path("test_v2_sha256_inverted_mlbf"))