liminix/tests/pppoe/test.nix

38 lines
1 KiB
Nix
Raw Normal View History

{
liminix
, nixpkgs
}:
let img = (import liminix {
device = import "${liminix}/devices/qemu/";
liminix-config = ./configuration.nix;
}).outputs.default;
2023-02-08 19:10:11 +01:00
pkgs = import <nixpkgs> { overlays = [(import ../../overlay.nix)]; };
2023-09-20 19:33:08 +02:00
inherit (pkgs.pkgsBuildBuild) routeros run-liminix-vm;
in pkgs.runCommand "check" {
nativeBuildInputs = with pkgs; [
python3Packages.scapy
expect
jq
socat
routeros.routeros
2023-09-20 19:33:08 +02:00
run-liminix-vm
] ;
} ''
serverstatedir=$(mktemp -d -t routeros-XXXXXX)
# python scapy drags in matplotlib which doesn't enjoy running in
# a sandbox with no $HOME, hence this environment variable
export MPLCONFIGDIR=$(mktemp -d -t routeros-XXXXXX)
2023-05-08 00:01:24 +02:00
. ${../test-helpers.sh}
routeros $serverstatedir
mkdir vm
2023-09-20 19:33:08 +02:00
run-liminix-vm --background ./vm ${img}/vmlinux ${img}/rootfs
expect ${./getaddress.expect}
set -o pipefail
response=$(python ${./test-dhcp-service.py})
echo "$response" | jq -e 'select((.router == "192.168.19.1") and (.server_id=="192.168.19.1"))'
echo $response > $out
''