зеркало из https://github.com/microsoft/git.git
tests: define GIT_TEST_PROTOCOL_VERSION
Define a GIT_TEST_PROTOCOL_VERSION environment variable meant to be used from tests. When set, this ensures protocol.version is at least the given value, allowing the entire test suite to be run as if this configuration is in place for all repositories. As of this patch, all tests pass whether GIT_TEST_PROTOCOL_VERSION is unset or set to 0. Some tests fail when GIT_TEST_PROTOCOL_VERSION is set to 1 or 2, but this will be dealt with in subsequent patches. This is based on work by Ævar Arnfjörð Bjarmason. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
8feddda32c
Коммит
8cbeba0632
17
protocol.c
17
protocol.c
|
@ -17,6 +17,10 @@ static enum protocol_version parse_protocol_version(const char *value)
|
||||||
enum protocol_version get_protocol_version_config(void)
|
enum protocol_version get_protocol_version_config(void)
|
||||||
{
|
{
|
||||||
const char *value;
|
const char *value;
|
||||||
|
enum protocol_version retval = protocol_v0;
|
||||||
|
const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
|
||||||
|
const char *git_test_v = getenv(git_test_k);
|
||||||
|
|
||||||
if (!git_config_get_string_const("protocol.version", &value)) {
|
if (!git_config_get_string_const("protocol.version", &value)) {
|
||||||
enum protocol_version version = parse_protocol_version(value);
|
enum protocol_version version = parse_protocol_version(value);
|
||||||
|
|
||||||
|
@ -24,10 +28,19 @@ enum protocol_version get_protocol_version_config(void)
|
||||||
die("unknown value for config 'protocol.version': %s",
|
die("unknown value for config 'protocol.version': %s",
|
||||||
value);
|
value);
|
||||||
|
|
||||||
return version;
|
retval = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
return protocol_v0;
|
if (git_test_v && *git_test_v) {
|
||||||
|
enum protocol_version env = parse_protocol_version(git_test_v);
|
||||||
|
|
||||||
|
if (env == protocol_unknown_version)
|
||||||
|
die("unknown value for %s: %s", git_test_k, git_test_v);
|
||||||
|
if (retval < env)
|
||||||
|
retval = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum protocol_version determine_protocol_version_server(void)
|
enum protocol_version determine_protocol_version_server(void)
|
||||||
|
|
3
t/README
3
t/README
|
@ -327,6 +327,9 @@ marked strings" in po/README for details.
|
||||||
GIT_TEST_SPLIT_INDEX=<boolean> forces split-index mode on the whole
|
GIT_TEST_SPLIT_INDEX=<boolean> forces split-index mode on the whole
|
||||||
test suite. Accept any boolean values that are accepted by git-config.
|
test suite. Accept any boolean values that are accepted by git-config.
|
||||||
|
|
||||||
|
GIT_TEST_PROTOCOL_VERSION=<n>, when set, overrides the
|
||||||
|
'protocol.version' setting to n if it is less than n.
|
||||||
|
|
||||||
GIT_TEST_FULL_IN_PACK_ARRAY=<boolean> exercises the uncommon
|
GIT_TEST_FULL_IN_PACK_ARRAY=<boolean> exercises the uncommon
|
||||||
pack-objects code path where there are more than 1024 packs even if
|
pack-objects code path where there are more than 1024 packs even if
|
||||||
the actual number of packs in repository is below this limit. Accept
|
the actual number of packs in repository is below this limit. Accept
|
||||||
|
|
|
@ -288,7 +288,7 @@ test_expect_success 'receive-pack de-dupes .have lines' '
|
||||||
$shared .have
|
$shared .have
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
GIT_TRACE_PACKET=$(pwd)/trace \
|
GIT_TRACE_PACKET=$(pwd)/trace GIT_TEST_PROTOCOL_VERSION= \
|
||||||
git push \
|
git push \
|
||||||
--receive-pack="unset GIT_TRACE_PACKET; git-receive-pack" \
|
--receive-pack="unset GIT_TRACE_PACKET; git-receive-pack" \
|
||||||
fork HEAD:foo &&
|
fork HEAD:foo &&
|
||||||
|
|
|
@ -43,7 +43,8 @@ test_expect_success 'clone http repository' '
|
||||||
< Cache-Control: no-cache, max-age=0, must-revalidate
|
< Cache-Control: no-cache, max-age=0, must-revalidate
|
||||||
< Content-Type: application/x-git-upload-pack-result
|
< Content-Type: application/x-git-upload-pack-result
|
||||||
EOF
|
EOF
|
||||||
GIT_TRACE_CURL=true git clone --quiet $HTTPD_URL/smart/repo.git clone 2>err &&
|
GIT_TRACE_CURL=true GIT_TEST_PROTOCOL_VERSION= \
|
||||||
|
git clone --quiet $HTTPD_URL/smart/repo.git clone 2>err &&
|
||||||
test_cmp file clone/file &&
|
test_cmp file clone/file &&
|
||||||
tr '\''\015'\'' Q <err |
|
tr '\''\015'\'' Q <err |
|
||||||
sed -e "
|
sed -e "
|
||||||
|
|
Загрузка…
Ссылка в новой задаче