From e33558e6a4fa123ecc524160e2f83f1c7e657ab7 Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Wed, 25 Feb 2015 20:20:04 -0500 Subject: [PATCH] split out drivers more flexibility for testing; not all drivers support the same actions Signed-off-by: Evan Hazlett --- test/driver-rackspace.bats | 84 +++++++++++++++++++++++++++ test/driver-virtualbox.bats | 110 ++++++++++++++++++++++++++++++++++++ test/driver.bats | 101 --------------------------------- test/vars.bash | 2 - 4 files changed, 194 insertions(+), 103 deletions(-) create mode 100644 test/driver-rackspace.bats create mode 100644 test/driver-virtualbox.bats delete mode 100644 test/driver.bats diff --git a/test/driver-rackspace.bats b/test/driver-rackspace.bats new file mode 100644 index 0000000000..37d7c41e58 --- /dev/null +++ b/test/driver-rackspace.bats @@ -0,0 +1,84 @@ +#!/usr/bin/env bats + +load vars + +DRIVER=rackspace + +NAME="bats-$DRIVER-test" +MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER + +@test "$DRIVER: machine should not exist" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: create" { + run ./docker-machine_$PLATFORM-$ARCH create -d $DRIVER $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: active" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ls" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "*" ]] +} + +@test "$DRIVER: url" { + run ./docker-machine_$PLATFORM-$ARCH url $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ip" { + run ./docker-machine_$PLATFORM-$ARCH ip $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ssh" { + run ./docker-machine_$PLATFORM-$ARCH ssh $NAME -- ls -lah / + [ "$status" -eq 0 ] + [[ ${lines[0]} =~ "total" ]] +} + +@test "$DRIVER: stop should fail (unsupported)" { + run ./docker-machine_$PLATFORM-$ARCH stop $NAME + [[ ${lines[1]} =~ "not currently support" ]] +} + +@test "$DRIVER: start should fail (unsupported)" { + run ./docker-machine_$PLATFORM-$ARCH start $NAME + [[ ${lines[1]} =~ "not currently support" ]] +} + +@test "$DRIVER: restart" { + run ./docker-machine_$PLATFORM-$ARCH restart $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after restart" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "Running" ]] +} + +@test "$DRIVER: remove" { + run ./docker-machine_$PLATFORM-$ARCH rm $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should not exist" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: cleanup" { + run rm -rf $MACHINE_STORAGE_PATH + [ "$status" -eq 0 ] +} + diff --git a/test/driver-virtualbox.bats b/test/driver-virtualbox.bats new file mode 100644 index 0000000000..9b134c3c45 --- /dev/null +++ b/test/driver-virtualbox.bats @@ -0,0 +1,110 @@ +#!/usr/bin/env bats + +load vars + +DRIVER=virtualbox + +NAME="bats-$DRIVER-test" +MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER + +@test "$DRIVER: machine should not exist" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: create" { + run ./docker-machine_$PLATFORM-$ARCH create -d $DRIVER $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: active" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ls" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "*" ]] +} + +@test "$DRIVER: url" { + run ./docker-machine_$PLATFORM-$ARCH url $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ip" { + run ./docker-machine_$PLATFORM-$ARCH ip $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ssh" { + run ./docker-machine_$PLATFORM-$ARCH ssh $NAME -- ls -lah / + [ "$status" -eq 0 ] + [[ ${lines[0]} =~ "total" ]] +} + +@test "$DRIVER: stop" { + run ./docker-machine_$PLATFORM-$ARCH stop $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show stopped after stop" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "Stopped" ]] +} + +@test "$DRIVER: start" { + run ./docker-machine_$PLATFORM-$ARCH start $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after start" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "Running" ]] +} + +@test "$DRIVER: kill" { + run ./docker-machine_$PLATFORM-$ARCH kill $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show stopped after kill" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "Stopped" ]] +} + +@test "$DRIVER: restart" { + run ./docker-machine_$PLATFORM-$ARCH restart $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after restart" { + run ./docker-machine_$PLATFORM-$ARCH ls + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ "$NAME" ]] + [[ ${lines[1]} =~ "Running" ]] +} + +@test "$DRIVER: remove" { + run ./docker-machine_$PLATFORM-$ARCH rm -f $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should not exist" { + run ./docker-machine_$PLATFORM-$ARCH active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: cleanup" { + run rm -rf $MACHINE_STORAGE_PATH + [ "$status" -eq 0 ] +} + diff --git a/test/driver.bats b/test/driver.bats deleted file mode 100644 index 5001e9738f..0000000000 --- a/test/driver.bats +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bats - -load vars - -if [ -z "$DRIVER" ]; then - echo "You must set the DRIVER environment variable" - exit 1 -fi - -NAME="bats-$DRIVER-test" -MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER - -@test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME - [ "$status" -eq 1 ] -} - -@test "$DRIVER: create" { - run ./docker-machine_$PLATFORM-$ARCH create -d $DRIVER $NAME - [ "$status" -eq 0 ] -} - -@test "$DRIVER: active" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME - [ "$status" -eq 0 ] -} - -@test "$DRIVER: ls" { - run ./docker-machine_$PLATFORM-$ARCH ls - [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "*" ]] -} - -@test "$DRIVER: url" { - run ./docker-machine_$PLATFORM-$ARCH url $NAME - [ "$status" -eq 0 ] -} - -@test "$DRIVER: ip" { - run ./docker-machine_$PLATFORM-$ARCH ip $NAME - [ "$status" -eq 0 ] -} - -@test "$DRIVER: ssh" { - run ./docker-machine_$PLATFORM-$ARCH ssh $NAME -- ls -lah / - [ "$status" -eq 0 ] - [[ ${lines[0]} =~ "total" ]] -} - -case "$DRIVER" in - [digitalocean,amazonec2,virtualbox]*) - @test "$DRIVER: stop" { - run ./docker-machine_$PLATFORM-$ARCH stop $NAME - [ "$status" -eq 0 ] - } - - @test "$DRIVER: machine should show stopped" { - run ./docker-machine_$PLATFORM-$ARCH ls - [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Stopped" ]] - } - - @test "$DRIVER: start" { - run ./docker-machine_$PLATFORM-$ARCH start $NAME - [ "$status" -eq 0 ] - } - - @test "$DRIVER: machine should show running after start" { - run ./docker-machine_$PLATFORM-$ARCH ls - [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Running" ]] - } - - @test "$DRIVER: restart" { - run ./docker-machine_$PLATFORM-$ARCH restart $NAME - [ "$status" -eq 0 ] - } - - @test "$DRIVER: machine should show running after restart" { - run ./docker-machine_$PLATFORM-$ARCH ls - [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Running" ]] - } - - ;; -esac - -@test "$DRIVER: remove" { - run ./docker-machine_$PLATFORM-$ARCH rm $NAME - [ "$status" -eq 0 ] -} - -@test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME - [ "$status" -eq 1 ] -} - diff --git a/test/vars.bash b/test/vars.bash index fe3a5fb346..69a8dc3b31 100644 --- a/test/vars.bash +++ b/test/vars.bash @@ -8,5 +8,3 @@ if [ "$ARCH" = "x86_64" ]; then else ARCH="386" fi - -DRIVER=${DRIVER:-}