mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-30 01:23:03 +00:00
c55e00d8ff
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>
48 lines
1.8 KiB
Nix
48 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',
|
|
)
|
|
'';
|
|
})
|