#!/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