46 lines
1.0 KiB
Bash
46 lines
1.0 KiB
Bash
#!/usr/bin/env bats
|
|
load $BATS_TEST_DIRNAME/setup/common.bash
|
|
|
|
setup() {
|
|
setup_common
|
|
}
|
|
|
|
teardown() {
|
|
teardown_common
|
|
}
|
|
|
|
@test 'foreign-keys: survives restarts' {
|
|
PORT=$( definePORT )
|
|
|
|
# stopping the server undefines the port, so save it
|
|
port=$PORT
|
|
mkdir test-home
|
|
|
|
CONFIG=$( defineCONFIG $PORT )
|
|
echo "$CONFIG" > config.yaml
|
|
|
|
doltgres > server.out 2>&1 &
|
|
SERVER_PID=$!
|
|
run wait_for_connection $PORT 7500
|
|
|
|
cat server.out
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
|
|
query_server -c "create table parent (a int primary key, b int)"
|
|
query_server -c "insert into parent values (1,2)"
|
|
query_server -c "create table child (c int primary key, d int, foreign key (d) references public.parent(a))"
|
|
query_server -c "insert into child values (2,1)"
|
|
|
|
stop_sql_server
|
|
|
|
PORT=$port
|
|
doltgres > server.out 2>&1 &
|
|
SERVER_PID=$!
|
|
run wait_for_connection $PORT 7500
|
|
|
|
run query_server -c "insert into child values (100,100)"
|
|
[ "$status" -ne 0 ]
|
|
[[ "$output" =~ "violation" ]] || false
|
|
}
|