Revise integration_test.sh script

This commit is contained in:
ionutboangiu
2023-10-27 08:49:01 -04:00
committed by Dan Christian Bogos
parent 4ca66ed6c4
commit a9828b5d03

View File

@@ -1,226 +1,53 @@
#!/bin/bash
# set -e
go clean --cache
results=()
./test.sh
results+=($?)
if [ "$#" -ne 0 ]; then
# to run the integration tests for gob only add `-rpc=*gob` as argument to this script
# to run for a single dbtype add `-dbtype=*mysql` as argument
# ./integaration_tes.sh -dbtype=*mysql -rpc=*gob
echo "go test github.com/cgrates/cgrates/apier/v1 -tags=integration $@"
go test github.com/cgrates/cgrates/apier/v1 -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/apier/v2 -tags=integration $@"
go test github.com/cgrates/cgrates/apier/v2 -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/engine -tags=integration $@"
go test github.com/cgrates/cgrates/engine -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/ers -tags=integration $@"
go test github.com/cgrates/cgrates/ers -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/loaders -tags=integration $@"
go test github.com/cgrates/cgrates/loaders -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/general_tests -tags=integration $@"
go test github.com/cgrates/cgrates/general_tests -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/agents -tags=integration $@"
go test github.com/cgrates/cgrates/agents -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/sessions -tags=integration $@"
go test github.com/cgrates/cgrates/sessions -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/dispatchers -tags=integration $@"
go test github.com/cgrates/cgrates/dispatchers -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/registrarc -tags=integration $@"
go test github.com/cgrates/cgrates/registrarc -tags=integration $@
results+=($?)
echo "go test github.com/cgrates/cgrates/apier/v1 -tags=offline $@"
go test github.com/cgrates/cgrates/apier/v1 -tags=offline $@
results+=($?)
echo "go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration $@"
go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration $@
results+=($?)
else
# Internal
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*internal
results+=($?)
echo "go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*internal"
go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*internal
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*internal'
go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*internal
results+=($?)
echo "go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*internal"
go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*internal
results+=($?)
# SQL
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mysql
results+=($?)
echo "go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*mysql"
go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*mysql
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mysql'
go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mysql
results+=($?)
echo "go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*mysql"
go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*mysql
results+=($?)
# Mongo
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mongo
results+=($?)
echo "go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*mongo"
go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*mongo
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mongo'
go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mongo
results+=($?)
echo "go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*mongo"
go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*mongo
results+=($?)
# Postgres
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/apier/v2 -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/engine -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/ers -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/loaders -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/agents -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/sessions -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*postgres
results+=($?)
echo "go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*postgres"
go test github.com/cgrates/cgrates/registrarc -tags=integration -dbtype=*postgres
results+=($?)
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*postgres'
go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*postgres
results+=($?)
echo "go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*postgres"
go test github.com/cgrates/cgrates/cmd/cgr-loader -tags=integration -dbtype=*postgres
results+=($?)
# This script is used to run integration tests on various packages with different tags and dbtypes.
# Usage:
# - To run all the integration tests, don't add any arguments.
# - To run the integration tests for gob only add `-rpc=*gob` as an argument to this script.
# - To run for a single dbtype add `-dbtype=*mysql` as an argument.
# Example:
# ./integration_test.sh -dbtype=*mysql -rpc=*gob
packages=("agents" "apier/v1" "apier/v2" "cmd/cgr-loader" "dispatchers" "engine" "ers" "general_tests" "loaders" "registrarc" "sessions")
dbtypes=("*internal" "*mysql" "*mongo" "*postgres")
# Tests that are independent of the dbtype flag and run only once
single_run_packages=("analyzers" "config" "cores" "ees" "utils" "migrator" "services")
results=()
execute_test() {
echo "Executing: go test github.com/cgrates/cgrates/$1 -tags=$2 $3"
go test "github.com/cgrates/cgrates/$1" -tags="$2" "$3"
results+=($?)
}
go clean --cache
# Execute tests based on passed arguments
if [ "$#" -ne 0 ]; then
for pkg in "${packages[@]}"; do
execute_test "$pkg" "integration" "$@"
[ "$pkg" == "apier/v1" ] && execute_test "$pkg" "offline" "$@"
done
else
# Execute tests for all db types if no arguments have been passed
for db in "${dbtypes[@]}"; do
for pkg in "${packages[@]}"; do
execute_test "$pkg" "integration" "-dbtype=$db"
[ "$pkg" == "apier/v1" ] && execute_test "$pkg" "offline" "-dbtype=$db"
done
done
fi
echo "go test github.com/cgrates/cgrates/analyzers -tags=integration"
go test github.com/cgrates/cgrates/analyzers -tags=integration
results+=($?)
echo "go test github.com/cgrates/cgrates/ees -tags=integration"
go test github.com/cgrates/cgrates/ees -tags=integration
results+=($?)
echo 'go test github.com/cgrates/cgrates/config -tags=integration'
go test github.com/cgrates/cgrates/config -tags=integration
results+=($?)
echo 'go test github.com/cgrates/cgrates/utils -tags=integration'
go test github.com/cgrates/cgrates/utils -tags=integration
results+=($?)
echo 'go test github.com/cgrates/cgrates/cores -tags=integration'
go test github.com/cgrates/cgrates/cores -tags=integration
results+=($?)
echo 'go test github.com/cgrates/cgrates/migrator -tags=integration'
go test github.com/cgrates/cgrates/migrator -tags=integration
results+=($?)
echo 'go test github.com/cgrates/cgrates/services -tags=integration'
go test github.com/cgrates/cgrates/services -tags=integration
results+=($?)
# Execute the tests that run only once
for test in "${single_run_packages[@]}"; do
execute_test "$test" "integration"
done
# Check the results and exit with an appropriate code
pass=1
for val in ${results[@]}; do
(( pass=$pass||$val))
for val in "${results[@]}"; do
(( pass=pass||val))
done
exit $pass