]>
Commit | Line | Data |
---|---|---|
f52207a4 GS |
1 | #!/bin/sh |
2 | ||
3 | test_description='Testing the various Bloom filter computations in bloom.c' | |
3e3b9321 ÆAB |
4 | |
5 | TEST_PASSES_SANITIZE_LEAK=true | |
f52207a4 GS |
6 | . ./test-lib.sh |
7 | ||
8 | test_expect_success 'compute unseeded murmur3 hash for empty string' ' | |
9 | cat >expect <<-\EOF && | |
10 | Murmur3 Hash with seed=0:0x00000000 | |
11 | EOF | |
12 | test-tool bloom get_murmur3 "" >actual && | |
13 | test_cmp expect actual | |
14 | ' | |
15 | ||
16 | test_expect_success 'compute unseeded murmur3 hash for test string 1' ' | |
17 | cat >expect <<-\EOF && | |
18 | Murmur3 Hash with seed=0:0x627b0c2c | |
19 | EOF | |
20 | test-tool bloom get_murmur3 "Hello world!" >actual && | |
21 | test_cmp expect actual | |
22 | ' | |
23 | ||
24 | test_expect_success 'compute unseeded murmur3 hash for test string 2' ' | |
25 | cat >expect <<-\EOF && | |
26 | Murmur3 Hash with seed=0:0x2e4ff723 | |
27 | EOF | |
28 | test-tool bloom get_murmur3 "The quick brown fox jumps over the lazy dog" >actual && | |
29 | test_cmp expect actual | |
30 | ' | |
31 | ||
f1294eaf GS |
32 | test_expect_success 'compute bloom key for empty string' ' |
33 | cat >expect <<-\EOF && | |
34 | Hashes:0x5615800c|0x5b966560|0x61174ab4|0x66983008|0x6c19155c|0x7199fab0|0x771ae004| | |
35 | Filter_Length:2 | |
36 | Filter_Data:11|11| | |
37 | EOF | |
38 | test-tool bloom generate_filter "" >actual && | |
39 | test_cmp expect actual | |
40 | ' | |
41 | ||
42 | test_expect_success 'compute bloom key for whitespace' ' | |
43 | cat >expect <<-\EOF && | |
44 | Hashes:0xf178874c|0x5f3d6eb6|0xcd025620|0x3ac73d8a|0xa88c24f4|0x16510c5e|0x8415f3c8| | |
45 | Filter_Length:2 | |
46 | Filter_Data:51|55| | |
47 | EOF | |
48 | test-tool bloom generate_filter " " >actual && | |
49 | test_cmp expect actual | |
50 | ' | |
51 | ||
52 | test_expect_success 'compute bloom key for test string 1' ' | |
53 | cat >expect <<-\EOF && | |
54 | Hashes:0xb270de9b|0x1bb6f26e|0x84fd0641|0xee431a14|0x57892de7|0xc0cf41ba|0x2a15558d| | |
55 | Filter_Length:2 | |
56 | Filter_Data:92|6c| | |
57 | EOF | |
58 | test-tool bloom generate_filter "Hello world!" >actual && | |
59 | test_cmp expect actual | |
60 | ' | |
61 | ||
62 | test_expect_success 'compute bloom key for test string 2' ' | |
63 | cat >expect <<-\EOF && | |
64 | Hashes:0x20ab385b|0xf5237fe2|0xc99bc769|0x9e140ef0|0x728c5677|0x47049dfe|0x1b7ce585| | |
65 | Filter_Length:2 | |
66 | Filter_Data:a5|4a| | |
67 | EOF | |
68 | test-tool bloom generate_filter "file.txt" >actual && | |
69 | test_cmp expect actual | |
70 | ' | |
71 | ||
9794633b | 72 | test_expect_success !SANITIZE_LEAK 'get bloom filters for commit with no changes' ' |
ed591feb GS |
73 | git init && |
74 | git commit --allow-empty -m "c0" && | |
75 | cat >expect <<-\EOF && | |
59f0d507 TB |
76 | Filter_Length:1 |
77 | Filter_Data:00| | |
ed591feb GS |
78 | EOF |
79 | test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && | |
80 | test_cmp expect actual | |
81 | ' | |
82 | ||
83 | test_expect_success 'get bloom filter for commit with 10 changes' ' | |
84 | rm actual && | |
85 | rm expect && | |
86 | mkdir smallDir && | |
87 | for i in $(test_seq 0 9) | |
88 | do | |
db5875aa | 89 | echo $i >smallDir/$i || return 1 |
ed591feb GS |
90 | done && |
91 | git add smallDir && | |
92 | git commit -m "commit with 10 changes" && | |
93 | cat >expect <<-\EOF && | |
65c1a28b DS |
94 | Filter_Length:14 |
95 | Filter_Data:02|b3|c4|a0|34|e7|fe|eb|cb|47|fe|a0|e8|72| | |
ed591feb GS |
96 | EOF |
97 | test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && | |
98 | test_cmp expect actual | |
99 | ' | |
100 | ||
101 | test_expect_success EXPENSIVE 'get bloom filter for commit with 513 changes' ' | |
102 | rm actual && | |
103 | rm expect && | |
104 | mkdir bigDir && | |
2f6775f0 | 105 | for i in $(test_seq 0 511) |
ed591feb | 106 | do |
db5875aa | 107 | echo $i >bigDir/$i || return 1 |
ed591feb GS |
108 | done && |
109 | git add bigDir && | |
110 | git commit -m "commit with 513 changes" && | |
111 | cat >expect <<-\EOF && | |
59f0d507 TB |
112 | Filter_Length:1 |
113 | Filter_Data:ff| | |
ed591feb GS |
114 | EOF |
115 | test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && | |
116 | test_cmp expect actual | |
117 | ' | |
118 | ||
066b70ae | 119 | test_done |