37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
{
|
|
liminix
|
|
, nixpkgs
|
|
}:
|
|
let img = (import liminix {
|
|
device = import "${liminix}/devices/qemu/";
|
|
liminix-config = ./configuration.nix;
|
|
}).outputs.vmroot;
|
|
pkgs = import <nixpkgs> { overlays = [(import ../../overlay.nix)]; };
|
|
in pkgs.runCommand "check" {
|
|
nativeBuildInputs = with pkgs; [
|
|
expect
|
|
socat
|
|
e2fsprogs
|
|
util-linux # for sfdisk, fallocate
|
|
parted
|
|
] ;
|
|
} ''
|
|
mkdir vm
|
|
dd if=/dev/zero of=./vm/stick.e2fs bs=1M count=32
|
|
mkfs.ext2 -L backup-disk ./vm/stick.e2fs
|
|
dd if=/dev/zero of=./vm/stick.img bs=1M count=38
|
|
dd if=./vm/stick.e2fs of=./vm/stick.img bs=512 seek=34 conv=notrunc
|
|
parted -s ./vm/stick.img -- mklabel gpt mkpart backup-disk ext2 34s -0M
|
|
|
|
{
|
|
|
|
${img}/run.sh --background ./vm --flag -device --flag usb-ehci,id=xhci --flag -drive --flag if=none,id=usbstick,format=raw,file=$(pwd)/vm/stick.img
|
|
expect ${./script.expect} late
|
|
kill $(cat ./vm/pid)
|
|
|
|
${img}/run.sh --background ./vm --flag -device --flag usb-ehci,id=xhci --flag -drive --flag if=none,id=usbstick,format=raw,file=$(pwd)/vm/stick.img
|
|
expect ${./script.expect} early
|
|
|
|
} | tee $out
|
|
|
|
''
|