Test complete
Some checks failed
Some checks failed
This commit is contained in:
parent
d49f366b56
commit
43be190fe6
@ -7,6 +7,32 @@ fi
|
|||||||
# TODO derive this from config
|
# TODO derive this from config
|
||||||
database_url="postgresql://test-user:password@localhost:5432/test-db"
|
database_url="postgresql://test-user:password@localhost:5432/test-db"
|
||||||
psql_command="psql ${database_url}"
|
psql_command="psql ${database_url}"
|
||||||
|
program_name="Database test client:"
|
||||||
|
|
||||||
|
wait_for_database_up () {
|
||||||
|
for i in {1..50}
|
||||||
|
do
|
||||||
|
${psql_command} -c "select 1;"
|
||||||
|
psql_succeeded=$?
|
||||||
|
if [[ ${psql_succeeded} == 0 ]]; then
|
||||||
|
# if ready, return
|
||||||
|
echo "${program_name} database up"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
# if not ready, wait
|
||||||
|
echo "${program_name} waiting for database: ${i}"
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Timed out, error exit
|
||||||
|
echo "${program_name} waiting for database: FAILED"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Used to synchronize with the test runner
|
||||||
|
notify_test_complete () {
|
||||||
|
echo "${program_name} test complete"
|
||||||
|
}
|
||||||
|
|
||||||
does_test_data_exist () {
|
does_test_data_exist () {
|
||||||
query_result=$(${psql_command} -t -c "select count(*) from test_table_1 where key_column = 'test_key_1';" | head -1 | tr -d ' ')
|
query_result=$(${psql_command} -t -c "select count(*) from test_table_1 where key_column = 'test_key_1';" | head -1 | tr -d ' ')
|
||||||
@ -27,16 +53,19 @@ wait_forever() {
|
|||||||
while :; do sleep 600; done
|
while :; do sleep 600; done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wait_for_database_up
|
||||||
|
|
||||||
# Check if the test database content exists already
|
# Check if the test database content exists already
|
||||||
if does_test_data_exist; then
|
if does_test_data_exist; then
|
||||||
# If so, log saying so. Test harness will look for this log output
|
# If so, log saying so. Test harness will look for this log output
|
||||||
echo "Database test client: test data already exists"
|
echo "${program_name} test data already exists"
|
||||||
else
|
else
|
||||||
# Otherwise log saying the content was not present
|
# Otherwise log saying the content was not present
|
||||||
echo "Database test client: test data does not exist"
|
echo "${program_name} test data does not exist"
|
||||||
echo "Database test client: creating test data"
|
echo "${program_name} creating test data"
|
||||||
# then create it
|
# then create it
|
||||||
create_test_data
|
create_test_data
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
notify_test_complete
|
||||||
wait_forever
|
wait_forever
|
||||||
|
@ -36,13 +36,13 @@ wait_for_pods_started () {
|
|||||||
delete_cluster_exit
|
delete_cluster_exit
|
||||||
}
|
}
|
||||||
|
|
||||||
wait_for_log_output () {
|
wait_for_test_complete () {
|
||||||
for i in {1..50}
|
for i in {1..50}
|
||||||
do
|
do
|
||||||
|
|
||||||
local log_output=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
local log_output=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
||||||
|
|
||||||
if [[ ! -z "$log_output" ]]; then
|
if [[ "${log_output}" == *"Database test client: test complete"* ]]; then
|
||||||
# if ready, return
|
# if ready, return
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
@ -51,7 +51,7 @@ wait_for_log_output () {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
# Timed out, error exit
|
# Timed out, error exit
|
||||||
echo "waiting for pods log content: FAILED"
|
echo "waiting for test complete: FAILED"
|
||||||
delete_cluster_exit
|
delete_cluster_exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,12 +98,12 @@ echo "deploy create test: passed"
|
|||||||
$TEST_TARGET_SO deployment --dir $test_deployment_dir start
|
$TEST_TARGET_SO deployment --dir $test_deployment_dir start
|
||||||
wait_for_pods_started
|
wait_for_pods_started
|
||||||
# Check logs command works
|
# Check logs command works
|
||||||
wait_for_log_output
|
wait_for_test_complete
|
||||||
log_output_1=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
log_output_1=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
||||||
if [[ "$log_output_1" == *"Database test client: test data does not exist"* ]]; then
|
if [[ "$log_output_1" == *"Database test client: test data does not exist"* ]]; then
|
||||||
echo "deployment logs test: passed"
|
echo "Create database content test: passed"
|
||||||
else
|
else
|
||||||
echo "deployment logs test: FAILED"
|
echo "Create database content test: FAILED"
|
||||||
delete_cluster_exit
|
delete_cluster_exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ $TEST_TARGET_SO deployment --dir $test_deployment_dir stop
|
|||||||
sleep 20
|
sleep 20
|
||||||
$TEST_TARGET_SO deployment --dir $test_deployment_dir start
|
$TEST_TARGET_SO deployment --dir $test_deployment_dir start
|
||||||
wait_for_pods_started
|
wait_for_pods_started
|
||||||
wait_for_log_output
|
wait_for_test_complete
|
||||||
|
|
||||||
log_output_2=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
log_output_2=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )
|
||||||
if [[ "$log_output_2" == *"Database test client: test data already exists"* ]]; then
|
if [[ "$log_output_2" == *"Database test client: test data already exists"* ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user