diff --git a/.gitignore b/.gitignore index 4f7620faa3..290b743697 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -**/.idea/ \ No newline at end of file +**/.idea/ +.vscode + diff --git a/bats/1pk5col-ints.bats b/bats/1pk5col-ints.bats index f80acfa7d8..f7cd86457b 100755 --- a/bats/1pk5col-ints.bats +++ b/bats/1pk5col-ints.bats @@ -1,20 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - # Append the directory name with the pid of the calling process so - # multiple tests can be run in parallel on the same machine - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pk5col-ints.schema` test } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } # Create a single primary key table and do stuff diff --git a/bats/1pk5col-strings.bats b/bats/1pk5col-strings.bats index 90ba3e0352..b796efd544 100755 --- a/bats/1pk5col-strings.bats +++ b/bats/1pk5col-strings.bats @@ -1,20 +1,15 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pk5col-strings.schema` test } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } - + @test "export a table with a string with commas to csv" { run dolt table put-row test pk:tim c1:is c2:super c3:duper c4:rad c5:"a,b,c,d,e" [ "$status" -eq 0 ] diff --git a/bats/1pksupportedtypes.bats b/bats/1pksupportedtypes.bats index 8be5b43cbc..06c5353e72 100755 --- a/bats/1pksupportedtypes.bats +++ b/bats/1pksupportedtypes.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pksupportedtypes.schema` test } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "dolt table put-row with all types then examine table" { diff --git a/bats/2pk5cols-ints.bats b/bats/2pk5cols-ints.bats index 50b1f85dce..24d115f4e6 100755 --- a/bats/2pk5cols-ints.bats +++ b/bats/2pk5cols-ints.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 2pk5col-ints.schema` test } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "create a table with a schema file and examine repo" { diff --git a/bats/advanced-sql.bats b/bats/advanced-sql.bats index 04b4c89668..dcf602a188 100755 --- a/bats/advanced-sql.bats +++ b/bats/advanced-sql.bats @@ -1,13 +1,8 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pk5col-ints.schema` one_pk dolt table create -s=`batshelper 2pk5col-ints.schema` two_pk dolt sql -q "insert into one_pk (pk,c1,c2,c3,c4,c5) values (0,0,0,0,0,0),(1,10,10,10,10,10),(2,20,20,20,20,20),(3,30,30,30,30,30)" @@ -15,7 +10,7 @@ setup() { } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "sql select from multiple tables" { diff --git a/bats/capital-letter-column-names.bats b/bats/capital-letter-column-names.bats index 021ab7fe81..1a845ee90c 100644 --- a/bats/capital-letter-column-names.bats +++ b/bats/capital-letter-column-names.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table import -c -s `batshelper capital-letter-column-names.schema` test `batshelper capital-letter-column-names.csv` } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "capital letter col names. put a row in a table using dolt table put-row" { diff --git a/bats/config.bats b/bats/config.bats index 147cb6f9aa..5a7139ed78 100644 --- a/bats/config.bats +++ b/bats/config.bats @@ -1,19 +1,16 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 + setup_no_dolt_init mkdir $BATS_TMPDIR/config-test$$ nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-test$$ /p - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" + cd $BATS_TMPDIR/dolt-repo-$$ } teardown() { + teardown_common rm -rf "$BATS_TMPDIR/config-test$$" - rm -rf "$BATS_TMPDIR/dolt-repo-$$" } @test "make sure no dolt configuration for simulated fresh user" { diff --git a/bats/conflict-detection.bats b/bats/conflict-detection.bats index 0a0eabd162..a7caee9783 100644 --- a/bats/conflict-detection.bats +++ b/bats/conflict-detection.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "two branches modify different cell different row. merge. no conflict" { diff --git a/bats/create-tables.bats b/bats/create-tables.bats index 69a3caf86f..98f00823ca 100755 --- a/bats/create-tables.bats +++ b/bats/create-tables.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "create a single primary key table" { diff --git a/bats/diff.bats b/bats/diff.bats index 32c0eb1f9c..245ce0b891 100644 --- a/bats/diff.bats +++ b/bats/diff.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "diff summary comparing working table to last commit" { diff --git a/bats/empty-repo.bats b/bats/empty-repo.bats index 7c0995e115..42df3526a8 100755 --- a/bats/empty-repo.bats +++ b/bats/empty-repo.bats @@ -1,15 +1,12 @@ +#!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash + setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } # Tests on an empty dolt repository diff --git a/bats/git-dolt.bats b/bats/git-dolt.bats index fd004890ff..63ea815b29 100755 --- a/bats/git-dolt.bats +++ b/bats/git-dolt.bats @@ -1,25 +1,23 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash REMOTE=http://localhost:50051/test-org/test-repo setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:$GOPATH/bin - export NOMS_VERSION_NEXT=1 + setup_common cd $BATS_TMPDIR mkdir remotes-$$ echo remotesrv log available here $BATS_TMPDIR/remotes-$$/remotesrv.log remotesrv --http-port 1234 --dir ./remotes-$$ &> ./remotes-$$/remotesrv.log 3>&- & - mkdir dolt-repo-$$ cd dolt-repo-$$ - dolt init dolt remote add test-remote $REMOTE dolt push test-remote master export DOLT_HEAD_COMMIT=`get_head_commit` } teardown() { - rm -rf $BATS_TMPDIR/{git,dolt}-repo-$$ + teardown_common + rm -rf $BATS_TMPDIR/git-repo-$$ pgrep remotesrv | xargs kill rm -rf $BATS_TMPDIR/remotes-$$ } diff --git a/bats/helper/common.bash b/bats/helper/common.bash index 08b5dab94f..052f1a6ba8 100644 --- a/bats/helper/common.bash +++ b/bats/helper/common.bash @@ -5,10 +5,32 @@ if [ -z "$BATS_TMPDIR" ]; then mkdir $BATS_TMPDIR fi -nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-$$ /p -dolt config --global --add user.name "Bats Tests" -dolt config --global --add user.email "bats@email.fake" -dolt config --global --add metrics.disabled true - nativebatsdir() { echo `nativepath $BATS_TEST_DIRNAME/$1`; } batshelper() { echo `nativebatsdir helper/$1`; } + +set_dolt_user() { + dolt config --global --add user.name "$1" > /dev/null 2>&1 + dolt config --global --add user.email "$2" > /dev/null 2>&1 +} + +setup_no_dolt_init() { + export PATH=$PATH:~/go/bin + cd $BATS_TMPDIR + # Append the directory name with the pid of the calling process so + # multiple tests can be run in parallel on the same machine + mkdir "dolt-repo-$$" + cd "dolt-repo-$$" +} + +setup_common() { + setup_no_dolt_init + dolt init +} + +teardown_common() { + rm -rf "$BATS_TMPDIR/dolt-repo-$$" +} + +nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-$$ /p +dolt config --global --add metrics.disabled true > /dev/null 2>&1 +set_dolt_user "Bats Tests" "bats@email.fake" diff --git a/bats/multiple-tables.bats b/bats/multiple-tables.bats index 334ab1686b..da553d2878 100755 --- a/bats/multiple-tables.bats +++ b/bats/multiple-tables.bats @@ -1,19 +1,14 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pk5col-ints.schema` test1 dolt table create -s=`batshelper 1pk5col-ints.schema` test2 } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "examine a multi table repo" { diff --git a/bats/no-repo.bats b/bats/no-repo.bats index a863f9dacb..5e78e76638 100755 --- a/bats/no-repo.bats +++ b/bats/no-repo.bats @@ -1,15 +1,14 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR + setup_common mkdir no-dolt-dir-$$ cd no-dolt-dir-$$ } teardown() { + teardown_common rm -rf $BATS_TMPDIR/no-dolt-dir-$$ } @@ -226,9 +225,8 @@ NOT_VALID_REPO_ERROR="The current directory is not a valid dolt repository." } @test "initializing a dolt repository" { - cd $BATS_TMPDIR - mkdir dolt-repo-$$ - cd dolt-repo-$$ + mkdir dolt-repo-$$-new + cd dolt-repo-$$-new run dolt init [ "$status" -eq 0 ] [ "$output" = "Successfully initialized dolt data repository." ] @@ -236,5 +234,5 @@ NOT_VALID_REPO_ERROR="The current directory is not a valid dolt repository." [ -d .dolt/noms ] [ -f .dolt/config.json ] [ -f .dolt/repo_state.json ] - rm -rf $BATS_TMPDIR/dolt-repo-$$ -} \ No newline at end of file + rm -rf $BATS_TMPDIR/dolt-repo-$$-new +} diff --git a/bats/remotes.bats b/bats/remotes.bats index b3a8777cc2..0be326050e 100644 --- a/bats/remotes.bats +++ b/bats/remotes.bats @@ -1,22 +1,19 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 + setup_common cd $BATS_TMPDIR mkdir remotes-$$ mkdir remotes-$$/test-org-empty echo remotesrv log available here $BATS_TMPDIR/remotes-$$/remotesrv.log remotesrv --http-port 1234 --dir ./remotes-$$ &> ./remotes-$$/remotesrv.log 3>&- & - mkdir dolt-repo-$$ cd dolt-repo-$$ - dolt init mkdir "dolt-repo-clones" } teardown() { - rm -rf $BATS_TMPDIR/dolt-repo-$$ + teardown_common pgrep remotesrv | xargs kill rm -rf $BATS_TMPDIR/remotes-$$ } diff --git a/bats/replace-tables.bats b/bats/replace-tables.bats index 91860b9037..2fcfaec8f5 100644 --- a/bats/replace-tables.bats +++ b/bats/replace-tables.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "replace table using csv" { diff --git a/bats/schema-changes.bats b/bats/schema-changes.bats index 18340a34f9..3cd4604711 100755 --- a/bats/schema-changes.bats +++ b/bats/schema-changes.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "changing column types should not produce a data diff error" { diff --git a/bats/send_metrics.bats b/bats/send_metrics.bats index c9b46583d7..20b781217c 100644 --- a/bats/send_metrics.bats +++ b/bats/send_metrics.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt config --global --unset metrics.disabled } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common rm -rf "$BATS_TMPDIR/config-$$/.dolt/eventsData/" } diff --git a/bats/sql-reserved-column-name.bats b/bats/sql-reserved-column-name.bats index cc88946e67..a1925cac3c 100755 --- a/bats/sql-reserved-column-name.bats +++ b/bats/sql-reserved-column-name.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table import -c -pk=Timestamp test `batshelper sql-reserved-column-name.csv` } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "run sql select on a table with a column name that is an sql reserved word" { diff --git a/bats/sql-shell.bats b/bats/sql-shell.bats index b398f70694..8ef7863cd7 100644 --- a/bats/sql-shell.bats +++ b/bats/sql-shell.bats @@ -1,18 +1,13 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common dolt table create -s=`batshelper 1pk5col-ints.schema` test } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "run a query in sql shell" { diff --git a/bats/update-tables.bats b/bats/update-tables.bats index de840f3580..fd594b16cb 100644 --- a/bats/update-tables.bats +++ b/bats/update-tables.bats @@ -1,17 +1,12 @@ #!/usr/bin/env bats +load $BATS_TEST_DIRNAME/helper/common.bash setup() { - load $BATS_TEST_DIRNAME/helper/common.bash - export PATH=$PATH:~/go/bin - export NOMS_VERSION_NEXT=1 - cd $BATS_TMPDIR - mkdir "dolt-repo-$$" - cd "dolt-repo-$$" - dolt init + setup_common } teardown() { - rm -rf "$BATS_TMPDIR/dolt-repo-$$" + teardown_common } @test "update table using csv" {