| #!/bin/sh |
| |
| test_description='Test reftable backend consistency check' |
| |
| GIT_TEST_DEFAULT_REF_FORMAT=reftable |
| export GIT_TEST_DEFAULT_REF_FORMAT |
| |
| . ./test-lib.sh |
| |
| test_expect_success "no errors reported on a well formed repository" ' |
| test_when_finished "rm -rf repo" && |
| git init repo && |
| ( |
| cd repo && |
| git commit --allow-empty -m initial && |
| |
| for i in $(test_seq 20) |
| do |
| git update-ref refs/heads/branch-$i HEAD || return 1 |
| done && |
| |
| # The repository should end up with multiple tables. |
| test_line_count ">" 1 .git/reftable/tables.list && |
| |
| git refs verify 2>err && |
| test_must_be_empty err |
| ) |
| ' |
| |
| for TABLE_NAME in "foo-bar-e4d12d59.ref" \ |
| "0x00000000zzzz-0x00000000zzzz-e4d12d59.ref" \ |
| "0x000000000001-0x000000000002-e4d12d59.abc" \ |
| "0x000000000001-0x000000000002-e4d12d59.refabc"; do |
| test_expect_success "table name $TABLE_NAME should be checked" ' |
| test_when_finished "rm -rf repo" && |
| git init repo && |
| ( |
| cd repo && |
| git commit --allow-empty -m initial && |
| |
| git refs verify 2>err && |
| test_must_be_empty err && |
| |
| EXISTING_TABLE=$(head -n1 .git/reftable/tables.list) && |
| mv ".git/reftable/$EXISTING_TABLE" ".git/reftable/$TABLE_NAME" && |
| sed "s/${EXISTING_TABLE}/${TABLE_NAME}/g" .git/reftable/tables.list > tables.list && |
| mv tables.list .git/reftable/tables.list && |
| |
| git refs verify 2>err && |
| cat >expect <<-EOF && |
| warning: ${TABLE_NAME}: badReftableTableName: invalid reftable table name |
| EOF |
| test_cmp expect err |
| ) |
| ' |
| done |
| |
| test_done |