vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / docker-tools-nix-shell.nix
blobc2ae2124e0a187a940be9cd386f6cae38ccd8a24
1 # nix-build -A nixosTests.docker-tools-nix-shell
2 { config, lib, ... }:
3 let
4   inherit (config.node.pkgs.dockerTools) examples;
5 in
7   name = "docker-tools-nix-shell";
8   meta = with lib.maintainers; {
9     maintainers = [
10       infinisil
11       roberth
12     ];
13   };
15   nodes = {
16     docker =
17       { ... }:
18       {
19         virtualisation = {
20           diskSize = 3072;
21           docker.enable = true;
22         };
23       };
24   };
26   testScript = ''
27     docker.wait_for_unit("sockets.target")
29     with subtest("buildImageWithNixDB: Has a nix database"):
30         docker.succeed(
31             "docker load --input='${examples.nix}'",
32             "docker run --rm ${examples.nix.imageName} nix-store -q --references /bin/bash"
33         )
35     with subtest("buildNixShellImage: Can build a basic derivation"):
36         docker.succeed(
37             "${examples.nix-shell-basic} | docker load",
38             "docker run --rm nix-shell-basic bash -c 'buildDerivation && $out/bin/hello' | grep '^Hello, world!$'"
39         )
41     with subtest("buildNixShellImage: Runs the shell hook"):
42         docker.succeed(
43             "${examples.nix-shell-hook} | docker load",
44             "docker run --rm -it nix-shell-hook | grep 'This is the shell hook!'"
45         )
47     with subtest("buildNixShellImage: Sources stdenv, making build inputs available"):
48         docker.succeed(
49             "${examples.nix-shell-inputs} | docker load",
50             "docker run --rm -it nix-shell-inputs | grep 'Hello, world!'"
51         )
53     with subtest("buildNixShellImage: passAsFile works"):
54         docker.succeed(
55             "${examples.nix-shell-pass-as-file} | docker load",
56             "docker run --rm -it nix-shell-pass-as-file | grep 'this is a string'"
57         )
59     with subtest("buildNixShellImage: run argument works"):
60         docker.succeed(
61             "${examples.nix-shell-run} | docker load",
62             "docker run --rm -it nix-shell-run | grep 'This shell is not interactive'"
63         )
65     with subtest("buildNixShellImage: command argument works"):
66         docker.succeed(
67             "${examples.nix-shell-command} | docker load",
68             "docker run --rm -it nix-shell-command | grep 'This shell is interactive'"
69         )
71     with subtest("buildNixShellImage: home directory is writable by default"):
72         docker.succeed(
73             "${examples.nix-shell-writable-home} | docker load",
74             "docker run --rm -it nix-shell-writable-home"
75         )
77     with subtest("buildNixShellImage: home directory can be made non-existent"):
78         docker.succeed(
79             "${examples.nix-shell-nonexistent-home} | docker load",
80             "docker run --rm -it nix-shell-nonexistent-home"
81         )
83     with subtest("buildNixShellImage: can build derivations"):
84         docker.succeed(
85             "${examples.nix-shell-build-derivation} | docker load",
86             "docker run --rm -it nix-shell-build-derivation"
87         )
89     with subtest("streamLayeredImage: with nix db"):
90         docker.succeed(
91             "${examples.nix-layered} | docker load",
92             "docker run --rm ${examples.nix-layered.imageName} nix-store -q --references /bin/bash"
93         )
94   '';