summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/end-to-end/RULES10
-rw-r--r--test/end-to-end/just-mr/TARGETS12
-rw-r--r--test/end-to-end/serve-service/serve_export_deps.sh17
-rw-r--r--test/end-to-end/serve-service/serve_start_execute.sh16
-rw-r--r--test/end-to-end/serve-service/serve_target_cache_hit.sh8
-rw-r--r--test/end-to-end/serve-service/serve_target_remote_build.sh9
-rwxr-xr-xtest/end-to-end/with_serve_test_runner.py12
7 files changed, 68 insertions, 16 deletions
diff --git a/test/end-to-end/RULES b/test/end-to-end/RULES
index a1954ac4..84e771f5 100644
--- a/test/end-to-end/RULES
+++ b/test/end-to-end/RULES
@@ -216,7 +216,13 @@
]
, "target_fields": ["deps", "test", "repos"]
, "string_fields": ["keep", "name"]
- , "config_vars": ["ARCH", "HOST_ARCH", "RUNS_PER_TEST", "TEST_ENV"]
+ , "config_vars":
+ [ "ARCH"
+ , "HOST_ARCH"
+ , "RUNS_PER_TEST"
+ , "TEST_ENV"
+ , "TEST_COMPATIBLE_REMOTE"
+ ]
, "field_doc":
{ "test":
[ "The shell script for the test, launched with sh."
@@ -254,6 +260,8 @@
, "If set, no test action will be taken from cache."
]
, "TEST_ENV": ["The environment for executing the test runner."]
+ , "TEST_COMPATIBLE_REMOTE":
+ ["If true, run the remote execution in compatible mode."]
}
, "tainted": ["test"]
, "artifacts_doc":
diff --git a/test/end-to-end/just-mr/TARGETS b/test/end-to-end/just-mr/TARGETS
index 99d2d7b8..04c19f21 100644
--- a/test/end-to-end/just-mr/TARGETS
+++ b/test/end-to-end/just-mr/TARGETS
@@ -174,15 +174,17 @@
, "git-tree-env"
, "defaults"
, "absent-roots"
- , "fetch-absent"
- , "absent-config"
- , "fetch-absent-archives"
- , "fetch-absent-archives-symlinks"
]
, { "type": "if"
, "cond": {"type": "var", "name": "TEST_COMPATIBLE_REMOTE"}
, "then": []
- , "else": ["fetch-remote"]
+ , "else":
+ [ "fetch-remote"
+ , "fetch-absent"
+ , "absent-config"
+ , "fetch-absent-archives"
+ , "fetch-absent-archives-symlinks"
+ ]
}
]
}
diff --git a/test/end-to-end/serve-service/serve_export_deps.sh b/test/end-to-end/serve-service/serve_export_deps.sh
index 6c21734d..64886a4c 100644
--- a/test/end-to-end/serve-service/serve_export_deps.sh
+++ b/test/end-to-end/serve-service/serve_export_deps.sh
@@ -31,6 +31,11 @@ readonly LBR="${TEST_TMPDIR}/local-build-root"
readonly LOCAL_DIR="${TEST_TMPDIR}/local"
readonly ABSENT_DIR="${TEST_TMPDIR}/absent"
+COMPAT=""
+if [ "${COMPATIBLE:-}" = "YES" ]; then
+ COMPAT="--compatible"
+fi
+
# Set up sample repository
readonly GENERATOR="${TEST_TMPDIR}/generate.sh"
readonly GEN_DIR="{TEST_TMPDIR}/gen-dir"
@@ -81,7 +86,7 @@ cat repos.json
CONF=$("${JUST_MR}" --norc --local-build-root "${SERVE_LBR}" setup)
cat "${CONF}"
-"${JUST}" build --local-build-root "${SERVE_LBR}" -C "${CONF}" -r ${REMOTE_EXECUTION_ADDRESS} main
+"${JUST}" build --local-build-root "${SERVE_LBR}" -C "${CONF}" -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main
)
# Set up local repository
@@ -149,11 +154,15 @@ echo
rm "${GENERATOR}"
-CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" setup --all)
+CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" ${COMPAT} setup --all)
cat "${CONF}"
echo
# test that we can successfully compile using just serve
-"${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" --remote-serve-address ${SERVE} -r ${REMOTE_EXECUTION_ADDRESS} main
-"${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" --remote-serve-address ${SERVE} -r ${REMOTE_EXECUTION_ADDRESS} main
+"${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" \
+ --remote-serve-address ${SERVE} \
+ -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main
+"${JUST}" build --main local --local-build-root "${LBR}" -C "${CONF}" \
+ --remote-serve-address ${SERVE} \
+ -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} main
)
diff --git a/test/end-to-end/serve-service/serve_start_execute.sh b/test/end-to-end/serve-service/serve_start_execute.sh
index 5cad0400..d15d14eb 100644
--- a/test/end-to-end/serve-service/serve_start_execute.sh
+++ b/test/end-to-end/serve-service/serve_start_execute.sh
@@ -31,10 +31,20 @@ readonly PIDFILE="${PWD}/pid.txt"
# test that, if no remote endpoint is passed to just-serve, it will spawn a
# just-execute instance
+COMPAT=""
cat > .just-servec <<EOF
{ "repositories": []
, "remote service": {"info file": "${INFOFILE}", "pid file": "${PIDFILE}"}
, "local build root": "${LBR}"
+EOF
+if [ "${COMPATIBLE:-}" = "YES" ]
+then
+ COMPAT="--compatible"
+ cat >> .just-servec <<EOF
+, "execution endpoint": {"compatible": true}
+EOF
+fi
+cat >> .just-servec <<EOF
}
EOF
echo "Serve service configuration:"
@@ -75,12 +85,14 @@ cat > TARGETS <<ENDTARGETS
ENDTARGETS
-"${JUST}" install --local-build-root "${LBR}" -r localhost:${PORT} -o .
+"${JUST}" install --local-build-root "${LBR}" \
+ -r localhost:${PORT} ${COMPAT} -o .
grep 'just-serve-just-execute' out.txt
# test that if we only pass --remote-serve-address it is also used as remote
# execution endpoint
rm -rf "${LBR}"
-"${JUST}" install --local-build-root "${LBR}" --remote-serve-address localhost:${PORT} -o .
+"${JUST}" install --local-build-root "${LBR}" \
+ --remote-serve-address localhost:${PORT} ${COMPAT} -o .
grep 'just-serve-just-execute' out.txt
diff --git a/test/end-to-end/serve-service/serve_target_cache_hit.sh b/test/end-to-end/serve-service/serve_target_cache_hit.sh
index 6b57625f..51ced326 100644
--- a/test/end-to-end/serve-service/serve_target_cache_hit.sh
+++ b/test/end-to-end/serve-service/serve_target_cache_hit.sh
@@ -43,6 +43,11 @@ EOF
readonly REMOTE_PROPERTIES="--remote-execution-property foo:bar"
readonly DISPATCH="--endpoint-configuration ${DISPATCH_FILE}"
+COMPAT=""
+if [ "${COMPATIBLE:-}" = "YES" ]; then
+ COMPAT="--compatible"
+fi
+
# Set up sample repository
readonly GENERATOR="${TEST_TMPDIR}/generate.sh"
readonly GEN_DIR="{TEST_TMPDIR}/gen-dir"
@@ -104,6 +109,7 @@ echo
--local-build-root "${SERVE_LBR}" \
-C "${CONF}" \
-r "${REMOTE_EXECUTION_ADDRESS}" \
+ ${COMPAT} \
${REMOTE_PROPERTIES} \
${DISPATCH} \
main
@@ -148,6 +154,7 @@ echo "failed as expected"
--remote-serve-address "${SERVE}" \
-C "${CONF}" \
-r "${SERVE}" \
+ ${COMPAT} \
${REMOTE_PROPERTIES} \
${DISPATCH} \
main && echo "this should fail" >&2 && exit 1
@@ -158,6 +165,7 @@ echo "failed as expected"
--remote-serve-address "${SERVE}" \
-C "${CONF}" \
-r "${REMOTE_EXECUTION_ADDRESS}" \
+ ${COMPAT} \
${REMOTE_PROPERTIES} \
${DISPATCH} \
main
diff --git a/test/end-to-end/serve-service/serve_target_remote_build.sh b/test/end-to-end/serve-service/serve_target_remote_build.sh
index 66138476..660e9460 100644
--- a/test/end-to-end/serve-service/serve_target_remote_build.sh
+++ b/test/end-to-end/serve-service/serve_target_remote_build.sh
@@ -27,6 +27,11 @@ readonly JUST="${PWD}/bin/tool-under-test"
readonly JUST_MR="${PWD}/bin/mr-tool-under-test"
readonly LBR="${TEST_TMPDIR}/local-build-root"
+COMPAT=""
+if [ "${COMPATIBLE:-}" = "YES" ]; then
+ COMPAT="--compatible"
+fi
+
mkdir work
cd work
touch ROOT
@@ -48,7 +53,7 @@ EOF
CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \
--remote-serve-address ${SERVE} \
- -r ${REMOTE_EXECUTION_ADDRESS} \
+ -r ${REMOTE_EXECUTION_ADDRESS} ${COMPAT} \
setup)
cat $CONF
@@ -57,7 +62,7 @@ cat $CONF
${JUST} build --local-build-root "${LBR}" -C "${CONF}" \
--remote-serve-address ${SERVE} \
--log-limit 8 \
- -r "${REMOTE_EXECUTION_ADDRESS}" greet 2>&1 && \
+ -r "${REMOTE_EXECUTION_ADDRESS}" ${COMPAT} greet 2>&1 && \
echo "This test should fail" && exit 1
echo OK
diff --git a/test/end-to-end/with_serve_test_runner.py b/test/end-to-end/with_serve_test_runner.py
index 2782b7ed..25723a2c 100755
--- a/test/end-to-end/with_serve_test_runner.py
+++ b/test/end-to-end/with_serve_test_runner.py
@@ -75,6 +75,8 @@ SERVE_DIR = os.path.realpath("serve")
os.makedirs(SERVE_DIR, exist_ok=True)
SERVE_LBR = os.path.join(SERVE_DIR, "build-root")
+compatible = json.loads(sys.argv[1])
+
remote_proc = None
# start just execute as remote service
@@ -96,6 +98,9 @@ remote_cmd = [
"--plain-log",
]
+if compatible:
+ remote_cmd.append("--compatible")
+
remotestdout = open("remotestdout", "w")
remotestderr = open("remotestderr", "w")
remote_proc = subprocess.Popen(
@@ -123,7 +128,8 @@ serve_config: Json = {
"plain": True
},
"execution endpoint": {
- "address": g_REMOTE_EXECUTION_ADDRESS
+ "address": g_REMOTE_EXECUTION_ADDRESS,
+ "compatible": compatible
},
"remote service": {
"info file": SERVE_INFO
@@ -219,7 +225,9 @@ ENV = dict(
SERVE_LBR=SERVE_LBR, # expose the serve build root to the test env
**repos_env)
-if "COMPATIBLE" in ENV:
+if compatible:
+ ENV["COMPATIBLE"] = "YES"
+elif "COMPATIBLE" in ENV:
del ENV["COMPATIBLE"]
for k in ["TLS_CA_CERT", "TLS_CLIENT_CERT", "TLS_CLIENT_KEY"]: