From e9c80e277b572f642835afbf0d793b72cf49f551 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Wed, 23 Apr 2025 14:07:19 -0500 Subject: [PATCH] tests/gpg-agent: add pinentry-program test Add test that the code works to generate the correct pinentry-program configuration when supplying both options. --- tests/modules/services/gpg-agent/default.nix | 1 + .../services/gpg-agent/pinentry-program.nix | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tests/modules/services/gpg-agent/pinentry-program.nix diff --git a/tests/modules/services/gpg-agent/default.nix b/tests/modules/services/gpg-agent/default.nix index cf34517b2..6aa69dd7a 100644 --- a/tests/modules/services/gpg-agent/default.nix +++ b/tests/modules/services/gpg-agent/default.nix @@ -1,4 +1,5 @@ { gpg-agent-default-homedir = ./default-homedir.nix; gpg-agent-override-homedir = ./override-homedir.nix; + gpg-agent-pinentry-program = ./pinentry-program.nix; } diff --git a/tests/modules/services/gpg-agent/pinentry-program.nix b/tests/modules/services/gpg-agent/pinentry-program.nix new file mode 100644 index 000000000..7f30c6677 --- /dev/null +++ b/tests/modules/services/gpg-agent/pinentry-program.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + pkgs, + ... +}: + +lib.mkIf pkgs.stdenv.isLinux { + services.gpg-agent.enable = true; + services.gpg-agent.pinentry = { + package = pkgs.pinentry-all; + program = "pinentry-qt"; + }; + programs.gpg.enable = true; + + nmt.script = '' + in="${config.systemd.user.sockets.gpg-agent.Socket.ListenStream}" + if [[ $in != "%t/gnupg/S.gpg-agent" ]] + then + echo $in + fail "gpg-agent socket directory not set to default value" + fi + + configFile=home-files/.gnupg/gpg-agent.conf + assertFileRegex $configFile "pinentry-program @pinentry-all@/bin/pinentry-qt" + ''; +}