Skip to content

Commit 3b67660

Browse files
committed
test: remove C++ Jsonnet tests from ui-tests and test them in a dedicated CI job instead
1 parent c8ef00c commit 3b67660

27 files changed

+113
-1787
lines changed

.github/workflows/ci.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,19 @@ jobs:
8181
run: ./ci/install-rust.sh "${{ matrix.rust-version }}" --profile minimal
8282
- run: ./ci/build-and-test.sh
8383

84+
external-tests:
85+
runs-on: ubuntu-24.04
86+
strategy:
87+
matrix:
88+
include:
89+
- rust-version: msrv
90+
- rust-version: stable
91+
steps:
92+
- uses: actions/checkout@v4
93+
- name: Install Rust
94+
run: ./ci/install-rust.sh "${{ matrix.rust-version }}" --profile minimal
95+
- run: ./ci/external-tests.sh
96+
8497
package-crates:
8598
runs-on: ubuntu-24.04
8699
steps:

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,3 @@ Licensed under either of
7272
<https://opensource.org/licenses/MIT>)
7373

7474
at your option.
75-
76-
Part of the test suite ([ui-tests/jsonnet-0.20.0](ui-tests/jsonnet-0.20.0)) is
77-
taken from the [C++ implementation](https://github.com/google/jsonnet), which
78-
is licensed under Apache 2.0.

ci/external-tests.sh

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
. ci/utils.sh
5+
6+
begin_group "Fetch dependencies"
7+
cargo fetch --locked
8+
end_group
9+
10+
begin_group "Build"
11+
cargo build -p rsjsonnet --frozen
12+
end_group
13+
14+
ext_jsonnet_ver="0.20.0"
15+
begin_group "Download jsonnet $ext_jsonnet_ver"
16+
curl -fL "https://github.com/google/jsonnet/archive/refs/tags/v${ext_jsonnet_ver}.tar.gz" | tar -xz
17+
end_group
18+
19+
begin_group "Test"
20+
21+
ext_src_dir="$(readlink -f -- "jsonnet-$ext_jsonnet_ver")"
22+
test_bin="$(readlink -f -- "target/debug/rsjsonnet")"
23+
24+
failures=0
25+
26+
cd "$ext_src_dir/test_suite"
27+
for test in *.jsonnet; do
28+
extra_args=()
29+
30+
if [[ "$test" =~ ^tla[.] ]]; then
31+
extra_args+=("--tla-str" "var1=test" "--tla-code" "var2={x:1,y:2}")
32+
else
33+
extra_args+=("--ext-str" "var1=test" "--ext-code" "var2={x:1,y:2}")
34+
fi
35+
36+
echo -n "test $test ..."
37+
set +e
38+
(
39+
NO_COLOR=1 "$test_bin" "${extra_args[@]}" "$test" > test_result.stdout 2> test_result.stderr
40+
exit_code=$?
41+
42+
if [[ "$test" = error.* ]] || [ "$test" = "invariant_manifest.jsonnet" ]; then
43+
if [[ $exit_code -ne 1 ]]; then
44+
echo "Finished with exit code $exit_code"
45+
exit 1
46+
fi
47+
else
48+
if [[ $exit_code -ne 0 ]]; then
49+
echo "Finished with exit code $exit_code"
50+
echo "stderr:"
51+
cat test_result.stderr
52+
exit 1
53+
fi
54+
55+
if [ "$test" = "trace.jsonnet" ]; then
56+
# Skip checking output for trace test
57+
exit 0
58+
fi
59+
60+
if [ -s test_result.stderr ]; then
61+
echo "stderr is not empty:"
62+
cat test_result.stderr
63+
exit 1
64+
fi
65+
66+
if [ "$test" = "unparse.jsonnet" ]; then
67+
# Skip checking stdout for unparse.jsonnet due to rounding differences
68+
exit 0
69+
fi
70+
71+
if [ ! -e "$test.golden" ]; then
72+
echo "true" > "$test.golden"
73+
fi
74+
75+
diff "$test.golden" test_result.stdout > stdout.diff
76+
if [ -s stdout.diff ]; then
77+
echo "unexpected stdout"
78+
cat stdout.diff
79+
exit 1
80+
fi
81+
fi
82+
) > test_report.txt 2>&1
83+
exit_code=$?
84+
set -e
85+
86+
if [[ $exit_code -ne 0 ]]; then
87+
echo " fail"
88+
failures=$((failures + 1))
89+
cat test_report.txt
90+
else
91+
echo " ok"
92+
fi
93+
done
94+
95+
end_group
96+
97+
if [[ $failures -ne 0 ]]; then
98+
echo "Failed $failures test(s)"
99+
exit 1
100+
fi

ui-tests/README.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

ui-tests/jsonnet-0.20.0/arith_bool.jsonnet

Lines changed: 0 additions & 52 deletions
This file was deleted.

ui-tests/jsonnet-0.20.0/arith_float.jsonnet

Lines changed: 0 additions & 139 deletions
This file was deleted.

ui-tests/jsonnet-0.20.0/arith_string.jsonnet

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)