Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 27 additions & 23 deletions tests/add.bats
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ load helpers
createrandom ${TESTDIR}/randomfile
createrandom ${TESTDIR}/other-randomfile

cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json scratch)
root=$(buildah mount $cid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah mount $cid
root=$output
mkdir $root/subdir $root/other-subdir
# Copy a file to the working directory
run_buildah config --workingdir=/ $cid
Expand All @@ -37,8 +39,10 @@ load helpers
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image
run_buildah rm $cid

newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json new-image)
newroot=$(buildah mount $newcid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json new-image
newcid=$output
run_buildah mount $newcid
newroot=$output
test -s $newroot/randomfile
cmp ${TESTDIR}/randomfile $newroot/randomfile
test -s $newroot/subdir/randomfile
Expand All @@ -57,8 +61,9 @@ load helpers
createrandom ${TESTDIR}/randomfile
createrandom ${TESTDIR}/other-randomfile

cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json scratch)
root=$(buildah mount $cid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output

dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random1
dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random2
tar -c -C ${TESTDIR} -f ${TESTDIR}/tarball1.tar random1 random2
Expand All @@ -80,12 +85,13 @@ load helpers
run_buildah add $cid ${TESTDIR}/tarball2.tar.gz
run_buildah add $cid ${TESTDIR}/tarball3.tar.bz2
run_buildah add $cid ${TESTDIR}/tarball4.tar.bz2
run_buildah unmount $cid
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image
run_buildah rm $cid

newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json new-image)
newroot=$(buildah mount $newcid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json new-image
newcid=$output
run_buildah mount $newcid
newroot=$output
test -s $newroot/random1
cmp ${TESTDIR}/random1 $newroot/random1
test -s $newroot/random2
Expand All @@ -102,64 +108,62 @@ load helpers
cmp ${TESTDIR}/tarball4/tarball4.random1 $newroot/tarball4/tarball4.random1
test -s $newroot/tarball4/tarball4.random2
cmp ${TESTDIR}/tarball4/tarball4.random2 $newroot/tarball4/tarball4.random2
run_buildah rm $newcid
}

@test "add single file creates absolute path with correct permissions" {
imgName=ubuntu-image
createrandom ${TESTDIR}/distutils.cfg
permission=$(stat -c "%a" ${TESTDIR}/distutils.cfg)

cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json ubuntu)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json ubuntu
cid=$output
run_buildah add $cid ${TESTDIR}/distutils.cfg /usr/lib/python3.7/distutils
run_buildah run $cid stat -c "%a" /usr/lib/python3.7/distutils
root=$(buildah mount $cid)
expect_output $permission
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:${imgName}
run_buildah rm $cid

newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json ${imgName})
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json ${imgName}
newcid=$output
run_buildah run $newcid stat -c "%a" /usr/lib/python3.7/distutils
expect_output $permission
run_buildah rm $newcid
}

@test "add single file creates relative path with correct permissions" {
imgName=ubuntu-image
createrandom ${TESTDIR}/distutils.cfg
permission=$(stat -c "%a" ${TESTDIR}/distutils.cfg)

cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json ubuntu)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json ubuntu
cid=$output
run_buildah add $cid ${TESTDIR}/distutils.cfg lib/custom
run_buildah run $cid stat -c "%a" lib/custom
root=$(buildah mount $cid)
expect_output $permission
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:${imgName}
run_buildah rm $cid

newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json ${imgName})
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json ${imgName}
newcid=$output
run_buildah run $newcid stat -c "%a" lib/custom
expect_output $permission
run_buildah rm $newcid
}

@test "add with chown" {
createrandom ${TESTDIR}/randomfile
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json busybox)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json busybox
cid=$output
run_buildah add --chown bin:bin $cid ${TESTDIR}/randomfile /tmp/random
run_buildah run $cid ls -l /tmp/random

expect_output --substring bin.*bin
buildah rm $cid
}

@test "add url" {
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json busybox)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json busybox
cid=$output
run_buildah add $cid https://github.com/containers/buildah/raw/master/README.md
run_buildah run $cid ls /README.md

run_buildah add $cid https://github.com/containers/buildah/raw/master/README.md /home
run_buildah run $cid ls /home/README.md

buildah rm $cid
}
19 changes: 7 additions & 12 deletions tests/authenticate.bats
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,19 @@ load helpers
run_buildah from --name "my-alpine" --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds testuser:testpassword localhost:5000/my-alpine

# Create Dockerfile for bud tests
FILE=./Dockerfile
/bin/cat <<EOM >$FILE
mkdir -p ${TESTDIR}/dockerdir
DOCKERFILE=${TESTDIR}/dockerdir/Dockerfile
/bin/cat <<EOM >$DOCKERFILE
FROM localhost:5000/my-alpine
EOM
chmod +x $FILE

# Remove containers and images before bud tests
buildah rm --all
buildah rmi -f --all
run_buildah rm --all
run_buildah rmi -f --all

# bud test bad password should fail
run_buildah 1 bud -f ./Dockerfile --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds=testuser:badpassword
run_buildah 1 bud -f $DOCKERFILE --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds=testuser:badpassword

