mirror of
https://github.com/dolthub/dolt.git
synced 2026-04-22 19:43:51 -05:00
160 lines
5.1 KiB
Bash
160 lines
5.1 KiB
Bash
#! /usr/bin/env bats
|
|
load $BATS_TEST_DIRNAME/helper/common.bash
|
|
load $BATS_TEST_DIRNAME/helper/query-server-common.bash
|
|
|
|
make_repo() {
|
|
mkdir "$1"
|
|
cd "$1"
|
|
dolt init
|
|
dolt sql -q "create table $1_tbl (id int)"
|
|
cd ..
|
|
}
|
|
|
|
setup() {
|
|
if [ "$SQL_ENGINE" = "remote-engine" ]; then
|
|
skip "This test tests remote connections directly, SQL_ENGINE is not needed."
|
|
fi
|
|
setup_no_dolt_init
|
|
make_repo defaultDB
|
|
make_repo altDB
|
|
}
|
|
|
|
teardown() {
|
|
stop_sql_server 1
|
|
teardown_common
|
|
}
|
|
|
|
get_staged_tables() {
|
|
dolt status | awk '
|
|
match($0, /new table:\ */) { print substr($0, RSTART+RLENGTH) }
|
|
/Untracked tables:/ { exit }
|
|
/Tables with conflicting dolt_ignore patterns:/ { exit }
|
|
'
|
|
}
|
|
|
|
@test "sql-local-remote: test switch between server/no server" {
|
|
start_sql_server defaultDB
|
|
|
|
run dolt --verbose-engine-setup --user dolt sql -q "show databases"
|
|
[ "$status" -eq 0 ] || false
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
[[ "$output" =~ "defaultDB" ]] || false
|
|
[[ "$output" =~ "altDB" ]] || false
|
|
|
|
stop_sql_server 1
|
|
|
|
run dolt --verbose-engine-setup sql -q "show databases"
|
|
[ "$status" -eq 0 ] || false
|
|
[[ "$output" =~ "starting local mode" ]] || false
|
|
[[ "$output" =~ "defaultDB" ]] || false
|
|
[[ "$output" =~ "altDB" ]] || false
|
|
}
|
|
|
|
@test "sql-local-remote: check --data-dir pointing to a server root can be used when in different directory." {
|
|
start_sql_server altDb
|
|
ROOT_DIR=$(pwd)
|
|
|
|
mkdir someplace_else
|
|
cd someplace_else
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt --use-db altDB sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt --use-db defaultDB sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
[[ "$output" =~ "defaultDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
|
|
stop_sql_server 1
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt --use-db altDB sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting local mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt --use-db defaultDB sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting local mode" ]] || false
|
|
[[ "$output" =~ "defaultDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR" --user dolt sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting local mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
}
|
|
|
|
|
|
@test "sql-local-remote: check --data-dir pointing to a database root can be used when in different directory." {
|
|
start_sql_server altDb
|
|
ROOT_DIR=$(pwd)
|
|
|
|
mkdir -p someplace_new/fun
|
|
cd someplace_new/fun
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR/altDB" --user dolt sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR/altDB" --user dolt --use-db defaultDB sql -q "show tables"
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" =~ "defaultDB does not exist" ]] || false
|
|
|
|
stop_sql_server 1
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR/altDB" --user dolt sql -q "show tables"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting local mode" ]] || false
|
|
[[ "$output" =~ "altDB_tbl" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --data-dir="$ROOT_DIR/altDB" --user dolt --use-db defaultDB sql -q "show tables"
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" =~ "defaultDB does not exist" ]] || false
|
|
}
|
|
|
|
@test "sql-local-remote: verify dolt blame behavior is identical in switch between server/no server" {
|
|
cd altDB
|
|
dolt sql -q "create table test (pk int primary key)"
|
|
dolt sql -q "insert into test values (1)"
|
|
dolt add test
|
|
dolt commit -m "insert initial value into test"
|
|
dolt sql -q "insert into test values (2), (3)"
|
|
dolt add test
|
|
dolt commit -m "insert more values into test"
|
|
cd ..
|
|
|
|
start_sql_server altDB
|
|
run dolt --user dolt blame test
|
|
[ "$status" -eq 0 ]
|
|
export out="$output"
|
|
stop_sql_server 1
|
|
|
|
run dolt blame test
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" = $out ]] || false
|
|
}
|
|
@test "sql-local-remote: verify simple dolt add behavior." {
|
|
start_sql_server altDb
|
|
cd altDb
|
|
|
|
run dolt --verbose-engine-setup --user dolt sql -q "create table testtable (pk int PRIMARY KEY)"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
|
|
run dolt --verbose-engine-setup --user dolt add .
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ "starting remote mode" ]] || false
|
|
|
|
stop_sql_server 1
|
|
|
|
staged=$(get_staged_tables)
|
|
|
|
[[ ! -z $(echo "$staged" | grep "testtable") ]] || false
|
|
} |