1import ./make-test-python.nix ({ pkgs, ... }: rec {
2 name = "all-terminfo";
3 meta = with pkgs.lib.maintainers; {
4 maintainers = [ jkarlson ];
5 };
6
7 nodes.machine = { pkgs, config, lib, ... }:
8 let
9 infoFilter = name: drv:
10 let
11 o = builtins.tryEval drv;
12 in
13 o.success && lib.isDerivation o.value && o.value ? outputs && builtins.elem "terminfo" o.value.outputs;
14 terminfos = lib.filterAttrs infoFilter pkgs;
15 excludedTerminfos = lib.filterAttrs (_: drv: !(builtins.elem drv.terminfo config.environment.systemPackages)) terminfos;
16 includedOuts = lib.filterAttrs (_: drv: builtins.elem drv.out config.environment.systemPackages) terminfos;
17 in
18 {
19 environment = {
20 enableAllTerminfo = true;
21 etc."terminfo-missing".text = builtins.concatStringsSep "\n" (builtins.attrNames excludedTerminfos);
22 etc."terminfo-extra-outs".text = builtins.concatStringsSep "\n" (builtins.attrNames includedOuts);
23 };
24 };
25
26 testScript =
27 ''
28 machine.fail("grep . /etc/terminfo-missing >&2")
29 machine.fail("grep . /etc/terminfo-extra-outs >&2")
30 '';
31})