python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / tests / containers-reloadable.nix
blob876e62c1da9ea51535087feccf9cf7d5af22706b
1 import ./make-test-python.nix ({ pkgs, lib, ... }:
2 let
3   client_base = {
4     containers.test1 = {
5       autoStart = true;
6       config = {
7         environment.etc.check.text = "client_base";
8       };
9     };
11     # prevent make-test-python.nix to change IP
12     networking.interfaces = {
13       eth1.ipv4.addresses = lib.mkOverride 0 [ ];
14     };
15   };
16 in {
17   name = "containers-reloadable";
18   meta = {
19     maintainers = with lib.maintainers; [ danbst ];
20   };
22   nodes = {
23     client = { ... }: {
24       imports = [ client_base ];
25     };
27     client_c1 = { lib, ... }: {
28       imports = [ client_base ];
30       containers.test1.config = {
31         environment.etc.check.text = lib.mkForce "client_c1";
32         services.httpd.enable = true;
33         services.httpd.adminAddr = "nixos@example.com";
34       };
35     };
36     client_c2 = { lib, ... }: {
37       imports = [ client_base ];
39       containers.test1.config = {
40         environment.etc.check.text = lib.mkForce "client_c2";
41         services.nginx.enable = true;
42       };
43     };
44   };
46   testScript = {nodes, ...}: let
47     c1System = nodes.client_c1.config.system.build.toplevel;
48     c2System = nodes.client_c2.config.system.build.toplevel;
49   in ''
50     client.start()
51     client.wait_for_unit("default.target")
53     assert "client_base" in client.succeed("nixos-container run test1 cat /etc/check")
55     with subtest("httpd is available after activating config1"):
56         client.succeed(
57             "${c1System}/bin/switch-to-configuration test >&2",
58             "[[ $(nixos-container run test1 cat /etc/check) == client_c1 ]] >&2",
59             "systemctl status httpd -M test1 >&2",
60         )
62     with subtest("httpd is not available any longer after switching to config2"):
63         client.succeed(
64             "${c2System}/bin/switch-to-configuration test >&2",
65             "[[ $(nixos-container run test1 cat /etc/check) == client_c2 ]] >&2",
66             "systemctl status nginx -M test1 >&2",
67         )
68         client.fail("systemctl status httpd -M test1 >&2")
69   '';