48 lines
1.2 KiB
Bash
Executable File
48 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ------------------
|
|
# This is a test script that checks that `sqlite_lint` subcommand works as expected.
|
|
# ------------------
|
|
|
|
|
|
set -e
|
|
set -x
|
|
|
|
PS4='+(${BASH_SOURCE}:${LINENO}): '
|
|
cd "$(dirname ${BASH_SOURCE[0]})/.."
|
|
|
|
# Compile `gas`
|
|
program="/tmp/gas"
|
|
go build -o $program ./cmd
|
|
|
|
test_schema_dir="pkg/schema/lint/test_schemas"
|
|
|
|
# Check all failure cases
|
|
for test_schema in $test_schema_dir/failure-*; do
|
|
output=$($program sqlite_lint $test_schema) && {
|
|
echo "Expected test to fail"
|
|
exit 9
|
|
}
|
|
|
|
# Should print the name of the file being linted
|
|
if ! echo "$output" | grep -Fxq "Linting $test_schema"; then
|
|
echo "Expected 'Linting $test_schema' in output"
|
|
exit 10
|
|
fi
|
|
done
|
|
|
|
# Check success case
|
|
success_schema="$test_schema_dir/success.sql"
|
|
output=$($program sqlite_lint $success_schema) || {
|
|
echo "Expected test to succeed"
|
|
exit 9
|
|
}
|
|
# Should print the name of the file being linted
|
|
if ! echo "$output" | grep -Fxq "Linting $success_schema"; then
|
|
echo "Expected 'Linting $success_schema' in output"
|
|
exit 10
|
|
fi
|
|
|
|
# Notify success in green
|
|
echo -e "\033[32mAll tests passed. Finished successfully.\033[0m"
|