aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-12-17 21:16:55 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-12-17 21:16:55 +0900
commit7b6052a47340d706ede8cc08b331f02de832e462 (patch)
tree3cd22d8ddd1423f1516ae1c1586a50e73479ffa4
parent38653c6ab5c5632b81c7ff28b341f6fab86637c7 (diff)
nix: run Go tests in nixos
Nix build environment does not support ACLs in any filesystem. This allows acl tests to run. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
-rw-r--r--flake.nix22
-rw-r--r--test.nix15
2 files changed, 33 insertions, 4 deletions
diff --git a/flake.nix b/flake.nix
index 624a060a..60611a0d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -74,7 +74,7 @@
touch $out
'';
- nixos-tests = callPackage ./test.nix { inherit self home-manager; };
+ nixos-tests = callPackage ./test.nix { inherit system self home-manager; };
}
);
@@ -95,6 +95,26 @@
buildInputs = with nixpkgsFor.${system}; self.packages.${system}.fortify.buildInputs;
};
+ fhs = nixpkgsFor.${system}.buildFHSEnv {
+ pname = "fortify-fhs";
+ inherit (self.packages.${system}.fortify) version;
+ targetPkgs =
+ pkgs: with pkgs; [
+ go
+ gcc
+ pkg-config
+ acl
+ wayland
+ wayland-scanner
+ wayland-protocols
+ xorg.libxcb
+ ];
+ extraOutputsToInstall = [ "dev" ];
+ profile = ''
+ export PKG_CONFIG_PATH="/usr/share/pkgconfig:$PKG_CONFIG_PATH"
+ '';
+ };
+
withPackage = nixpkgsFor.${system}.mkShell {
buildInputs =
with nixpkgsFor.${system};
diff --git a/test.nix b/test.nix
index d2c1a5e6..22f6f14a 100644
--- a/test.nix
+++ b/test.nix
@@ -1,4 +1,5 @@
{
+ system,
self,
home-manager,
nixosTest,
@@ -31,11 +32,14 @@ nixosTest {
services.getty.autologinUser = "alice";
environment = {
- # For glinfo and wayland-info:
systemPackages = with pkgs; [
+ # For glinfo and wayland-info:
mesa-demos
wayland-utils
alacritty
+
+ # For go tests:
+ self.devShells.${system}.fhs
];
variables = {
@@ -139,7 +143,11 @@ nixosTest {
start_all()
machine.wait_for_unit("multi-user.target")
- # To check the version:
+ # Run fortify Go tests outside of nix build:
+ machine.succeed("rm -rf /tmp/src && cp -a '${self.packages.${system}.fortify.src}' /tmp/src")
+ print(machine.succeed("fortify-fhs -c '(cd /tmp/src && go generate ./... && go test ./...)'"))
+
+ # To check sway's version:
print(machine.succeed("sway --version"))
# Wait for Sway to complete startup:
@@ -185,7 +193,8 @@ nixosTest {
machine.send_chars("glinfo && touch /tmp/success-client-x11\n")
machine.wait_for_file("/tmp/fortify.1000/tmpdir/0/success-client-x11")
machine.screenshot("alacritty_x11_permissive")
- machine.succeed("pkill alacritty")
+ machine.send_chars("exit\n")
+ machine.wait_until_fails("pgrep alacritty")
# Exit Sway and verify process exit status 0:
swaymsg("exit", succeed=False)