diff options
author | Pascal Bach <pascal.bach@nextrem.ch> | 2019-01-23 10:19:23 +0100 |
---|---|---|
committer | Pascal Bach <pascal.bach@nextrem.ch> | 2019-03-15 15:15:32 +0100 |
commit | a8307b9f3972c97a48e6a451eefec346307bf3ab (patch) | |
tree | a882a809a07e66043c26cbe9b65d701c7d2b0f4d /nixos/tests/overlayfs.nix | |
parent | dc80bf520e4e933b54cc5911871ee472e02ed1da (diff) | |
download | nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar.gz nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar.bz2 nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar.lz nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar.xz nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.tar.zst nixpkgs-a8307b9f3972c97a48e6a451eefec346307bf3ab.zip |
nixos/overlayfs: add test
Diffstat (limited to 'nixos/tests/overlayfs.nix')
-rw-r--r-- | nixos/tests/overlayfs.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/nixos/tests/overlayfs.nix b/nixos/tests/overlayfs.nix new file mode 100644 index 00000000000..99bb6b0f553 --- /dev/null +++ b/nixos/tests/overlayfs.nix @@ -0,0 +1,57 @@ +import ./make-test.nix ({ pkgs, ... }: { + name = "overlayfs"; + meta.maintainers = with pkgs.stdenv.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 && exit 1", + "[[ \"\$(cat /tmp/mnt/merged/append.txt)\" == \"Append\ned\" ]]", + + "umount /tmp/mnt/merged", + "umount /tmp/mnt", + "udevadm settle" + ); + ''; +}) |