# bud test this should work
run_buildah bud -f ./Dockerfile --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds=testuser:testpassword .

# Clean up
rm -f ./Dockerfile
buildah rm -a
buildah rmi -f --all
run_buildah bud -f $DOCKERFILE --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds=testuser:testpassword .
}
72 changes: 47 additions & 25 deletions tests/basic.bats
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,29 @@
load helpers

@test "from" {
cid=$(buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json alpine)
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
cid=$output
run_buildah rm $cid
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json scratch)
run_buildah from --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah rm $cid
cid=$(buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json --name i-love-naming-things alpine)
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json --name i-love-naming-things alpine
cid=$output
run_buildah rm i-love-naming-things
}

@test "from-defaultpull" {
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json alpine)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json alpine
cid=$output
run_buildah rm $cid
}

@test "from-scratch" {
cid=$(buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json scratch)
run_buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah rm $cid
cid=$(buildah from --pull=true --signature-policy ${TESTSDIR}/policy.json scratch)
run_buildah from --pull=true --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah rm $cid
}

Expand All @@ -28,18 +34,23 @@ load helpers
}

@test "mount" {
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json scratch)
root=$(buildah mount $cid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah mount $cid
root=$output
run_buildah unmount $cid
root=$(buildah mount $cid)
run_buildah mount $cid
root=$output
touch $root/foobar
run_buildah unmount $cid
run_buildah rm $cid
}

@test "by-name" {
cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json --name scratch-working-image-for-test scratch)
root=$(buildah mount scratch-working-image-for-test)
run_buildah from --signature-policy ${TESTSDIR}/policy.json --name scratch-working-image-for-test scratch
cid=$output
run_buildah mount scratch-working-image-for-test
root=$output
run_buildah unmount scratch-working-image-for-test
run_buildah rm scratch-working-image-for-test
}
Expand All @@ -48,17 +59,21 @@ load helpers
createrandom ${TESTDIR}/randomfile
createrandom ${TESTDIR}/other-randomfile

cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json scratch)
root=$(buildah mount $cid)
run_buildah from --signature-policy ${TESTSDIR}/policy.json scratch
cid=$output
run_buildah mount $cid
root=$output
cp ${TESTDIR}/randomfile $root/randomfile
run_buildah unmount $cid
run_buildah commit --iidfile output.iid --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image
iid=$(cat output.iid)
run_buildah rmi $iid
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image
run_buildah rm $cid
newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json new-image)
newroot=$(buildah mount $newcid)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json new-image
newcid=$output
run_buildah mount $newcid
newroot=$output
test -s $newroot/randomfile
cmp ${TESTDIR}/randomfile $newroot/randomfile
cp ${TESTDIR}/other-randomfile $newroot/other-randomfile
Expand All @@ -71,40 +86,47 @@ load helpers
run_buildah unmount $newcid
run_buildah rm $newcid

othernewcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json other-new-image)
othernewroot=$(buildah mount $othernewcid)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json other-new-image
othernewcid=$output
run_buildah mount $othernewcid
othernewroot=$output
test -s $othernewroot/randomfile
cmp ${TESTDIR}/randomfile $othernewroot/randomfile
test -s $othernewroot/other-randomfile
cmp ${TESTDIR}/other-randomfile $othernewroot/other-randomfile
run_buildah rm $othernewcid

anothernewcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json another-new-image)
anothernewroot=$(buildah mount $anothernewcid)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json another-new-image
anothernewcid=$output
run_buildah mount $anothernewcid
anothernewroot=$output
test -s $anothernewroot/randomfile
cmp ${TESTDIR}/randomfile $anothernewroot/randomfile
test -s $anothernewroot/other-randomfile
cmp ${TESTDIR}/other-randomfile $anothernewroot/other-randomfile
run_buildah rm $anothernewcid

yetanothernewcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json yet-another-new-image)
yetanothernewroot=$(buildah mount $yetanothernewcid)
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json yet-another-new-image
yetanothernewcid=$output
run_buildah mount $yetanothernewcid
yetanothernewroot=$output
test -s $yetanothernewroot/randomfile
cmp ${TESTDIR}/randomfile $yetanothernewroot/randomfile
test -s $yetanothernewroot/other-randomfile
cmp ${TESTDIR}/other-randomfile $yetanothernewroot/other-randomfile
run_buildah delete $yetanothernewcid

newcid=$(buildah from --signature-policy ${TESTSDIR}/policy.json new-image)
buildah commit --rm --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:remove-container-image
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json new-image
newcid=$output
run_buildah commit --rm --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:remove-container-image
run_buildah 1 mount $newcid

run_buildah rmi remove-container-image
run_buildah rmi containers-storage:other-new-image
run_buildah rmi another-new-image
run_buildah --log-level=error images -q
run_buildah images -q
[ "$output" != "" ]
run_buildah rmi -a
run_buildah --log-level=error images -q
run_buildah images -q
expect_output ""
}
Loading