#!/usr/bin/env bats ## (define-module (tests-pinentry-rofi) ## #:use-module (srfi srfi-64) ## #:use-module (ice-9 popen) ## #:use-module (ice-9 textual-ports) ## #:use-module (pinentry-rofi)) # XXX (test-begin "pinentry-rofi") # XXX ;; (test-begin "pinentry") # XXX (let ((pinentry (make-pinentry #t "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry? pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-equal "Prompt" (pinentry-prompt pinentry)) # XXX (test-equal "Ok" (pinentry-ok-button pinentry)) # XXX (test-equal "Cancel" (pinentry-cancel-button pinentry)) # XXX (test-equal ":1" (pinentry-display pinentry)) # XXX (test-equal "test.log" (pinentry-logfile pinentry)) # XXX (test-assert (not (pinentry-notok-button pinentry))) # XXX (test-assert (not (pinentry-visibility pinentry))) # XXX (test-assert (not (pinentry-error pinentry)))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (not (pinentry-ok pinentry)))) # XXX # XXX ;; (test-end "pinentry") # XXX # XXX ;; (test-begin "utils") # XXX # XXX (test-equal "Ok" (remove-underline "_Ok")) # XXX (test-equal " Ok" (remove-underline " _Ok")) # XXX (test-equal "foo_bar" (remove-underline "foo_bar")) # XXX (test-equal "foo__bar" (remove-underline "foo__bar")) # XXX (test-equal " __Ok" (remove-underline " __Ok")) # XXX (test-equal "__Ok" (remove-underline "__Ok")) # XXX (test-equal "Ok%0ACancel" (remove-underline "_Ok%0A_Cancel")) # XXX (test-equal "Ok Cancel" (remove-underline "_Ok _Cancel")) # XXX # XXX (test-equal "_Ok" (escape-underscore "_Ok")) # XXX (test-equal " _Ok" (escape-underscore " _Ok")) # XXX (test-equal "foo_bar" (escape-underscore "foo_bar")) # XXX (test-equal "foo__bar" (escape-underscore "foo__bar")) # XXX (test-equal " _Ok" (escape-underscore " __Ok")) # XXX (test-equal "_Ok" (escape-underscore "__Ok")) # XXX (test-equal "_Ok%0A_Cancel" (escape-underscore "__Ok%0A__Cancel")) # XXX (test-equal "_Ok _Cancel" (escape-underscore "__Ok __Cancel")) # XXX # XXX (test-assert (string-empty? "")) # XXX (test-assert (not (string-empty? "foo"))) # XXX ;; (test-end "utils") # XXX # XXX (test-equal "This is one line\nThis is another%OA" # XXX (hex->char "%54his is one line%0AThis is another%OA")) # XXX # XXX ;; (test-begin "html") # XXX (test-equal "%54his is one line This is another%OA" # XXX (html-newline "%54his is one line%0AThis is another%OA")) # XXX (test-equal "%54his is one line\nThis is another%OA" # XXX (html-newline "%54his is one line\nThis is another%OA")) # XXX # XXX (test-equal "Ok" (html-underline "_Ok")) # XXX (test-equal " Ok" (html-underline " _Ok")) # XXX (test-equal "foo_bar" (html-underline "foo_bar")) # XXX (test-equal "foo__bar" (html-underline "foo__bar")) # XXX (test-equal " __Ok" (html-underline " __Ok")) # XXX (test-equal "__Ok" (html-underline "__Ok")) # XXX (test-equal "Ok%0ACancel" (html-underline "_Ok%0A_Cancel")) # XXX (test-equal "Ok Cancel" (html-underline "_Ok _Cancel")) # XXX # XXX ;; (test-end "html") # XXX # XXX (test-equal "This is one line This is another%OA" # XXX (pango-markup "_%54his is one line%0A_This is another%OA")) # XXX # XXX (test-equal "Ok\nCancel" # XXX (input-string "_Ok\nCancel")) # XXX # XXX (test-equal "Ok\n_Cancel" # XXX (input-string "_Ok\n__Cancel")) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (pinentry-set set-pinentry-notok-button! pinentry "Not ok") # XXX (test-equal "Not ok" (pinentry-notok-button pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-error #t (pinentry-set pinentry-notok-button pinentry "Not ok"))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION default-ok=Okay")) # XXX (test-equal "Okay" (pinentry-ok-button pinentry)) # XXX (test-equal "Cancel" (pinentry-cancel-button pinentry)) # XXX (test-equal "Prompt" (pinentry-prompt pinentry)) # XXX (test-equal "C" (pinentry-lc-ctype pinentry)) # XXX (test-equal "C" (pinentry-lc-messages pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION default-cancel=No")) # XXX (test-equal "Ok" (pinentry-ok-button pinentry)) # XXX (test-equal "No" (pinentry-cancel-button pinentry)) # XXX (test-equal "Prompt" (pinentry-prompt pinentry)) # XXX (test-equal "C" (pinentry-lc-ctype pinentry)) # XXX (test-equal "C" (pinentry-lc-messages pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION default-prompt=Password:")) # XXX (test-equal "Ok" (pinentry-ok-button pinentry)) # XXX (test-equal "Cancel" (pinentry-cancel-button pinentry)) # XXX (test-equal "Password:" (pinentry-prompt pinentry)) # XXX (test-equal "C" (pinentry-lc-ctype pinentry)) # XXX (test-equal "C" (pinentry-lc-messages pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION lc-ctype=en_US.UTF-8")) # XXX (test-equal "Ok" (pinentry-ok-button pinentry)) # XXX (test-equal "Cancel" (pinentry-cancel-button pinentry)) # XXX (test-equal "Prompt" (pinentry-prompt pinentry)) # XXX (test-equal "en_US.UTF-8" (pinentry-lc-ctype pinentry)) # XXX (test-equal "C" (pinentry-lc-messages pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION lc-messages=en_US.UTF-8")) # XXX (test-equal "Ok" (pinentry-ok-button pinentry)) # XXX (test-equal "Cancel" (pinentry-cancel-button pinentry)) # XXX (test-equal "Prompt" (pinentry-prompt pinentry)) # XXX (test-equal "C" (pinentry-lc-ctype pinentry)) # XXX (test-equal "en_US.UTF-8" (pinentry-lc-messages pinentry)) # XXX (test-assert (pinentry-ok pinentry))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-option pinentry "OPTION foo bar"))) # XXX # XXX (let ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (not (pinentry-option pinentry " OPTION foo bar"))) # XXX (test-assert (not (pinentry-option pinentry "OPTION"))) # XXX (test-assert (not (pinentry-option pinentry "Foo")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C")) # XXX (output "") # XXX (fake-port (make-soft-port # XXX (vector # XXX (lambda (c) (set! output (string-append output c))) # XXX (lambda (s) (set! output (string-append output s))) # XXX (lambda () #t) # XXX #f # XXX (lambda () #t)) # XXX "w"))) # XXX (test-assert (pinentry-getinfo pinentry "GETINFO pid" #:port fake-port)) # XXX (test-equal (format #f "D ~a\n" (getpid)) output) # XXX (test-assert (pinentry-getinfo pinentry "GETINFO foo bar")) # XXX (test-assert (not (pinentry-getinfo pinentry " GETINFO foo bar"))) # XXX (test-assert (not (pinentry-getinfo pinentry "GETINFO"))) # XXX (test-assert (not (pinentry-getinfo pinentry "Foo")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setkeyinfo pinentry "SETKEYINFO Foo")) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (not (pinentry-setkeyinfo pinentry " SETKEYINFO foo bar"))) # XXX (test-assert (not (pinentry-setkeyinfo pinentry "SETKEYINFO"))) # XXX (test-assert (not (pinentry-setkeyinfo pinentry "Foo")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setok pinentry "SETOK Foo")) # XXX (test-equal "Foo" (pinentry-ok-button pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-setok pinentry "SETOK _Ok okay")) # XXX (test-equal "Ok okay" (pinentry-ok-button pinentry)) # XXX (test-assert (not (pinentry-setok pinentry " SETOK foo bar"))) # XXX (test-equal "Ok okay" (pinentry-ok-button pinentry)) # XXX (test-assert (not (pinentry-setok pinentry "SETOK"))) # XXX (test-equal "Ok okay" (pinentry-ok-button pinentry)) # XXX (test-assert (not (pinentry-setok pinentry "Foo"))) # XXX (test-equal "Ok okay" (pinentry-ok-button pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setnotok pinentry "SETNOTOK Foo")) # XXX (test-equal "Foo" (pinentry-notok-button pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-setnotok pinentry "SETNOTOK Not _Ok")) # XXX (test-equal "Not Ok" (pinentry-notok-button pinentry)) # XXX (test-assert (not (pinentry-setnotok pinentry " SETNOTOK foo bar"))) # XXX (test-equal "Not Ok" (pinentry-notok-button pinentry)) # XXX (test-assert (not (pinentry-setnotok pinentry "SETNOTOK"))) # XXX (test-equal "Not Ok" (pinentry-notok-button pinentry)) # XXX (test-assert (not (pinentry-setnotok pinentry "Foo"))) # XXX (test-equal "Not Ok" (pinentry-notok-button pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setcancel pinentry "SETCANCEL Foo")) # XXX (test-equal "Foo" (pinentry-cancel-button pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-setcancel pinentry "SETCANCEL _Abort")) # XXX (test-equal "Abort" (pinentry-cancel-button pinentry)) # XXX (test-assert (not (pinentry-setcancel pinentry " SETCANCEL foo bar"))) # XXX (test-equal "Abort" (pinentry-cancel-button pinentry)) # XXX (test-assert (not (pinentry-setcancel pinentry "SETCANCEL"))) # XXX (test-equal "Abort" (pinentry-cancel-button pinentry)) # XXX (test-assert (not (pinentry-setcancel pinentry "Foo"))) # XXX (test-equal "Abort" (pinentry-cancel-button pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Desc" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setdesc pinentry "SETDESC Foo")) # XXX (test-equal "Foo" (pinentry-desc pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-setdesc pinentry "SETDESC _%54his is a description%0A_On two lines")) # XXX (test-equal "This is a description On two lines" (pinentry-desc pinentry)) # XXX (test-assert (not (pinentry-setdesc pinentry " SETDESC foo bar"))) # XXX (test-equal "This is a description On two lines" (pinentry-desc pinentry)) # XXX (test-assert (not (pinentry-setdesc pinentry "SETDESC"))) # XXX (test-equal "This is a description On two lines" (pinentry-desc pinentry)) # XXX (test-assert (not (pinentry-setdesc pinentry "Foo"))) # XXX (test-equal "This is a description On two lines" (pinentry-desc pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Error" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-seterror pinentry "SETERROR Foo")) # XXX (test-equal "Foo" (pinentry-error pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-seterror pinentry "SETERROR _%54his is an error%0A_On two lines")) # XXX (test-equal "This is an error On two lines" (pinentry-error pinentry)) # XXX (test-assert (not (pinentry-seterror pinentry " SETERROR foo bar"))) # XXX (test-equal "This is an error On two lines" (pinentry-error pinentry)) # XXX (test-assert (not (pinentry-seterror pinentry "SETERROR"))) # XXX (test-equal "This is an error On two lines" (pinentry-error pinentry)) # XXX (test-assert (not (pinentry-seterror pinentry "Foo"))) # XXX (test-equal "This is an error On two lines" (pinentry-error pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Prompt" ":1" "test.log" "C" "C"))) # XXX (test-assert (pinentry-setprompt pinentry "SETPROMPT Foo")) # XXX (test-equal "Foo" (pinentry-prompt pinentry)) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (pinentry-setprompt pinentry "SETPROMPT _%54his is a prompt%0A_On two lines")) # XXX (test-equal "This is a prompt On two lines" (pinentry-prompt pinentry)) # XXX (test-assert (not (pinentry-setprompt pinentry " SETPROMPT foo bar"))) # XXX (test-equal "This is a prompt On two lines" (pinentry-prompt pinentry)) # XXX (test-assert (not (pinentry-setprompt pinentry "SETPROMPT"))) # XXX (test-equal "This is a prompt On two lines" (pinentry-prompt pinentry)) # XXX (test-assert (not (pinentry-setprompt pinentry "Foo"))) # XXX (test-equal "This is a prompt On two lines" (pinentry-prompt pinentry))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Prompt" ":1" "test.log" "C" "C"))) # XXX (test-error "(quit #t)" (pinentry-bye pinentry "BYE")) # XXX (test-assert (not (pinentry-bye pinentry "Hej då")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "en_US.UTF-8")) # XXX (output "") # XXX (fake-port (make-soft-port # XXX (vector # XXX (lambda (c) (set! output (string-append output c))) # XXX (lambda (s) (set! output (string-append output s))) # XXX (lambda () #t) # XXX #f # XXX (lambda () #t)) # XXX "w")) # XXX (description "This is a description") # XXX (error "Something went wrong") # XXX (display ":1")) # XXX (set-pinentry-desc! pinentry description) # XXX (set-pinentry-display! pinentry display) # XXX (test-assert (pinentry-getpin pinentry "GETPIN" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal "Prompt" prompt) # XXX (test-equal description message) # XXX (test-assert (not visibility)) # XXX (test-assert (not only-match)) # XXX (test-assert (not buttons)) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "password") # XXX #:port fake-port)) # XXX (test-equal (format #f "D password") output) # XXX (set-pinentry-error! pinentry error) # XXX (set! output "") # XXX (test-assert (pinentry-getpin pinentry "GETPIN" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal "Prompt" prompt) # XXX (test-equal (format #f "~a ~a" error description) # XXX message) # XXX (test-assert (not visibility)) # XXX (test-assert (not only-match)) # XXX (test-assert (not buttons)) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "password") # XXX #:port fake-port)) # XXX (test-equal (format #f "D password") output) # XXX (set! output "") # XXX (test-assert (pinentry-getpin pinentry "GETPIN" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal "Prompt" prompt) # XXX (test-equal (format #f "~a ~a" error description) # XXX message) # XXX (test-assert (not visibility)) # XXX (test-assert (not only-match)) # XXX (test-assert (not buttons)) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "") # XXX #:port fake-port)) # XXX (test-equal (format #f "ERR 83886179 Operation cancelled \n") output) # XXX (set! output "") # XXX (test-assert (pinentry-getpin pinentry "GETPIN" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal "Prompt" prompt) # XXX (test-equal (format #f "~a ~a" error description) # XXX message) # XXX (test-assert (not visibility)) # XXX (test-assert (not only-match)) # XXX (test-assert (not buttons)) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX " ") # XXX #:port fake-port)) # XXX (test-equal (format #f "ERR 83886179 Operation cancelled \n") output) # XXX (test-assert (not (pinentry-getinfo pinentry " GETPIN"))) # XXX (test-assert (not (pinentry-getinfo pinentry "Foo")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "en_US.UTF-8")) # XXX (description "This is a description") # XXX (error "Something went wrong") # XXX (display ":1")) # XXX (set-pinentry-desc! pinentry description) # XXX (set-pinentry-display! pinentry display) # XXX (test-assert (pinentry-confirm pinentry "CONFIRM" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal ">" prompt) # XXX (test-equal description message) # XXX (test-assert visibility) # XXX (test-assert only-match) # XXX (test-equal `("Ok" "Cancel") buttons) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "Ok"))) # XXX (test-assert (pinentry-ok pinentry)) # XXX (set-pinentry-error! pinentry error) # XXX (let* ((output "") # XXX (fake-port (make-soft-port # XXX (vector # XXX (lambda (c) (set! output (string-append output c))) # XXX (lambda (s) (set! output (string-append output s))) # XXX (lambda () #t) # XXX #f # XXX (lambda () #t)) # XXX "w"))) # XXX (test-assert (pinentry-confirm # XXX pinentry # XXX "CONFIRM" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal ">" prompt) # XXX (test-equal (format #f "~a ~a" error description) # XXX message) # XXX (test-assert visibility) # XXX (test-assert only-match) # XXX (test-equal `("Ok" "Cancel") buttons) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "Cancel") # XXX #:port fake-port)) # XXX (test-equal (format #f "ERR 277 Operation cancelled\n") output)) # XXX (test-assert (not (pinentry-ok pinentry))) # XXX (test-assert (not (pinentry-getinfo pinentry " CONFIRM"))) # XXX (test-assert (not (pinentry-getinfo pinentry "Foo")))) # XXX # XXX (let* ((pinentry (make-pinentry #f "Prompt" "Ok" "Cancel" ":1" "test.log" "C" "en_US.UTF-8")) # XXX (description "This is a description") # XXX (display ":1")) # XXX (set-pinentry-desc! pinentry description) # XXX (set-pinentry-display! pinentry display) # XXX (test-assert (pinentry-confirm pinentry "CONFIRM --one-button" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal ">" prompt) # XXX (test-equal description message) # XXX (test-assert visibility) # XXX (test-assert only-match) # XXX (test-equal `("Ok") buttons) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "Ok"))) # XXX (test-assert (pinentry-ok pinentry)) # XXX (set-pinentry-ok! pinentry #f) # XXX (test-assert (pinentry-confirm pinentry "MESSAGE" # XXX (lambda* (#:key (env '()) # XXX visibility # XXX (prompt ">") # XXX message # XXX buttons # XXX only-match) # XXX (test-equal ">" prompt) # XXX (test-equal description message) # XXX (test-assert visibility) # XXX (test-assert only-match) # XXX (test-equal `("Ok") buttons) # XXX (test-equal `(("DISPLAY" . ,display) # XXX ("LC_CTYPE" . "C") # XXX ("LC_MESSAGES" . "en_US.UTF-8")) # XXX env) # XXX "Ok"))) # XXX (test-assert (pinentry-ok pinentry)) # XXX (test-assert (not (pinentry-getinfo pinentry " CONFIRM --one-button"))) # XXX (test-assert (not (pinentry-getinfo pinentry "MESSAGE --one-button"))) # XXX (test-assert (not (pinentry-getinfo pinentry " MESSAGE"))) # XXX (test-assert (not (pinentry-getinfo pinentry "Foo")))) # XXX # XXX (test-end "pinentry-rofi")