mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-07 03:09:05 -06:00
131 lines
3.4 KiB
Bash
131 lines
3.4 KiB
Bash
#!/usr/bin/env bats
|
|
load $BATS_TEST_DIRNAME/helper/common.bash
|
|
load $BATS_TEST_DIRNAME/helper/query-server-common.bash
|
|
|
|
setup() {
|
|
setup_common
|
|
TMPDIRS=$(pwd)/tmpdirs
|
|
|
|
init_helper $TMPDIRS
|
|
cd $TMPDIRS
|
|
}
|
|
|
|
init_helper() {
|
|
TMPDIRS=$1
|
|
mkdir -p "${TMPDIRS}/dbs1"
|
|
for i in {1..2}; do
|
|
mkdir "${TMPDIRS}/dbs1/repo${i}"
|
|
cd "${TMPDIRS}/dbs1/repo${i}"
|
|
dolt init
|
|
done
|
|
}
|
|
|
|
teardown() {
|
|
stop_sql_server
|
|
teardown_common
|
|
rm -rf $TMPDIRS
|
|
cd $BATS_TMPDIR
|
|
}
|
|
|
|
@test "multidb: database default branches" {
|
|
cd dbs1
|
|
start_multi_db_server repo1
|
|
dolt sql-client -u dolt -P $PORT --use-db repo1 -q "create database new;
|
|
use new;
|
|
call dcheckout('-b', 'feat');
|
|
create table t (x int);
|
|
call dolt_add('.');
|
|
call dcommit('-am', 'cm');
|
|
set @@global.new_default_branch='feat'"
|
|
dolt sql-client -u dolt --use-db '' -P $PORT -q "use repo1"
|
|
}
|
|
|
|
@test "multidb: incompatible BIN FORMATs" {
|
|
mkdir dbs1/repo4
|
|
cd dbs1/repo4
|
|
DOLT_DEFAULT_BIN_FORMAT=__DOLT__ dolt init
|
|
cd ..
|
|
|
|
dolt --help
|
|
dolt sql -q "show tables"
|
|
}
|
|
|
|
make__LD_1__db() {
|
|
mkdir $1
|
|
cd $1
|
|
DOLT_DEFAULT_BIN_FORMAT=__LD_1__ dolt init
|
|
cd ..
|
|
}
|
|
|
|
make__DOLT__db() {
|
|
mkdir $1
|
|
cd $1
|
|
DOLT_DEFAULT_BIN_FORMAT=__DOLT__ dolt init
|
|
cd ..
|
|
}
|
|
|
|
@test "multidb: databases are hidden based on DOLT_DEFAULT_BIN_FORMAT where there is no database in ./.dolt" {
|
|
cd dbs1
|
|
|
|
make__DOLT__db new1
|
|
make__LD_1__db old1
|
|
make__LD_1__db old2
|
|
|
|
orig_bin_format=$DOLT_DEFAULT_BIN_FORMAT
|
|
|
|
export DOLT_DEFAULT_BIN_FORMAT=__LD_1__
|
|
run dolt sql -q "SELECT 1;"
|
|
[ $status -eq 0 ]
|
|
[[ "$output" =~ "incompatible format for database 'new1'; expected '__LD_1__', found '__DOLT__'" ]] || false
|
|
|
|
run dolt sql -q "SHOW DATABASES;"
|
|
[ $status -eq 0 ]
|
|
echo $output
|
|
[[ "$output" =~ "| old1" ]] || false
|
|
[[ "$output" =~ "| old2" ]] || false
|
|
[[ ! "$output" =~ "| new1" ]] || false
|
|
|
|
export DOLT_DEFAULT_BIN_FORMAT=__DOLT__
|
|
run dolt sql -q "SELECT 1;"
|
|
[ $status -eq 0 ]
|
|
[[ "$output" =~ "incompatible format for database 'old1'; expected '__DOLT__', found '__LD_1__'" ]] || false
|
|
[[ "$output" =~ "incompatible format for database 'old2'; expected '__DOLT__', found '__LD_1__'" ]] || false
|
|
|
|
run dolt sql -q "SHOW DATABASES;"
|
|
[ $status -eq 0 ]
|
|
[[ ! "$output" =~ "| old1" ]] || false
|
|
[[ ! "$output" =~ "| old2" ]] || false
|
|
[[ "$output" =~ "| new1" ]] || false
|
|
|
|
export DOLT_DEFAULT_BIN_FORMAT=$orig_bin_format
|
|
}
|
|
|
|
@test "multidb: additional databases are hidden based on the format of the database in ./.dolt" {
|
|
rm -r dbs1
|
|
mkdir test_db
|
|
cd test_db
|
|
|
|
make__DOLT__db new1
|
|
make__LD_1__db old1
|
|
|
|
export DOLT_DEFAULT_BIN_FORMAT="__DOLT__"
|
|
dolt init
|
|
run dolt sql -q "SHOW DATABASES;"
|
|
[ $status -eq 0 ]
|
|
[[ "$output" =~ "incompatible format for database 'old1'; expected '__DOLT__', found '__LD_1__'" ]] || false
|
|
[[ "$output" =~ "| test_db" ]] || false
|
|
[[ "$output" =~ "| new1" ]] || false
|
|
[[ ! "$output" =~ "| old1" ]] || false
|
|
|
|
rm -r .dolt
|
|
export DOLT_DEFAULT_BIN_FORMAT="__LD_1__"
|
|
dolt init
|
|
run dolt sql -q "SHOW DATABASES;"
|
|
[ $status -eq 0 ]
|
|
[[ "$output" =~ "incompatible format for database 'new1'; expected '__LD_1__', found '__DOLT__'" ]] || false
|
|
[[ "$output" =~ "| test_db" ]] || false
|
|
[[ ! "$output" =~ "| new1" ]] || false
|
|
[[ "$output" =~ "| old1" ]] || false
|
|
}
|
|
|