blob: b567383eb836bff0c743522692cecdb354cbd0e6 [file] [log] [blame]
Garima Singhf52207a2020-03-30 00:31:24 +00001#!/bin/sh
2
3test_description='Testing the various Bloom filter computations in bloom.c'
Ævar Arnfjörð Bjarmason3e3b9322022-07-28 01:13:41 +02004
5TEST_PASSES_SANITIZE_LEAK=true
Garima Singhf52207a2020-03-30 00:31:24 +00006. ./test-lib.sh
7
8test_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
16test_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
24test_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 Singhf1294ea2020-03-30 00:31:25 +000032test_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
42test_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
52test_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
62test_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ð Bjarmason97946332022-07-01 12:37:38 +020072test_expect_success !SANITIZE_LEAK 'get bloom filters for commit with no changes' '
Garima Singhed591fe2020-03-30 00:31:26 +000073 git init &&
74 git commit --allow-empty -m "c0" &&
75 cat >expect <<-\EOF &&
Taylor Blau59f0d502020-09-17 22:59:44 -040076 Filter_Length:1
77 Filter_Data:00|
Garima Singhed591fe2020-03-30 00:31:26 +000078 EOF
79 test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual &&
80 test_cmp expect actual
81'
82
83test_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 Sunshinedb5875a2021-12-09 00:11:12 -050089 echo $i >smallDir/$i || return 1
Garima Singhed591fe2020-03-30 00:31:26 +000090 done &&
91 git add smallDir &&
92 git commit -m "commit with 10 changes" &&
93 cat >expect <<-\EOF &&
Derrick Stolee65c1a282020-05-11 11:56:12 +000094 Filter_Length:14
95 Filter_Data:02|b3|c4|a0|34|e7|fe|eb|cb|47|fe|a0|e8|72|
Garima Singhed591fe2020-03-30 00:31:26 +000096 EOF
97 test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual &&
98 test_cmp expect actual
99'
100
101test_expect_success EXPENSIVE 'get bloom filter for commit with 513 changes' '
102 rm actual &&
103 rm expect &&
104 mkdir bigDir &&
Derrick Stolee2f6775f2020-05-11 11:56:13 +0000105 for i in $(test_seq 0 511)
Garima Singhed591fe2020-03-30 00:31:26 +0000106 do
Eric Sunshinedb5875a2021-12-09 00:11:12 -0500107 echo $i >bigDir/$i || return 1
Garima Singhed591fe2020-03-30 00:31:26 +0000108 done &&
109 git add bigDir &&
110 git commit -m "commit with 513 changes" &&
111 cat >expect <<-\EOF &&
Taylor Blau59f0d502020-09-17 22:59:44 -0400112 Filter_Length:1
113 Filter_Data:ff|
Garima Singhed591fe2020-03-30 00:31:26 +0000114 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 Danh066b70a2020-05-08 00:51:02 +0100119test_done