t: add an interoperability test harness

The current test suite is good at letting you test a
particular version of Git. But it's not very good at letting
you test _two_ versions and seeing how they interact (e.g.,
one cloning from the other).

This commit adds a test harness that will build two
arbitrary versions of git and make it easy to call them from
inside your tests. See the README and the example script for
details.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2017-02-25 04:37:07 -05:00
committed by Junio C Hamano
parent e7e07d5a4f
commit 3d8936153d
6 changed files with 227 additions and 0 deletions

27
t/interop/i0000-basic.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
# Note that this test only works on real version numbers,
# as it depends on matching the output to "git version".
VERSION_A=v1.6.6.3
VERSION_B=v2.11.1
test_description='sanity test interop library'
. ./interop-lib.sh
test_expect_success 'bare git is forbidden' '
test_must_fail git version
'
test_expect_success "git.a version ($VERSION_A)" '
echo git version ${VERSION_A#v} >expect &&
git.a version >actual &&
test_cmp expect actual
'
test_expect_success "git.b version ($VERSION_B)" '
echo git version ${VERSION_B#v} >expect &&
git.b version >actual &&
test_cmp expect actual
'
test_done