1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
#!/bin/sh
test_description="Test bundle-uri bundle_uri_parse_line()"
TEST_NO_CREATE_REPO=1
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'bundle_uri_parse_line() just URIs' '
cat >in <<-\EOF &&
bundle.one.uri=http://example.com/bundle.bdl
bundle.two.uri=https://example.com/bundle.bdl
bundle.three.uri=file:///usr/share/git/bundle.bdl
EOF
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
[bundle "one"]
uri = http://example.com/bundle.bdl
[bundle "two"]
uri = https://example.com/bundle.bdl
[bundle "three"]
uri = file:///usr/share/git/bundle.bdl
EOF
test-tool bundle-uri parse-key-values in >actual 2>err &&
test_must_be_empty err &&
test_cmp_config_output expect actual
'
test_expect_success 'bundle_uri_parse_line() parsing edge cases: empty key or value' '
cat >in <<-\EOF &&
=bogus-value
bogus-key=
EOF
cat >err.expect <<-EOF &&
error: bundle-uri: line has empty key or value
error: bad line: '\''=bogus-value'\''
error: bundle-uri: line has empty key or value
error: bad line: '\''bogus-key='\''
EOF
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
EOF
test_must_fail test-tool bundle-uri parse-key-values in >actual 2>err &&
test_cmp err.expect err &&
test_cmp_config_output expect actual
'
test_expect_success 'bundle_uri_parse_line() parsing edge cases: empty lines' '
cat >in <<-\EOF &&
bundle.one.uri=http://example.com/bundle.bdl
bundle.two.uri=https://example.com/bundle.bdl
bundle.three.uri=file:///usr/share/git/bundle.bdl
EOF
cat >err.expect <<-\EOF &&
error: bundle-uri: got an empty line
error: bad line: '\'''\''
error: bundle-uri: got an empty line
error: bad line: '\'''\''
EOF
# We fail, but try to continue parsing regardless
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
[bundle "one"]
uri = http://example.com/bundle.bdl
[bundle "two"]
uri = https://example.com/bundle.bdl
[bundle "three"]
uri = file:///usr/share/git/bundle.bdl
EOF
test_must_fail test-tool bundle-uri parse-key-values in >actual 2>err &&
test_cmp err.expect err &&
test_cmp_config_output expect actual
'
test_expect_success 'bundle_uri_parse_line() parsing edge cases: duplicate lines' '
cat >in <<-\EOF &&
bundle.one.uri=http://example.com/bundle.bdl
bundle.two.uri=https://example.com/bundle.bdl
bundle.one.uri=https://example.com/bundle-2.bdl
bundle.three.uri=file:///usr/share/git/bundle.bdl
EOF
cat >err.expect <<-\EOF &&
error: bad line: '\''bundle.one.uri=https://example.com/bundle-2.bdl'\''
EOF
# We fail, but try to continue parsing regardless
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
[bundle "one"]
uri = http://example.com/bundle.bdl
[bundle "two"]
uri = https://example.com/bundle.bdl
[bundle "three"]
uri = file:///usr/share/git/bundle.bdl
EOF
test_must_fail test-tool bundle-uri parse-key-values in >actual 2>err &&
test_cmp err.expect err &&
test_cmp_config_output expect actual
'
test_expect_success 'parse config format: just URIs' '
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
[bundle "one"]
uri = http://example.com/bundle.bdl
[bundle "two"]
uri = https://example.com/bundle.bdl
[bundle "three"]
uri = file:///usr/share/git/bundle.bdl
EOF
test-tool bundle-uri parse-config expect >actual 2>err &&
test_must_be_empty err &&
test_cmp_config_output expect actual
'
test_expect_success 'parse config format edge cases: empty key or value' '
cat >in1 <<-\EOF &&
= bogus-value
EOF
cat >err1 <<-EOF &&
error: bad config line 1 in file in1
EOF
cat >expect <<-\EOF &&
[bundle]
version = 1
mode = all
EOF
test_must_fail test-tool bundle-uri parse-config in1 >actual 2>err &&
test_cmp err1 err &&
test_cmp_config_output expect actual &&
cat >in2 <<-\EOF &&
bogus-key =
EOF
cat >err2 <<-EOF &&
error: bad config line 1 in file in2
EOF
test_must_fail test-tool bundle-uri parse-config in2 >actual 2>err &&
test_cmp err2 err &&
test_cmp_config_output expect actual
'
test_done
|