@matheusbsbs / matheus-bagliano / commits / 33166f3a1f
Fork 0

protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION

The GIT_TEST_PROTOCOL_VERSION environment variable can be used to upgrade the version of Git protocol used in tests. If both GIT_TEST_PROTOCOL_VERSION and 'protocol.version' are set, the higher value wins. For usage within tests, these semantics are too complex. Instead, always use the value from protocol.version configuration when it is set, falling back to GIT_TEST_PROTOCOL_VERSION. This way, the envvar provides a reliable preview of what will happen if the default protocol version is changed. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Dec 23, 2019 at 17:02 UTC 33166f3a1fcc77824e162d8a8e51ee8b4a2b481c
2 files changed +7 -8
protocol.c
+5 -6
@@ -17,9 +17,8 @@ static enum protocol_version parse_protocol_version(const char *value)
17 enum protocol_version get_protocol_version_config(void)
18 {
19 const char *value;
20 - enum protocol_version retval = protocol_v0;
20 const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
22 - const char *git_test_v = getenv(git_test_k);
21 + const char *git_test_v;
22
23 if (!git_config_get_string_const("protocol.version", &value)) {
24 enum protocol_version version = parse_protocol_version(value);
@@ -28,19 +27,19 @@ enum protocol_version get_protocol_version_config(void)
27 die("unknown value for config 'protocol.version': %s",
28 value);
29
31 - retval = version;
30 + return version;
31 }
32
33 + git_test_v = getenv(git_test_k);
34 if (git_test_v && *git_test_v) {
35 enum protocol_version env = parse_protocol_version(git_test_v);
36
37 if (env == protocol_unknown_version)
38 die("unknown value for %s: %s", git_test_k, git_test_v);
39 - if (retval < env)
40 - retval = env;
39 + return env;
40 }
41
43 - return retval;
42 + return protocol_v0;
43 }
44
45 enum protocol_version determine_protocol_version_server(void)
t/README
+2 -2
@@ -352,8 +352,8 @@ details.
352 GIT_TEST_SPLIT_INDEX=<boolean> forces split-index mode on the whole
353 test suite. Accept any boolean values that are accepted by git-config.
354
355 -GIT_TEST_PROTOCOL_VERSION=<n>, when set, overrides the
356 -'protocol.version' setting to n if it is less than n.
355 +GIT_TEST_PROTOCOL_VERSION=<n>, when set, makes 'protocol.version'
356 +default to n.
357
358 GIT_TEST_FULL_IN_PACK_ARRAY=<boolean> exercises the uncommon
359 pack-objects code path where there are more than 1024 packs even if