110 lines
3.3 KiB
Bash
110 lines
3.3 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
@test "create-container" {
|
|
# Create a container based on no image.
|
|
run storage --debug=false create-container ""
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
zerothcontainer=${output%% *}
|
|
|
|
# Create an image using no layer.
|
|
run storage --debug=false create-image ""
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
image=${output%% *}
|
|
|
|
# Create a container based on that image.
|
|
run storage --debug=false create-container $image
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
thirdcontainer=${output%% *}
|
|
|
|
# Create a layer.
|
|
run storage --debug=false create-layer
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
layer=$output
|
|
|
|
# Create an image using that layer.
|
|
run storage --debug=false create-image $layer
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
image=${output%% *}
|
|
|
|
# Create a container based on that image.
|
|
run storage --debug=false create-container $image
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
firstcontainer=${output%% *}
|
|
|
|
firstwriter=$(cat ${TESTDIR}/${CONTAINERS_LOCK_ROOT}/${STORAGE_DRIVER}-containers/containers.lock)
|
|
[ "$firstwriter" != "" ]
|
|
|
|
# Check that the container can be found.
|
|
storage exists -c $firstcontainer
|
|
|
|
# Create another container based on the same image.
|
|
run storage --debug=false create-container $image
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
secondcontainer=${output%% *}
|
|
|
|
secondwriter=$(cat ${TESTDIR}/${CONTAINERS_LOCK_ROOT}/${STORAGE_DRIVER}-containers/containers.lock)
|
|
[ "$secondwriter" != "" ]
|
|
[ "$firstwriter" != "$secondwriter" ]
|
|
|
|
# Check that *that* container can be found.
|
|
storage exists -c $secondcontainer
|
|
|
|
# Check that a list of containers lists both of them.
|
|
run storage --debug=false containers
|
|
echo :"$output":
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[*]}" -eq 4 ]
|
|
[ "${lines[0]}" != "${lines[1]}" ]
|
|
[ "${lines[0]}" != "${lines[2]}" ]
|
|
[ "${lines[0]}" != "${lines[3]}" ]
|
|
[ "${lines[1]}" != "${lines[2]}" ]
|
|
[ "${lines[1]}" != "${lines[3]}" ]
|
|
[ "${lines[2]}" != "${lines[3]}" ]
|
|
[ "${lines[0]}" = "$zerothcontainer" ] || [ "${lines[0]}" = "$firstcontainer" ] || [ "${lines[0]}" = "$secondcontainer" ] || [ "${lines[0]}" = "$thirdcontainer" ]
|
|
[ "${lines[1]}" = "$zerothcontainer" ] || [ "${lines[1]}" = "$firstcontainer" ] || [ "${lines[1]}" = "$secondcontainer" ] || [ "${lines[1]}" = "$thirdcontainer" ]
|
|
[ "${lines[2]}" = "$zerothcontainer" ] || [ "${lines[2]}" = "$firstcontainer" ] || [ "${lines[2]}" = "$secondcontainer" ] || [ "${lines[2]}" = "$thirdcontainer" ]
|
|
[ "${lines[3]}" = "$zerothcontainer" ] || [ "${lines[3]}" = "$firstcontainer" ] || [ "${lines[3]}" = "$secondcontainer" ] || [ "${lines[3]}" = "$thirdcontainer" ]
|
|
}
|
|
|
|
@test "create-and-mount-volatile-container" {
|
|
# Create a container based on no image.
|
|
run storage --debug=false create-container --volatile ""
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
container=${output%% *}
|
|
|
|
run storage --debug=false mount $container
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
path=${output%% *}
|
|
|
|
echo test > $path/newfile
|
|
|
|
run storage --debug=false unmount $container
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
|
|
run storage --debug=false mount $container
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
path=${output%% *}
|
|
|
|
run cat $path/newfile
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" == "test" ]
|
|
|
|
run storage --debug=false unmount $container
|
|
[ "$status" -eq 0 ]
|
|
[ "$output" != "" ]
|
|
}
|