integration-tests/bats: Update bats tests for new sql-server.lock semantics.

This commit is contained in:
Aaron Son
2023-11-29 17:56:24 -08:00
parent 044ae94050
commit 751840ea61
2 changed files with 6 additions and 90 deletions
@@ -112,6 +112,7 @@ call dolt_commit('-m', 'add some vals');
dolt sql-server --remotesapi-port 50051 &
srv_pid=$!
sleep 2
dolt clone http://localhost:50051/remote_one remote_one_cloned
cd ../remote_two
+5 -90
View File
@@ -1052,9 +1052,6 @@ END""")
[[ $output =~ "information_schema" ]] || false
[[ $output =~ "test1" ]] || false
# Make sure the sql-server lock file is set for a newly created database
[[ -f "$PWD/test1/.dolt/sql-server.lock" ]] || false
dolt sql -q "create table a(x int)"
dolt sql -q "call dolt_add('.')"
dolt sql -q "insert into a values (1), (2)"
@@ -1222,9 +1219,6 @@ END""")
[[ $output =~ "information_schema" ]] || false
[[ $output =~ "test1" ]] || false
# Make sure the sql-server lock file is set for a newly created database
[[ -f "$PWD/db_dir/test1/.dolt/sql-server.lock" ]] || false
dolt --port $PORT --host 0.0.0.0 --no-tls -u dolt --use-db test1 sql -q "create table a(x int)"
dolt --port $PORT --host 0.0.0.0 --no-tls -u dolt --use-db test1 sql -q "call dolt_add('.')"
dolt --port $PORT --host 0.0.0.0 --no-tls -u dolt --use-db test1 sql -q "insert into a values (1), (2)"
@@ -1460,9 +1454,6 @@ data_dir: $DATA_DIR
start_sql_server
dolt sql -q "create database newdb"
# Make sure the sql-server lock file is set for the new database
[[ -f "$PWD/newdb/.dolt/sql-server.lock" ]] || false
# Verify that we can't start a sql-server from the new database dir
cd newdb
PORT=$( definePORT )
@@ -1583,52 +1574,12 @@ behavior:
[ "${#lines[@]}" -eq 1 ]
}
@test "sql-server: start server multidir creates sql-server.lock file in every rep" {
start_sql_server
run ls repo1/.dolt
[[ "$output" =~ "sql-server.lock" ]] || false
run ls repo2/.dolt
[[ "$output" =~ "sql-server.lock" ]] || false
stop_sql_server
run ls repo1/.dolt
! [[ "$output" =~ "sql-server.lock" ]] || false
run ls repo2/.dolt
! [[ "$output" =~ "sql-server.lock" ]] || false
}
@test "sql-server: running a dolt function in the same directory as a running server correctly errors" {
start_sql_server
cd repo1
run dolt gc
[ "$status" -eq 1 ]
[[ "$output" =~ "database locked by another sql-server; either clone the database to run a second server" ]] || false
PORT=$( definePORT )
run dolt sql-server --port=$PORT --socket "dolt.$PORT.sock"
[ "$status" -eq 1 ]
[[ "$output" =~ "Database locked by another sql-server" ]] || false
stop_sql_server 1
}
@test "sql-server: sigterm running server and restarting works correctly" {
start_sql_server
run ls repo1/.dolt
[[ "$output" =~ "sql-server.lock" ]] || false
run ls repo2/.dolt
[[ "$output" =~ "sql-server.lock" ]] || false
kill -9 $SERVER_PID
run ls repo1/.dolt
[[ "$output" =~ "sql-server.lock" ]] || false
run ls repo2/.dolt
run ls .dolt
[[ "$output" =~ "sql-server.lock" ]] || false
start_sql_server
@@ -1636,33 +1587,6 @@ behavior:
[ $status -eq 0 ]
[[ $output =~ col1 ]] || false
[[ $output =~ " 1 " ]] || false
stop_sql_server
# Try adding fake pid numbers. Could happen via debugger or something
echo "423423" > repo1/.dolt/sql-server.lock
echo "4123423" > repo2/.dolt/sql-server.lock
start_sql_server
run dolt --port $PORT --host 0.0.0.0 --no-tls -u dolt --use-db repo2 sql -q "select 1 as col1"
[ $status -eq 0 ]
[[ $output =~ col1 ]] || false
[[ $output =~ " 1 " ]] || false
stop_sql_server
# Add malicious text to lockfile and expect to fail
echo "iamamaliciousactor" > repo1/.dolt/sql-server.lock
run start_sql_server
[[ "$output" =~ "database locked by another sql-server; either clone the database to run a second server" ]] || false
[ "$status" -eq 1 ]
rm repo1/.dolt/sql-server.lock
# this test was hanging as the server is stopped from the above error
# but stop_sql_server in teardown tries to kill process that is not
# running anymore, so start the server again, and it will be stopped in
# teardown
start_sql_server
}
@test "sql-server: create a database when no current database is set" {
@@ -1900,18 +1824,6 @@ behavior:
[[ ! "$output" =~ "other" ]] || false
}
@test "sql-server: server won't start where another server is running" {
baseDir=$(mktemp -d)
cd $baseDir
start_sql_server
run dolt sql-server
[ $status -eq 1 ]
[[ "$output" =~ "Database locked by another sql-server; Lock file" ]] || false
}
@test "sql-server: empty server can be connected to using sql with no args" {
baseDir=$(mktemp -d)
cd $baseDir
@@ -1936,10 +1848,13 @@ behavior:
[ $status -eq 0 ]
[[ "$output" =~ "__dolt_local_user__@localhost" ]] || false
# We create a database here so that the server has exclusive access to this database.
# Starting another server attempting to serve it will fail.
dolt --data-dir=$baseDir sql -q "create database mydb"
cd "$baseDir"
run dolt sql-server
[ $status -eq 1 ]
[[ "$output" =~ "Database locked by another sql-server; Lock file" ]] || false
run dolt sql -q "select current_user"
[ $status -eq 0 ]