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