diff options
-rw-r--r-- | test/end-to-end/RULES | 10 | ||||
-rw-r--r-- | test/end-to-end/just-mr/TARGETS | 12 | ||||
-rw-r--r-- | test/end-to-end/serve-service/serve_export_deps.sh | 17 | ||||
-rw-r--r-- | test/end-to-end/serve-service/serve_start_execute.sh | 16 | ||||
-rw-r--r-- | test/end-to-end/serve-service/serve_target_cache_hit.sh | 8 | ||||
-rw-r--r-- | test/end-to-end/serve-service/serve_target_remote_build.sh | 9 | ||||
-rwxr-xr-x | test/end-to-end/with_serve_test_runner.py | 12 |
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"]: |