Garima Singh | f52207a | 2020-03-30 00:31:24 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | test_description='Testing the various Bloom filter computations in bloom.c' |
Ævar Arnfjörð Bjarmason | 3e3b932 | 2022-07-28 01:13:41 +0200 | [diff] [blame] | 4 | |
| 5 | TEST_PASSES_SANITIZE_LEAK=true |
Garima Singh | f52207a | 2020-03-30 00:31:24 +0000 | [diff] [blame] | 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 | |
Garima Singh | f1294ea | 2020-03-30 00:31:25 +0000 | [diff] [blame] | 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 | |
Ævar Arnfjörð Bjarmason | 9794633 | 2022-07-01 12:37:38 +0200 | [diff] [blame] | 72 | test_expect_success !SANITIZE_LEAK 'get bloom filters for commit with no changes' ' |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 73 | git init && |
| 74 | git commit --allow-empty -m "c0" && |
| 75 | cat >expect <<-\EOF && |
Taylor Blau | 59f0d50 | 2020-09-17 22:59:44 -0400 | [diff] [blame] | 76 | Filter_Length:1 |
| 77 | Filter_Data:00| |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 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 |
Eric Sunshine | db5875a | 2021-12-09 00:11:12 -0500 | [diff] [blame] | 89 | echo $i >smallDir/$i || return 1 |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 90 | done && |
| 91 | git add smallDir && |
| 92 | git commit -m "commit with 10 changes" && |
| 93 | cat >expect <<-\EOF && |
Derrick Stolee | 65c1a28 | 2020-05-11 11:56:12 +0000 | [diff] [blame] | 94 | Filter_Length:14 |
| 95 | Filter_Data:02|b3|c4|a0|34|e7|fe|eb|cb|47|fe|a0|e8|72| |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 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 && |
Derrick Stolee | 2f6775f | 2020-05-11 11:56:13 +0000 | [diff] [blame] | 105 | for i in $(test_seq 0 511) |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 106 | do |
Eric Sunshine | db5875a | 2021-12-09 00:11:12 -0500 | [diff] [blame] | 107 | echo $i >bigDir/$i || return 1 |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 108 | done && |
| 109 | git add bigDir && |
| 110 | git commit -m "commit with 513 changes" && |
| 111 | cat >expect <<-\EOF && |
Taylor Blau | 59f0d50 | 2020-09-17 22:59:44 -0400 | [diff] [blame] | 112 | Filter_Length:1 |
| 113 | Filter_Data:ff| |
Garima Singh | ed591fe | 2020-03-30 00:31:26 +0000 | [diff] [blame] | 114 | EOF |
| 115 | test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && |
| 116 | test_cmp expect actual |
| 117 | ' |
| 118 | |
Đoàn Trần Công Danh | 066b70a | 2020-05-08 00:51:02 +0100 | [diff] [blame] | 119 | test_done |