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