|
@@ -0,0 +1,104 @@
|
|
|
|
+#!/usr/bin/env bats
|
|
|
|
+
|
|
|
|
+load helpers
|
|
|
|
+
|
|
|
|
+export DRIVER=virtualbox
|
|
|
|
+export NAME="bats-$DRIVER-daemon-configs"
|
|
|
|
+export MACHINE_STORAGE_PATH=/tmp/machine-bats-daemon-test-$DRIVER
|
|
|
|
+# Default memsize is 1024MB and disksize is 20000MB
|
|
|
|
+# These values are defined in drivers/virtualbox/virtualbox.go
|
|
|
|
+export DEFAULT_MEMSIZE=1024
|
|
|
|
+export DEFAULT_DISKSIZE=20000
|
|
|
|
+export CUSTOM_MEMSIZE=1536
|
|
|
|
+export CUSTOM_DISKSIZE=10000
|
|
|
|
+export CUSTOM_CPUCOUNT=1
|
|
|
|
+export BAD_URL="http://dev.null:9111/bad.iso"
|
|
|
|
+
|
|
|
|
+function setup() {
|
|
|
|
+ # add sleep because vbox; ugh
|
|
|
|
+ sleep 1
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+findDiskSize() {
|
|
|
|
+ # SATA-0-0 is usually the boot2disk.iso image
|
|
|
|
+ # We assume that SATA 1-0 is root disk VMDK and grab this UUID
|
|
|
|
+ # e.g. "SATA-ImageUUID-1-0"="fb5f33a7-e4e3-4cb9-877c-f9415ae2adea"
|
|
|
|
+ # TODO(slashk): does this work on Windows ?
|
|
|
|
+ run bash -c "VBoxManage showvminfo --machinereadable $NAME | grep SATA-ImageUUID-1-0 | cut -d'=' -f2"
|
|
|
|
+ run bash -c "VBoxManage showhdinfo $output | grep "Capacity:" | awk -F' ' '{ print $2 }'"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+findMemorySize() {
|
|
|
|
+ run bash -c "VBoxManage showvminfo --machinereadable $NAME | grep memory= | cut -d'=' -f2"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+findCPUCount() {
|
|
|
|
+ run bash -c "VBoxManage showvminfo --machinereadable $NAME | grep cpus= | cut -d'=' -f2"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+buildMachineWithOldIsoCheckUpgrade() {
|
|
|
|
+ run wget https://github.com/boot2docker/boot2docker/releases/download/v1.4.1/boot2docker.iso -O $MACHINE_STORAGE_PATH/cache/boot2docker.iso
|
|
|
|
+ run machine create -d virtualbox $NAME
|
|
|
|
+ run machine upgrade $NAME
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: machine should not exist" {
|
|
|
|
+ run machine active $NAME
|
|
|
|
+ [ "$status" -eq 1 ]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: VM should not exist" {
|
|
|
|
+ run VBoxManage showvminfo $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: check default machine memory size" {
|
|
|
|
+ findMemorySize
|
|
|
|
+ [[ ${output} == "${DEFAULT_MEMSIZE}" ]]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: check default machine disksize" {
|
|
|
|
+ findDiskSize
|
|
|
|
+ [[ ${output} == *"$DEFAULT_DISKSIZE"* ]]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: test bridge-ip" {
|
|
|
|
+ run machine ssh $NAME sudo /etc/init.d/docker stop
|
|
|
|
+ run machine ssh $NAME sudo ifconfig docker0 down
|
|
|
|
+ run machine ssh $NAME sudo ip link delete docker0
|
|
|
|
+ BIP='--bip=172.168.45.1/24'
|
|
|
|
+ set_extra_config $BIP
|
|
|
|
+ cat ${TMP_EXTRA_ARGS_FILE} | machine ssh $NAME sudo tee /var/lib/boot2docker/profile
|
|
|
|
+ cat ${DAEMON_CFG_FILE} | machine ssh $NAME "sudo tee -a /var/lib/boot2docker/profile"
|
|
|
|
+ run machine ssh $NAME sudo /etc/init.d/docker start
|
|
|
|
+ run machine ssh $NAME ifconfig docker0
|
|
|
|
+ [ "$status" -eq 0 ]
|
|
|
|
+ [[ ${lines[1]} =~ "172.168.45.1" ]]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: run busybox container" {
|
|
|
|
+ run machine ssh $NAME sudo cat /var/lib/boot2docker/profile
|
|
|
|
+ run docker $(machine config $NAME) run busybox echo hello world
|
|
|
|
+ [ "$status" -eq 0 ]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@test "$DRIVER: remove machine" {
|
|
|
|
+ run machine rm -f $NAME
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# Cleanup of machine store should always be the last 'test'
|
|
|
|
+@test "$DRIVER: cleanup" {
|
|
|
|
+ run rm -rf $MACHINE_STORAGE_PATH
|
|
|
|
+ [ "$status" -eq 0 ]
|
|
|
|
+}
|
|
|
|
+
|