at master 1.8 kB view raw
1{ pkgs, ... }: 2{ 3 name = "overlayfs"; 4 meta.maintainers = with pkgs.lib.maintainers; [ bachp ]; 5 6 nodes.machine = 7 { pkgs, ... }: 8 { 9 virtualisation.emptyDiskImages = [ 512 ]; 10 networking.hostId = "deadbeef"; 11 environment.systemPackages = with pkgs; [ parted ]; 12 }; 13 14 testScript = '' 15 machine.succeed("ls /dev") 16 17 machine.succeed("mkdir -p /tmp/mnt") 18 19 # Test ext4 + overlayfs 20 machine.succeed( 21 'mkfs.ext4 -F -L overlay-ext4 /dev/vdb', 22 'mount -t ext4 /dev/vdb /tmp/mnt', 23 'mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged', 24 # Setup some existing files 25 'echo Replace > /tmp/mnt/lower/replace.txt', 26 'echo Append > /tmp/mnt/lower/append.txt', 27 'echo Overwrite > /tmp/mnt/lower/overwrite.txt', 28 'mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged', 29 # Test new 30 'echo New > /tmp/mnt/merged/new.txt', 31 '[[ "$(cat /tmp/mnt/merged/new.txt)" == New ]]', 32 # Test replace 33 '[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replace ]]', 34 'echo Replaced > /tmp/mnt/merged/replace-tmp.txt', 35 'mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt', 36 '[[ "$(cat /tmp/mnt/merged/replace.txt)" == Replaced ]]', 37 # Overwrite 38 '[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwrite ]]', 39 'echo Overwritten > /tmp/mnt/merged/overwrite.txt', 40 '[[ "$(cat /tmp/mnt/merged/overwrite.txt)" == Overwritten ]]', 41 # Test append 42 '[[ "$(cat /tmp/mnt/merged/append.txt)" == Append ]]', 43 'echo ed >> /tmp/mnt/merged/append.txt', 44 '[[ "$(cat /tmp/mnt/merged/append.txt)" == "Append\ned" ]]', 45 'umount /tmp/mnt/merged', 46 'umount /tmp/mnt', 47 'udevadm settle', 48 ) 49 ''; 50}