1{ system ? builtins.currentSystem
2, config ? {}
3, networkExpr
4}:
5
6let
7 nodes = builtins.mapAttrs (vm: module: {
8 _file = "${networkExpr}@node-${vm}";
9 imports = [ module ];
10 }) (import networkExpr);
11
12 pkgs = import ../../../../.. { inherit system config; };
13
14 testing = import ../../../../lib/testing-python.nix {
15 inherit system pkgs;
16 };
17
18 interactiveDriver = (testing.makeTest { inherit nodes; name = "network"; testScript = "start_all(); join_all();"; }).test.driverInteractive;
19in
20
21
22pkgs.runCommand "nixos-build-vms" { nativeBuildInputs = [ pkgs.makeWrapper ]; } ''
23 mkdir -p $out/bin
24 ln -s ${interactiveDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
25 ln -s ${interactiveDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
26 wrapProgram $out/bin/nixos-test-driver \
27 --add-flags "--interactive"
28 wrapProgram $out/bin/nixos-run-vms \
29 --set testScript "${pkgs.writeText "start-all" "start_all(); join_all();"}" \
30 --add-flags "--no-interactive"
31''