summaryrefslogtreecommitdiff
path: root/test/end-to-end/serve-service
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2023-11-29 18:37:47 +0100
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2023-12-05 10:52:23 +0100
commit80c57d1bec245712afbfdd9adee1151beb6b1718 (patch)
tree06ab8606b7ae78b167cd9aff8408728f4587c8c2 /test/end-to-end/serve-service
parentcaac34fc4d965f8ff974fe1dc4b7d5cbb779ef23 (diff)
downloadjustbuild-80c57d1bec245712afbfdd9adee1151beb6b1718.tar.gz
test: Check remote build via just serve
Diffstat (limited to 'test/end-to-end/serve-service')
-rw-r--r--test/end-to-end/serve-service/TARGETS20
-rw-r--r--test/end-to-end/serve-service/data/rules/RULES42
-rw-r--r--test/end-to-end/serve-service/data/targets/TARGETS7
-rw-r--r--test/end-to-end/serve-service/serve_target_remote_build.sh47
4 files changed, 105 insertions, 11 deletions
diff --git a/test/end-to-end/serve-service/TARGETS b/test/end-to-end/serve-service/TARGETS
index b53cf0e1..88774cbc 100644
--- a/test/end-to-end/serve-service/TARGETS
+++ b/test/end-to-end/serve-service/TARGETS
@@ -4,7 +4,25 @@
, "test": ["serve_target_remote_build.sh"]
, "deps":
[["end-to-end", "tool-under-test"], ["end-to-end", "mr-tool-under-test"]]
- , "repos": [["end-to-end/target-cache/data", "greetlib"]]
+ , "repos":
+ [ "serve-target-remote-build (repo)"
+ , "serve-target-remote-build (installed data)"
+ ]
+ }
+, "serve-target-remote-build (repo)":
+ { "type": "generic"
+ , "out_dirs": ["src"]
+ , "cmds": ["for i in `seq 1 5` ; do echo $i > src/$i.txt ; done"]
+ }
+, "serve-target-remote-build (data)":
+ { "type": ["@", "rules", "data", "staged"]
+ , "srcs": ["data/targets/TARGETS", "data/rules/RULES"]
+ , "stage": ["test", "end-to-end", "serve-service"]
+ }
+, "serve-target-remote-build (installed data)":
+ { "type": "install"
+ , "tainted": ["test"]
+ , "dirs": [["serve-target-remote-build (data)", "."]]
}
, "serve-target-cache-hit":
{ "type": ["end-to-end", "with serve"]
diff --git a/test/end-to-end/serve-service/data/rules/RULES b/test/end-to-end/serve-service/data/rules/RULES
new file mode 100644
index 00000000..34a8ab96
--- /dev/null
+++ b/test/end-to-end/serve-service/data/rules/RULES
@@ -0,0 +1,42 @@
+{ "ls -R":
+ { "target_fields": ["tree"]
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ [ "tree"
+ , { "type": "TREE"
+ , "$1":
+ { "type": "map_union"
+ , "$1":
+ { "type": "foreach"
+ , "var": "dep"
+ , "range": {"type": "FIELD", "name": "tree"}
+ , "body":
+ {"type": "DEP_RUNFILES", "dep": {"type": "var", "name": "dep"}}
+ }
+ }
+ }
+ ]
+ , [ "inputs"
+ , { "type": "map_union"
+ , "$1":
+ [ { "type": "singleton_map"
+ , "key": "tree"
+ , "value": {"type": "var", "name": "tree"}
+ }
+ ]
+ }
+ ]
+ ]
+ , "body":
+ { "type": "RESULT"
+ , "artifacts":
+ { "type": "ACTION"
+ , "outs": ["_out"]
+ , "inputs": {"type": "var", "name": "inputs"}
+ , "cmd": ["sh", "-c", "find . -name '*.txt' > _out"]
+ }
+ }
+ }
+ }
+}
diff --git a/test/end-to-end/serve-service/data/targets/TARGETS b/test/end-to-end/serve-service/data/targets/TARGETS
new file mode 100644
index 00000000..3d9744ec
--- /dev/null
+++ b/test/end-to-end/serve-service/data/targets/TARGETS
@@ -0,0 +1,7 @@
+{ "":
+ { "type": "export"
+ , "target": "list-tree"
+ , "flexible_config": ["AR", "ARCH", "ENV", "OS"]
+ }
+, "list-tree": {"type": "ls -R", "tree": [["TREE", null, "."]]}
+}
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 660e9460..fe07d278 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
@@ -26,6 +26,7 @@ env
readonly JUST="${PWD}/bin/tool-under-test"
readonly JUST_MR="${PWD}/bin/mr-tool-under-test"
readonly LBR="${TEST_TMPDIR}/local-build-root"
+readonly OUTPUT="${TEST_TMPDIR}/output-dir"
COMPAT=""
if [ "${COMPATIBLE:-}" = "YES" ]; then
@@ -36,15 +37,38 @@ mkdir work
cd work
touch ROOT
cat > repos.json <<EOF
-{ "repositories":
- { "":
+{ "main": "main"
+, "repositories":
+ { "main":
{ "repository":
{ "type": "git"
, "commit": "$COMMIT_0"
, "pragma": {"absent": true}
, "repository": "http://non-existent.example.org/data.git"
, "branch": "master"
- , "subdir": "greetlib/greet"
+ , "subdir": "."
+ }
+ , "target_root": "targets"
+ , "rule_root": "rules"
+ }
+ , "rules":
+ { "repository":
+ { "type": "git"
+ , "commit": "$COMMIT_1"
+ , "pragma": {"absent": true}
+ , "repository": "http://non-existent.example.org/data.git"
+ , "branch": "master"
+ , "subdir": "test/end-to-end/serve-service/data/rules"
+ }
+ }
+ , "targets":
+ { "repository":
+ { "type": "git"
+ , "commit": "$COMMIT_1"
+ , "pragma": {"absent": true}
+ , "repository": "http://non-existent.example.org/data.git"
+ , "branch": "master"
+ , "subdir": "test/end-to-end/serve-service/data/targets"
}
}
}
@@ -57,12 +81,15 @@ CONF=$("${JUST_MR}" --norc --local-build-root "${LBR}" \
setup)
cat $CONF
-# this test is expected to fail until the just serve implements orchestration of
-# remote build
-${JUST} build --local-build-root "${LBR}" -C "${CONF}" \
- --remote-serve-address ${SERVE} \
- --log-limit 8 \
- -r "${REMOTE_EXECUTION_ADDRESS}" ${COMPAT} greet 2>&1 && \
- echo "This test should fail" && exit 1
+# Check that we can build correctly
+${JUST} install --local-build-root "${LBR}" -C "${CONF}" \
+ --remote-serve-address ${SERVE} \
+ --log-limit 6 \
+ -r "${REMOTE_EXECUTION_ADDRESS}" ${COMPAT} \
+ -o "${OUTPUT}" 2>&1
+
+for i in $(seq 5); do
+ grep "./tree/src/$i.txt" ${OUTPUT}/_out
+done
echo OK