#!/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 "$@"