nixpkgs-suyu/nixos/tests/overlayfs.nix
aszlig c55e00d8ff
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>
2021-06-16 04:12:18 +02:00

47 lines
1.8 KiB
Nix

import ./make-test-python.nix ({ pkgs, ... }: {
name = "overlayfs";
meta.maintainers = with pkgs.lib.maintainers; [ bachp ];
machine = { pkgs, ... }: {
virtualisation.emptyDiskImages = [ 512 ];
networking.hostId = "deadbeef";
environment.systemPackages = with pkgs; [ parted ];
};
testScript = ''
machine.succeed("ls /dev")
machine.succeed("mkdir -p /tmp/mnt")
# 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)" == "Append\ned" ]]',
'umount /tmp/mnt/merged',
'umount /tmp/mnt',
'udevadm settle',
)
'';
})