diff --git a/modules/testing/test-instrumentation.nix b/modules/testing/test-instrumentation.nix index fb807060df39..4b1421979329 100644 --- a/modules/testing/test-instrumentation.nix +++ b/modules/testing/test-instrumentation.nix @@ -5,6 +5,19 @@ with pkgs.lib; +let + + # Urgh, `socat' sets the SIGCHLD to ignore. This wreaks havoc with + # some programs. + rootShell = pkgs.writeScript "shell.pl" + '' + #! ${pkgs.perl}/bin/perl + $SIG{CHLD} = 'DEFAULT'; + exec "/bin/sh"; + ''; + +in + { config = { @@ -20,12 +33,13 @@ with pkgs.lib; script = '' + export USER=root export HOME=/root export DISPLAY=:0.0 export GCOV_PREFIX=/tmp/coverage-data - source /etc/bashrc + source /etc/profile cd /tmp - exec ${pkgs.socat}/bin/socat tcp-listen:514,fork exec:/bin/sh 2> /dev/ttyS0 + exec ${pkgs.socat}/bin/socat tcp-listen:514,fork exec:${rootShell} 2> /dev/ttyS0 ''; };