From e0bda2075dfdc529eec61e7609af5fbc8cd356b2 Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Thu, 26 Feb 2015 00:49:59 -0500 Subject: [PATCH] use function to get binary name (thx @aluzzardi); add digitalocean; add container test Signed-off-by: Evan Hazlett --- test/driver-digitalocean.bats | 111 ++++++++++++++++++++++++++++++++++ test/driver-rackspace.bats | 50 ++++++++------- test/driver-virtualbox.bats | 66 +++++++++++--------- test/vars.bash | 4 ++ 4 files changed, 178 insertions(+), 53 deletions(-) create mode 100644 test/driver-digitalocean.bats diff --git a/test/driver-digitalocean.bats b/test/driver-digitalocean.bats new file mode 100644 index 0000000000..dc3c07acf1 --- /dev/null +++ b/test/driver-digitalocean.bats @@ -0,0 +1,111 @@ +#!/usr/bin/env bats + +load vars + +export DRIVER=digitalocean +export NAME="bats-$DRIVER-test" +export MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER + +@test "$DRIVER: machine should not exist" { + run machine active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: create" { + run machine create -d $DRIVER $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: active" { + run machine active $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ls" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"$NAME"* ]] +} + +@test "$DRIVER: run busybox container" { + run docker $(machine config $NAME) run busybox echo hello world + [ "$status" -eq 0 ] +} + +@test "$DRIVER: url" { + run machine url $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ip" { + run machine ip $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: ssh" { + run machine ssh $NAME -- ls -lah / + [ "$status" -eq 0 ] + [[ ${lines[0]} =~ "total" ]] +} + +@test "$DRIVER: stop" { + run machine stop $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show stopped after stop" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"Stopped"* ]] +} + +@test "$DRIVER: start" { + run machine start $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after start" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"Running"* ]] +} + +@test "$DRIVER: kill" { + run machine kill $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show stopped after kill" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"Stopped"* ]] +} + +@test "$DRIVER: restart" { + run machine restart $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after restart" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"Running"* ]] +} + +@test "$DRIVER: remove" { + run machine rm -f $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should not exist" { + run machine active $NAME + [ "$status" -eq 1 ] +} + +@test "$DRIVER: cleanup" { + run rm -rf $MACHINE_STORAGE_PATH + [ "$status" -eq 0 ] +} + diff --git a/test/driver-rackspace.bats b/test/driver-rackspace.bats index 37d7c41e58..8278d22ab4 100644 --- a/test/driver-rackspace.bats +++ b/test/driver-rackspace.bats @@ -2,78 +2,82 @@ load vars -DRIVER=rackspace - -NAME="bats-$DRIVER-test" -MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER +export DRIVER=rackspace +export NAME="bats-$DRIVER-test" +export MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER @test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 1 ] } @test "$DRIVER: create" { - run ./docker-machine_$PLATFORM-$ARCH create -d $DRIVER $NAME + run machine create -d $DRIVER $NAME [ "$status" -eq 0 ] } @test "$DRIVER: active" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ls" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"*"* ]] +} + +@test "$DRIVER: run busybox container" { + run docker $(machine config $NAME) run busybox echo hello world [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "*" ]] } @test "$DRIVER: url" { - run ./docker-machine_$PLATFORM-$ARCH url $NAME + run machine url $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ip" { - run ./docker-machine_$PLATFORM-$ARCH ip $NAME + run machine ip $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ssh" { - run ./docker-machine_$PLATFORM-$ARCH ssh $NAME -- ls -lah / + run machine 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" ]] + run machine 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" ]] + run machine start $NAME + [[ ${lines[1]} == *"not currently support"* ]] } @test "$DRIVER: restart" { - run ./docker-machine_$PLATFORM-$ARCH restart $NAME + run machine restart $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should show running after restart" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Running" ]] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"Running"* ]] } @test "$DRIVER: remove" { - run ./docker-machine_$PLATFORM-$ARCH rm $NAME + run machine rm $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 1 ] } diff --git a/test/driver-virtualbox.bats b/test/driver-virtualbox.bats index 9b134c3c45..6953f68451 100644 --- a/test/driver-virtualbox.bats +++ b/test/driver-virtualbox.bats @@ -2,104 +2,110 @@ load vars -DRIVER=virtualbox +export DRIVER=virtualbox +export NAME="bats-$DRIVER-test" +export MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER -NAME="bats-$DRIVER-test" -MACHINE_STORAGE_PATH=/tmp/machine-bats-test-$DRIVER +function setup() { + # add sleep because vbox; ugh + sleep 1 +} @test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 1 ] } @test "$DRIVER: create" { - run ./docker-machine_$PLATFORM-$ARCH create -d $DRIVER $NAME + run machine create -d $DRIVER $NAME [ "$status" -eq 0 ] } @test "$DRIVER: active" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ls" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"$NAME"* ]] +} + +@test "$DRIVER: run busybox container" { + run docker $(machine config $NAME) run busybox echo hello world [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "*" ]] } @test "$DRIVER: url" { - run ./docker-machine_$PLATFORM-$ARCH url $NAME + run machine url $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ip" { - run ./docker-machine_$PLATFORM-$ARCH ip $NAME + run machine ip $NAME [ "$status" -eq 0 ] } @test "$DRIVER: ssh" { - run ./docker-machine_$PLATFORM-$ARCH ssh $NAME -- ls -lah / + run machine ssh $NAME -- ls -lah / [ "$status" -eq 0 ] [[ ${lines[0]} =~ "total" ]] } @test "$DRIVER: stop" { - run ./docker-machine_$PLATFORM-$ARCH stop $NAME + run machine stop $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should show stopped after stop" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Stopped" ]] + [[ ${lines[1]} == *"Stopped"* ]] } @test "$DRIVER: start" { - run ./docker-machine_$PLATFORM-$ARCH start $NAME + run machine start $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should show running after start" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Running" ]] + [[ ${lines[1]} == *"Running"* ]] } @test "$DRIVER: kill" { - run ./docker-machine_$PLATFORM-$ARCH kill $NAME + run machine kill $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should show stopped after kill" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Stopped" ]] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"Stopped"* ]] } @test "$DRIVER: restart" { - run ./docker-machine_$PLATFORM-$ARCH restart $NAME + run machine restart $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should show running after restart" { - run ./docker-machine_$PLATFORM-$ARCH ls + run machine ls [ "$status" -eq 0 ] - [[ ${lines[1]} =~ "$NAME" ]] - [[ ${lines[1]} =~ "Running" ]] + [[ ${lines[1]} == *"$NAME"* ]] + [[ ${lines[1]} == *"Running"* ]] } @test "$DRIVER: remove" { - run ./docker-machine_$PLATFORM-$ARCH rm -f $NAME + run machine rm -f $NAME [ "$status" -eq 0 ] } @test "$DRIVER: machine should not exist" { - run ./docker-machine_$PLATFORM-$ARCH active $NAME + run machine active $NAME [ "$status" -eq 1 ] } diff --git a/test/vars.bash b/test/vars.bash index 69a8dc3b31..fafd8ead6e 100644 --- a/test/vars.bash +++ b/test/vars.bash @@ -8,3 +8,7 @@ if [ "$ARCH" = "x86_64" ]; then else ARCH="386" fi + +function machine() { + ./docker-machine_$PLATFORM-$ARCH $@ +}