nixos/containers-bridge: Port test to python
This commit is contained in:
parent
6127bf9837
commit
4e89f75ca6
|
@ -7,7 +7,7 @@ let
|
||||||
containerIp6 = "fc00::2/7";
|
containerIp6 = "fc00::2/7";
|
||||||
in
|
in
|
||||||
|
|
||||||
import ./make-test.nix ({ pkgs, ...} : {
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
name = "containers-bridge";
|
name = "containers-bridge";
|
||||||
meta = with pkgs.stdenv.lib.maintainers; {
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
maintainers = [ aristid aszlig eelco kampfschlaefer ];
|
maintainers = [ aristid aszlig eelco kampfschlaefer ];
|
||||||
|
@ -61,43 +61,42 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||||
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript =
|
testScript = ''
|
||||||
''
|
machine.wait_for_unit("default.target")
|
||||||
$machine->waitForUnit("default.target");
|
assert "webserver" in machine.succeed("nixos-container list")
|
||||||
$machine->succeed("nixos-container list") =~ /webserver/ or die;
|
|
||||||
|
|
||||||
# Start the webserver container.
|
with subtest("Start the webserver container"):
|
||||||
$machine->succeed("nixos-container status webserver") =~ /up/ or die;
|
assert "up" in machine.succeed("nixos-container status webserver")
|
||||||
|
|
||||||
# Check if bridges exist inside containers
|
with subtest("Bridges exist inside containers"):
|
||||||
$machine->succeed("nixos-container run webserver -- ip link show eth0");
|
machine.succeed(
|
||||||
$machine->succeed("nixos-container run web-noip -- ip link show eth0");
|
"nixos-container run webserver -- ip link show eth0",
|
||||||
|
"nixos-container run web-noip -- ip link show eth0",
|
||||||
|
)
|
||||||
|
|
||||||
"${containerIp}" =~ /([^\/]+)\/([0-9+])/;
|
ip = "${containerIp}".split("/")[0]
|
||||||
my $ip = $1;
|
machine.succeed(f"ping -n -c 1 {ip}")
|
||||||
chomp $ip;
|
machine.succeed(f"curl --fail http://{ip}/ > /dev/null")
|
||||||
$machine->succeed("ping -n -c 1 $ip");
|
|
||||||
$machine->succeed("curl --fail http://$ip/ > /dev/null");
|
|
||||||
|
|
||||||
"${containerIp6}" =~ /([^\/]+)\/([0-9+])/;
|
ip6 = "${containerIp6}".split("/")[0]
|
||||||
my $ip6 = $1;
|
machine.succeed(f"ping -n -c 1 {ip6}")
|
||||||
chomp $ip6;
|
machine.succeed(f"curl --fail http://[{ip6}]/ > /dev/null")
|
||||||
$machine->succeed("ping -n -c 1 $ip6");
|
|
||||||
$machine->succeed("curl --fail http://[$ip6]/ > /dev/null");
|
|
||||||
|
|
||||||
# Check that nixos-container show-ip works in case of an ipv4 address with
|
with subtest(
|
||||||
# subnetmask in CIDR notation.
|
"nixos-container show-ip works in case of an ipv4 address "
|
||||||
my $result = $machine->succeed("nixos-container show-ip webserver");
|
+ "with subnetmask in CIDR notation."
|
||||||
chomp $result;
|
):
|
||||||
$result eq $ip or die;
|
result = machine.succeed("nixos-container show-ip webserver").rstrip()
|
||||||
|
assert result == ip
|
||||||
|
|
||||||
# Stop the container.
|
with subtest("Stop the container"):
|
||||||
$machine->succeed("nixos-container stop webserver");
|
machine.succeed("nixos-container stop webserver")
|
||||||
$machine->fail("curl --fail --connect-timeout 2 http://$ip/ > /dev/null");
|
machine.fail(
|
||||||
$machine->fail("curl --fail --connect-timeout 2 http://[$ip6]/ > /dev/null");
|
f"curl --fail --connect-timeout 2 http://{ip}/ > /dev/null",
|
||||||
|
f"curl --fail --connect-timeout 2 http://[{ip6}]/ > /dev/null",
|
||||||
|
)
|
||||||
|
|
||||||
# Destroying a declarative container should fail.
|
# Destroying a declarative container should fail.
|
||||||
$machine->fail("nixos-container destroy webserver");
|
machine.fail("nixos-container destroy webserver")
|
||||||
'';
|
'';
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue