Merge pull request #29040 from NeQuissimus/tests_sys

More basic system tests

authored by

Tim Steinbach and committed by
GitHub
7faad2dc a54b2e3b

+90
+3
nixos/release-combined.nix
··· 84 84 nixos.tests.docker.x86_64-linux 85 85 nixos.tests.docker-edge.x86_64-linux 86 86 (all nixos.tests.ecryptfs) 87 + (all nixos.tests.env) 87 88 (all nixos.tests.ipv6) 88 89 (all nixos.tests.i3wm) 89 90 (all nixos.tests.keymap.azerty) ··· 95 96 (all nixos.tests.plasma5) 96 97 (all nixos.tests.kernel-latest) 97 98 (all nixos.tests.kernel-lts) 99 + (all nixos.tests.kernel-params) 98 100 #(all nixos.tests.lightdm) 99 101 (all nixos.tests.login) 100 102 (all nixos.tests.misc) ··· 117 119 (all nixos.tests.sddm.default) 118 120 (all nixos.tests.simple) 119 121 (all nixos.tests.slim) 122 + (all nixos.tests.sysctl) 120 123 (all nixos.tests.udisks2) 121 124 (all nixos.tests.xfce) 122 125 (all nixos.tests.xmonad)
+3
nixos/release.nix
··· 241 241 tests.ec2-nixops = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-nixops; 242 242 tests.ec2-config = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-config; 243 243 tests.elk = callTest tests/elk.nix {}; 244 + tests.env = callTest tests/env.nix {}; 244 245 tests.ferm = callTest tests/ferm.nix {}; 245 246 tests.firefox = callTest tests/firefox.nix {}; 246 247 tests.firewall = callTest tests/firewall.nix {}; ··· 265 266 tests.kernel-copperhead = tests/kernel-copperhead.nix {}; 266 267 tests.kernel-latest = tests/kernel-latest.nix {}; 267 268 tests.kernel-lts = tests/kernel-lts.nix {}; 269 + tests.kernel-params = tests/kernel-params.nix {}; 268 270 tests.keystone = callTest tests/keystone.nix {}; 269 271 tests.kubernetes = hydraJob (import tests/kubernetes.nix { system = "x86_64-linux"; }); 270 272 tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; }; ··· 310 312 tests.slim = callTest tests/slim.nix {}; 311 313 tests.smokeping = callTest tests/smokeping.nix {}; 312 314 tests.snapper = callTest tests/snapper.nix {}; 315 + tests.sysctl = callTest tests/sysctl.nix {}; 313 316 tests.taskserver = callTest tests/taskserver.nix {}; 314 317 tests.tomcat = callTest tests/tomcat.nix {}; 315 318 tests.udisks2 = callTest tests/udisks2.nix {};
+35
nixos/tests/env.nix
··· 1 + import ./make-test.nix ({ pkgs, ...} : { 2 + name = "environment"; 3 + meta = with pkgs.stdenv.lib.maintainers; { 4 + maintainers = [ nequissimus ]; 5 + }; 6 + 7 + machine = { config, lib, pkgs, ... }: 8 + { 9 + boot.kernelPackages = pkgs.linuxPackages; 10 + environment.etc."plainFile".text = '' 11 + Hello World 12 + ''; 13 + environment.etc."folder/with/file".text = '' 14 + Foo Bar! 15 + ''; 16 + 17 + environment.sessionVariables = { 18 + TERMINFO_DIRS = "/run/current-system/sw/share/terminfo"; 19 + NIXCON = "awesome"; 20 + }; 21 + }; 22 + 23 + testScript = 24 + '' 25 + $machine->succeed('[ -L "/etc/plainFile" ]'); 26 + $machine->succeed('cat "/etc/plainFile" | grep "Hello World"'); 27 + $machine->succeed('[ -d "/etc/folder" ]'); 28 + $machine->succeed('[ -d "/etc/folder/with" ]'); 29 + $machine->succeed('[ -L "/etc/folder/with/file" ]'); 30 + $machine->succeed('cat "/etc/plainFile" | grep "Hello World"'); 31 + 32 + $machine->succeed('echo ''${TERMINFO_DIRS} | grep "/run/current-system/sw/share/terminfo"'); 33 + $machine->succeed('echo ''${NIXCON} | grep "awesome"'); 34 + ''; 35 + })
+24
nixos/tests/kernel-params.nix
··· 1 + import ./make-test.nix ({ pkgs, ...} : { 2 + name = "kernel-params"; 3 + meta = with pkgs.stdenv.lib.maintainers; { 4 + maintainers = [ nequissimus ]; 5 + }; 6 + 7 + machine = { config, lib, pkgs, ... }: 8 + { 9 + boot.kernelPackages = pkgs.linuxPackages; 10 + boot.kernelParams = [ 11 + "nohibernate" 12 + "page_poison=1" 13 + "vsyscall=none" 14 + ]; 15 + }; 16 + 17 + testScript = 18 + '' 19 + $machine->fail("cat /proc/cmdline | grep page_poison=0"); 20 + $machine->succeed("cat /proc/cmdline | grep nohibernate"); 21 + $machine->succeed("cat /proc/cmdline | grep page_poison=1"); 22 + $machine->succeed("cat /proc/cmdline | grep vsyscall=none"); 23 + ''; 24 + })
+25
nixos/tests/sysctl.nix
··· 1 + import ./make-test.nix ({ pkgs, ...} : { 2 + name = "sysctl"; 3 + meta = with pkgs.stdenv.lib.maintainers; { 4 + maintainers = [ nequissimus ]; 5 + }; 6 + 7 + machine = { config, lib, pkgs, ... }: 8 + { 9 + boot.kernelPackages = pkgs.linuxPackages; 10 + boot.kernel.sysctl = { 11 + "kernel.dmesg_restrict" = true; # Restrict dmesg access 12 + "net.core.bpf_jit_enable" = false; # Turn off bpf JIT 13 + "user.max_user_namespaces" = 0; # Disable user namespaces 14 + "vm.swappiness" = 2; # Low swap usage 15 + }; 16 + }; 17 + 18 + testScript = 19 + '' 20 + $machine->succeed("sysctl kernel.dmesg_restrict | grep 'kernel.dmesg_restrict = 1'"); 21 + $machine->succeed("sysctl net.core.bpf_jit_enable | grep 'net.core.bpf_jit_enable = 0'"); 22 + $machine->succeed("sysctl user.max_user_namespaces | grep 'user.max_user_namespaces = 0'"); 23 + $machine->succeed("sysctl vm.swappiness | grep 'vm.swappiness = 2'"); 24 + ''; 25 + })