nixos/tests/overlayfs: Use individual commands

This reverts the test to be similar to its original Perl version, where
the test steps were performed as individual commands instead of what we
have now, where commands are sent to the machine as one giant string.

While this change doesn't seem like it would make a big difference, it
makes a huge difference if the test fails because you then get an error
about which command has failed exactly instead of just knowing that
"something in there" has failed.

I also switched 2 spaces indentation, because it is more in line with
Nix coding conventions.

Signed-off-by: aszlig <aszlig@nix.build>
This commit is contained in:
aszlig 2021-06-16 03:46:47 +02:00
parent 9ecde9d165
commit c55e00d8ff
No known key found for this signature in database
GPG key ID: 684089CE67EBB691

View file

@ -15,36 +15,33 @@ import ./make-test-python.nix ({ pkgs, ... }: {
# Test ext4 + overlayfs
machine.succeed(
"""
mkfs.ext4 -F -L overlay-ext4 /dev/vdb
mount -t ext4 /dev/vdb /tmp/mnt
mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged
# Setup some existing files
echo 'Replace' > /tmp/mnt/lower/replace.txt
echo 'Append' > /tmp/mnt/lower/append.txt
echo 'Overwrite' > /tmp/mnt/lower/overwrite.txt
mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged
# Test new
echo 'New' > /tmp/mnt/merged/new.txt
[[ "$(cat /tmp/mnt/merged/new.txt)" == "New" ]]
# Test replace
[[ "$(cat /tmp/mnt/merged/replace.txt)" == "Replace" ]]
echo 'Replaced' > /tmp/mnt/merged/replace-tmp.txt
mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt
[[ "$(cat /tmp/mnt/merged/replace.txt)" == "Replaced" ]]
# Overwrite
[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == "Overwrite" ]]
echo 'Overwritten' > /tmp/mnt/merged/overwrite.txt
[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == "Overwritten" ]]
# Test append
[[ "$(cat /tmp/mnt/merged/append.txt)" == "Append" ]]
echo 'ed' >> /tmp/mnt/merged/append.txt
#"cat /tmp/mnt/merged/append.txt && exit 1
[[ "$(cat /tmp/mnt/merged/append.txt)" == "Append\ned" ]]
umount /tmp/mnt/merged
umount /tmp/mnt
udevadm settle
"""
'mkfs.ext4 -F -L overlay-ext4 /dev/vdb',
'mount -t ext4 /dev/vdb /tmp/mnt',
'mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged',
# Setup some existing files
'echo Replace > /tmp/mnt/lower/replace.txt',
'echo Append > /tmp/mnt/lower/append.txt',
'echo Overwrite > /tmp/mnt/lower/overwrite.txt',
'mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged',
# Test new
'echo New > /tmp/mnt/merged/new.txt',
'[[ "$(cat /tmp/mnt/merged/new.txt)" == New ]]',
# Test replace
'[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replace ]]',
'echo Replaced > /tmp/mnt/merged/replace-tmp.txt',
'mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt',
'[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replaced ]]',
# Overwrite
'[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwrite ]]',
'echo Overwritten > /tmp/mnt/merged/overwrite.txt',
'[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwritten ]]',
# Test append
'[[ "$(cat /tmp/mnt/merged/append.txt)" == Append ]]',
'echo ed >> /tmp/mnt/merged/append.txt',
'[[ "$(cat /tmp/mnt/merged/append.txt)" == "Append\ned" ]]',
'umount /tmp/mnt/merged',
'umount /tmp/mnt',
'udevadm settle',
)
'';
})