From 306878c95d22c98ce09e19b46260ae10d3116a0d Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 14 Aug 2023 15:50:05 -0400 Subject: [PATCH] Clean up run_docker_integration_test.bash --- scripts/run_docker_compare.bash | 6 ++- scripts/run_docker_integration_test.bash | 48 ++++++++++++++++++------ 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/scripts/run_docker_compare.bash b/scripts/run_docker_compare.bash index a36f428..a4f1236 100755 --- a/scripts/run_docker_compare.bash +++ b/scripts/run_docker_compare.bash @@ -29,7 +29,6 @@ function launch_container { set -euo pipefail IFS=\$'\n\t' -cd /source export CARGO_TARGET_DIR=/target cargo run -- /input.org EOF @@ -40,7 +39,10 @@ EOF else additional_flags+=(-i -t) fi - docker run "${additional_flags[@]}" --rm -v "${org_file}:/input.org:ro" -v "$($REALPATH ./):/source:ro" --mount source=cargo-cache,target=/usr/local/cargo/registry --mount source=rust-cache,target=/target -w / organic-test "${additional_args[@]}" + + # TODO: add support for reporting to jaeger with RUST_BACKTRACE=1 RUST_LOG=debug + + docker run "${additional_flags[@]}" --rm -v "${org_file}:/input.org:ro" -v "$($REALPATH ./):/source:ro" --mount source=cargo-cache,target=/usr/local/cargo/registry --mount source=rust-cache,target=/target -w /source organic-test "${additional_args[@]}" } main "${@}" diff --git a/scripts/run_docker_integration_test.bash b/scripts/run_docker_integration_test.bash index 549923e..4285fcc 100755 --- a/scripts/run_docker_integration_test.bash +++ b/scripts/run_docker_integration_test.bash @@ -4,17 +4,33 @@ set -euo pipefail IFS=$'\n\t' DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$DIR/../" REALPATH=$(command -v uu-realpath || command -v realpath) +MAKE=$(command -v gmake || command -v make) -samples_dir=$(readlink -f "$DIR/../org_mode_samples") +function main { + local test_names=$(get_test_names "${@}") + build_container + + local test + while read test; do + launch_container "$test" + done<<<"$test_names" +} + +function build_container { + $MAKE -C "$DIR/../docker/organic_test" +} function get_test_names { + local test_file + local samples_dir=$($REALPATH "$DIR/../org_mode_samples") for test_file in "$@" do if [ -e "$test_file" ]; then - test_file_full_path=$(readlink -f "$test_file") - relative_to_samples=$($REALPATH --relative-to "$samples_dir" "$test_file_full_path") - without_extension="${relative_to_samples%.org}" + local test_file_full_path=$($REALPATH "$test_file") + local relative_to_samples=$($REALPATH --relative-to "$samples_dir" "$test_file_full_path") + local without_extension="${relative_to_samples%.org}" echo "${without_extension/\//_}" | tr '[:upper:]' '[:lower:]' else echo "$test_file" | tr '[:upper:]' '[:lower:]' @@ -22,11 +38,21 @@ function get_test_names { done } -make -C "$DIR/../docker/organic_test" +function launch_container { + local test="$1" + local additional_args=() -get_test_names "$@" | while read test; do - ( - cd "$DIR/../" - docker run --rm -v "$(readlink -f ./):/.source:ro" --mount source=cargo-cache,target=/usr/local/cargo/registry -w / organic-test sh -c "cp -r /.source /source && cd /source && cargo test --no-fail-fast --lib --test test_loader \"$test\" -- --show-output" - ) -done + local init_script=$(cat <