summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci/tracie/tests
diff options
context:
space:
mode:
authorRohan Garg <[email protected]>2020-02-28 13:48:53 +0100
committerTomeu Vizoso <[email protected]>2020-03-17 07:23:27 +0100
commit90a39af5f65e5fa01beeec526594f7e04143e7cf (patch)
treea1950bc3582953599b86dc25a06989f5b3bd7157 /.gitlab-ci/tracie/tests
parent43873afda4f8faa2b31a2f130fab52fbc24d490f (diff)
ci: Drop the git dependency in tracie
Instead of using git, use python and the Gitlab API to fetch traces. This helps us slim down our ramdisks in preparation for integrating trace replay on LAVA devices. Signed-off-by: Rohan Garg <[email protected]> Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alexandros Frantzis <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4000> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4000>
Diffstat (limited to '.gitlab-ci/tracie/tests')
-rwxr-xr-x.gitlab-ci/tracie/tests/test.sh100
1 files changed, 10 insertions, 90 deletions
diff --git a/.gitlab-ci/tracie/tests/test.sh b/.gitlab-ci/tracie/tests/test.sh
index 4d52578c47e..cd0f08e4efd 100755
--- a/.gitlab-ci/tracie/tests/test.sh
+++ b/.gitlab-ci/tracie/tests/test.sh
@@ -4,25 +4,6 @@ TRACIE_DIR="$(dirname "$(readlink -f "$0")")/.."
TEST_DIR=""
TEST_EXIT=0
-create_repo() {
- repo="$(mktemp -d $TEST_DIR/repo.XXXXXXXXXX)"
- cp -R "$TEST_DIR"/tests/test-data/* "$repo"
- (
- cd "$repo";
- git init -q .;
- git config user.email "[email protected]"
- git config user.name "Me me"
- git lfs track '*.testtrace' > /dev/null;
- git add .;
- git commit -q -a -m 'initial';
- )
- echo $repo
-}
-
-destroy_repo() {
- [ -d "$1"/.git ] && rm -rf "$1"
-}
-
assert() {
if ! $1; then
echo "Assertion failed: \"$1\""
@@ -32,22 +13,22 @@ assert() {
run_tracie() {
# Run tests for the .testtrace types, using the "gl-test-device" and "vk-test-device" device names.
- DEVICE_NAME=gl-test-device CI_PROJECT_DIR="$TEST_DIR" \
- "$TEST_DIR/tracie.sh" "$TEST_DIR/tests/traces.yml" testtrace && \
- DEVICE_NAME=vk-test-device CI_PROJECT_DIR="$TEST_DIR" \
- "$TEST_DIR/tracie.sh" "$TEST_DIR/tests/traces.yml" testtrace
+ python3 $TEST_DIR/tracie.py --file $TEST_DIR/tests/traces.yml --device-name gl-test-device && \
+ python3 $TEST_DIR/tracie.py --file $TEST_DIR/tests/traces.yml --device-name vk-test-device
}
cleanup() {
- rm -rf "$TEST_DIR"
+ [ "$TEST_DIR" = "/tmp/*" ] && rm -rf "$TEST_DIR"
}
prepare_for_run() {
TEST_DIR="$(mktemp -d -t tracie.test.XXXXXXXXXX)"
- # Copy all the tracie scripts to the test dir and later make that the
- # CI_PROJECT_DIR for the run-tests.sh script. This avoids polluting the
- # normal working dir with test result artifacts.
+ # Copy all the tracie scripts to the test dir for the run-tests.sh script.
+ # This avoids polluting the normal working dir with test result artifacts.
cp -R "$TRACIE_DIR"/. "$TEST_DIR"
+ cd "$TEST_DIR"
+ mkdir traces-db
+ mv tests/test-data/* traces-db/.
trap cleanup EXIT
# Ensure we have a clean environment.
unset TRACIE_STORE_IMAGES
@@ -76,89 +57,41 @@ run_test() {
}
tracie_succeeds_if_all_images_match() {
- repo="$(create_repo)"
- cd "$repo"
-
run_tracie
assert "[ $? = 0 ]"
-
- destroy_repo "$repo"
}
tracie_fails_on_image_mismatch() {
- repo="$(create_repo)"
- cd "$repo"
-
sed -i 's/5efda83854befe0155ff8517a58d5b51/8e0a801367e1714463475a824dab363b/g' \
"$TEST_DIR/tests/traces.yml"
run_tracie
assert "[ $? != 0 ]"
-
- destroy_repo "$repo"
-}
-
-tracie_ignores_unspecified_trace_types() {
- repo="$(create_repo)"
- cd "$repo"
-
- echo " - path: trace1/empty.trace" >> "$TEST_DIR/tests/traces.yml"
- echo " expectations:" >> "$TEST_DIR/tests/traces.yml"
- echo " - device: gl-test-device" >> "$TEST_DIR/tests/traces.yml"
- echo " checksum: 000000000000000" >> "$TEST_DIR/tests/traces.yml"
- # For the tests we only scan for the .testtrace type,
- # so the .trace file added below should be ignored.
- echo "empty" > trace1/empty.trace
- git lfs track '*.trace'
- git add trace1
- git commit -a -m 'break'
-
- run_tracie
- assert "[ $? = 0 ]"
-
- destroy_repo "$repo"
}
tracie_skips_traces_without_checksum() {
- repo="$(create_repo)"
- cd "$repo"
-
echo " - path: trace1/red.testtrace" >> "$TEST_DIR/tests/traces.yml"
echo " expectations:" >> "$TEST_DIR/tests/traces.yml"
echo " - device: bla" >> "$TEST_DIR/tests/traces.yml"
echo " checksum: 000000000000000" >> "$TEST_DIR/tests/traces.yml"
# red.testtrace should be skipped, since it doesn't
# have any checksums for our device
- echo "ff0000ff" > trace1/red.testtrace
- git add trace1
- git commit -a -m 'red'
+ echo "ff0000ff" > traces-db/trace1/red.testtrace
run_tracie
assert "[ $? = 0 ]"
-
- destroy_repo "$repo"
}
tracie_fails_on_dump_image_error() {
- repo="$(create_repo)"
- cd "$repo"
-
# "invalid" should fail to parse as rgba and
# cause an error
- echo "invalid" > trace1/magenta.testtrace
- git add trace1
- git commit -a -m 'invalid'
+ echo "invalid" > traces-db/trace1/magenta.testtrace
run_tracie
assert "[ $? != 0 ]"
-
- destroy_repo "$repo"
}
tracie_stores_only_logs_on_checksum_match() {
- repo="$(create_repo)"
- cd "$repo"
-
run_tracie
assert "[ $? = 0 ]"
@@ -169,14 +102,9 @@ tracie_stores_only_logs_on_checksum_match() {
assert "[ ! -f "$TEST_DIR/results/trace2/test/vk-test-device/olive.testtrace-0.png" ]"
ls -lR "$TEST_DIR"
-
- destroy_repo "$repo"
}
tracie_stores_images_on_checksum_mismatch() {
- repo="$(create_repo)"
- cd "$repo"
-
sed -i 's/5efda83854befe0155ff8517a58d5b51/8e0a801367e1714463475a824dab363b/g' \
"$TEST_DIR/tests/traces.yml"
@@ -185,14 +113,9 @@ tracie_stores_images_on_checksum_mismatch() {
assert "[ ! -f "$TEST_DIR/results/trace1/test/gl-test-device/magenta.testtrace-0.png" ]"
assert "[ -f "$TEST_DIR/results/trace2/test/vk-test-device/olive.testtrace-0.png" ]"
-
- destroy_repo "$repo"
}
tracie_stores_images_on_request() {
- repo="$(create_repo)"
- cd "$repo"
-
(export TRACIE_STORE_IMAGES=1; run_tracie)
assert "[ $? = 0 ]"
@@ -200,13 +123,10 @@ tracie_stores_images_on_request() {
assert "[ -f "$TEST_DIR/results/trace2/test/vk-test-device/olive.testtrace-0.png" ]"
ls -lR "$TEST_DIR"
-
- destroy_repo "$repo"
}
run_test tracie_succeeds_if_all_images_match
run_test tracie_fails_on_image_mismatch
-run_test tracie_ignores_unspecified_trace_types
run_test tracie_skips_traces_without_checksum
run_test tracie_fails_on_dump_image_error
run_test tracie_stores_only_logs_on_checksum_match