#!/bin/bash set -euo pipefail # Verify that loading a non existent file is an error, not a segfault load_nonexistent() { cat <<EOF .echo on .load parquet/libparquet .testcase notfound .bail on CREATE VIRTUAL TABLE test USING parquet('$root/doesnotexist.parquet'); SELECT 123; EOF } main() { root=$(dirname "${BASH_SOURCE[0]}")/.. root=$(readlink -f "$root") cd "$root" #This line will exit with non-zero in case of a segfault. "$root"/sqlite/sqlite3 -init <(load_nonexistent) < /dev/null > /dev/null 2> testcase-stderr.txt # We expect the 'SELECT 123' command to NOT have been run if grep -q 123 testcase-out.txt; then echo "...FAILED; expected an error message. Check testcase-{out,err}.txt" >&2 exit 1 fi } main "$@"