summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJustus Winter <justus@g10code.com>2017-06-19 16:29:08 +0200
committerJustus Winter <justus@g10code.com>2017-06-19 16:51:31 +0200
commite555e7ed7de20fbbb1e3b005c32e292f29cc4a58 (patch)
tree2023122ac3574ee7bf5d37f8bfff9516b428783f /tests
parentgpgscm: Improve error handling of foreign functions. (diff)
downloadgnupg2-e555e7ed7de20fbbb1e3b005c32e292f29cc4a58.tar.xz
gnupg2-e555e7ed7de20fbbb1e3b005c32e292f29cc4a58.zip
gpgscm: Improve option parsing.
* tests/gpgscm/tests.scm (flag): Accept arguments of the form '--foo=bar'. Signed-off-by: Justus Winter <justus@g10code.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/gpgscm/tests.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm
index eee8ce56f..b66240d2c 100644
--- a/tests/gpgscm/tests.scm
+++ b/tests/gpgscm/tests.scm
@@ -766,7 +766,8 @@
;; Command line flag handling. Returns the elements following KEY in
;; ARGUMENTS up to the next argument, or #f if KEY is not in
-;; ARGUMENTS.
+;; ARGUMENTS. If 'KEY=XYZ' is encountered, then the singleton list
+;; containing 'XYZ' is returned.
(define (flag key arguments)
(cond
((null? arguments)
@@ -777,6 +778,10 @@
(if (or (null? args) (string-prefix? (car args) "--"))
(reverse acc)
(loop (cons (car args) acc) (cdr args)))))
+ ((string-prefix? (car arguments) (string-append key "="))
+ (list (substring (car arguments)
+ (+ (string-length key) 1)
+ (string-length (car arguments)))))
((string=? "--" (car arguments))
#f)
(else
@@ -784,6 +789,7 @@
(assert (equal? (flag "--xxx" '("--yyy")) #f))
(assert (equal? (flag "--xxx" '("--xxx")) '()))
(assert (equal? (flag "--xxx" '("--xxx" "yyy")) '("yyy")))
+(assert (equal? (flag "--xxx" '("--xxx=foo" "yyy")) '("foo")))
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "zzz")) '("yyy" "zzz")))
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "zzz" "--")) '("yyy" "zzz")))
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "--" "zzz")) '("yyy")))