Merge branch 'mg/status-porcelain-no-i18n' into maint
[git] / t / t5315-pack-objects-compression.sh
1 #!/bin/sh
2
3 test_description='pack-object compression configuration'
4
5 . ./test-lib.sh
6
7 # This should be moved to test-lib.sh together with the
8 # copy in t0021 after both topics have graduated to 'master'.
9 file_size () {
10         perl -e 'print -s $ARGV[0]' "$1"
11 }
12
13 test_expect_success setup '
14         printf "%2000000s" X |
15         git hash-object -w --stdin >object-name &&
16         # make sure it resulted in a loose object
17         ob=$(sed -e "s/\(..\).*/\1/" object-name) &&
18         ject=$(sed -e "s/..\(.*\)/\1/" object-name) &&
19         test -f .git/objects/$ob/$ject
20 '
21
22 while read expect config
23 do
24         test_expect_success "pack-objects with $config" '
25                 test_when_finished "rm -f pack-*.*" &&
26                 git $config pack-objects pack <object-name &&
27                 sz=$(file_size pack-*.pack) &&
28                 case "$expect" in
29                 small) test "$sz" -le 100000 ;;
30                 large) test "$sz" -ge 100000 ;;
31                 esac
32         '
33 done <<\EOF
34 large -c core.compression=0
35 small -c core.compression=9
36 large -c core.compression=0 -c pack.compression=0
37 large -c core.compression=9 -c pack.compression=0
38 small -c core.compression=0 -c pack.compression=9
39 small -c core.compression=9 -c pack.compression=9
40 large -c pack.compression=0
41 small -c pack.compression=9
42 EOF
43
44 test_done