diff options
| author | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
|---|---|---|
| committer | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
| commit | 82e03978b89938219958032efb1448cc76baa181 (patch) | |
| tree | 626f3e54d52ecd49be0ed3bee30abacc0453d081 /test/tracetesting/run.bash | |
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'test/tracetesting/run.bash')
| -rwxr-xr-x | test/tracetesting/run.bash | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash new file mode 100755 index 0000000..3842c08 --- /dev/null +++ b/test/tracetesting/run.bash @@ -0,0 +1,110 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 +#/bin/bash + +# This script set up how to run Tracetest and which test files +# be executed + +set -e + +# Availalble services to test +ALL_SERVICES=("ad" "cart" "currency" "checkout" "frontend" "email" "payment" "product-catalog" "recommendation" "shipping") + +## Script variables +# Will contain the list of services to test +chosen_services=() +# Array to hold process IDs +pids=() +# Array to hold exit codes +exit_codes=() + +## Script functions +check_if_tracetest_is_installed() { + if ! command -v tracetest &> /dev/null + then + echo "tracetest CLI could not be found" + exit -1 + fi +} + +create_env_file() { + cat << EOF > tracetesting-vars.yaml +type: VariableSet +spec: + id: tracetesting-vars + name: tracetesting-vars + values: + - key: AD_ADDR + value: $AD_ADDR + - key: CART_ADDR + value: $CART_ADDR + - key: CHECKOUT_ADDR + value: $CHECKOUT_ADDR + - key: CURRENCY_ADDR + value: $CURRENCY_ADDR + - key: EMAIL_ADDR + value: $EMAIL_ADDR + - key: FRONTEND_ADDR + value: $FRONTEND_ADDR + - key: PAYMENT_ADDR + value: $PAYMENT_ADDR + - key: PRODUCT_CATALOG_ADDR + value: $PRODUCT_CATALOG_ADDR + - key: RECOMMENDATION_ADDR + value: $RECOMMENDATION_ADDR + - key: SHIPPING_ADDR + value: $SHIPPING_ADDR + - key: KAFKA_ADDR + value: $KAFKA_ADDR +EOF +} + +run_tracetest() { + service_name=$1 + testsuite_file=./$service_name/all.yaml + + tracetest --config ./cli-config.yml run testsuite --file $testsuite_file --vars ./tracetesting-vars.yaml & + pids+=($!) +} + +## Script execution +while [[ $# -gt 0 ]]; do + chosen_services+=("$1") + shift +done + +if [ ${#chosen_services[@]} -eq 0 ]; then + for service in "${ALL_SERVICES[@]}"; do + chosen_services+=("$service") + done +fi + +check_if_tracetest_is_installed +create_env_file + +echo "Starting tests..." +echo "Running trace-based tests for: ${chosen_services[*]} ..." +echo "" + +for service in "${chosen_services[@]}"; do + run_tracetest $service +done + +# Wait for processes to finish and capture their exit codes +for pid in "${pids[@]}"; do + wait $pid + exit_codes+=($?) +done + +# Find the maximum exit code +max_exit_code=0 +for code in "${exit_codes[@]}"; do + if [[ $code -gt $max_exit_code ]]; then + max_exit_code=$code + fi +done + +echo "" +echo "Tests done! Exit code: $max_exit_code" + +exit $max_exit_code |
