diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-29 18:37:47 +0100 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-12-05 10:52:23 +0100 |
commit | 80c57d1bec245712afbfdd9adee1151beb6b1718 (patch) | |
tree | 06ab8606b7ae78b167cd9aff8408728f4587c8c2 | |
parent | caac34fc4d965f8ff974fe1dc4b7d5cbb779ef23 (diff) | |
download | justbuild-80c57d1bec245712afbfdd9adee1151beb6b1718.tar.gz |
test: Check remote build via just serve
-rw-r--r-- | test/end-to-end/serve-service/TARGETS | 20 | ||||
-rw-r--r-- | test/end-to-end/serve-service/data/rules/RULES | 42 | ||||
-rw-r--r-- | test/end-to-end/serve-service/data/targets/TARGETS | 7 | ||||
-rw-r--r-- | test/end-to-end/serve-service/serve_target_remote_build.sh | 47 |
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 |