aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-11-07 11:28:07 +0000
committerJustus Winter <[email protected]>2016-11-07 12:28:55 +0000
commit70215ff470c82d144e872057dfa5a478cc9195f2 (patch)
tree2a43622ea5fd705a41810daf9a8c0bb2cc437307
parentgpgscm,w32: Provide schemish file handling for binary files. (diff)
downloadgnupg-70215ff470c82d144e872057dfa5a478cc9195f2.tar.gz
gnupg-70215ff470c82d144e872057dfa5a478cc9195f2.zip
tests,tools: Reimplement 'mk-tdata' in Scheme.
* tests/openpgp/defs.scm (tools): Drop 'mk-tdata'. * tests/openpgp/setup.scm (make-test-data): New function. * tests/openpgp/verify.scm: Avoid 'mk-tdata'. * tools/Makefile.am (noinst_PROGRAMS): Drop 'mk-tdata'. * tools/mk-tdata.c: Drop file. Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--tests/openpgp/defs.scm1
-rwxr-xr-xtests/openpgp/setup.scm16
-rwxr-xr-xtests/openpgp/verify.scm10
-rw-r--r--tools/Makefile.am2
-rw-r--r--tools/mk-tdata.c75
5 files changed, 17 insertions, 87 deletions
diff --git a/tests/openpgp/defs.scm b/tests/openpgp/defs.scm
index c911ea38a..62bd1e2fc 100644
--- a/tests/openpgp/defs.scm
+++ b/tests/openpgp/defs.scm
@@ -59,7 +59,6 @@
(gpgconf "GPGCONF" "tools/gpgconf")
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
"agent/gpg-preset-passphrase")
- (mktdata "MKTDATA" "tools/mk-tdata")
(gpgtar "GPGTAR" "tools/gpgtar")
(gpg-zip "GPGZIP" "tools/gpg-zip")
(pinentry "PINENTRY" "tests/openpgp/fake-pinentry")))
diff --git a/tests/openpgp/setup.scm b/tests/openpgp/setup.scm
index 99fbdeaf1..d3ce0d60c 100755
--- a/tests/openpgp/setup.scm
+++ b/tests/openpgp/setup.scm
@@ -19,11 +19,17 @@
(load (with-path "defs.scm"))
+(define (make-test-data filename size)
+ (call-with-binary-output-file
+ filename
+ (lambda (port)
+ (display (make-random-string size) port))))
+
(define (create-gpghome)
(echo "Creating test environment...")
- (letfd ((fd (open "random_seed" (logior O_WRONLY O_CREAT O_BINARY) #o600)))
- (call-with-fds (list (tool 'mktdata) "600") CLOSED_FD fd STDERR_FILENO))
+ (srandom (getpid))
+ (make-test-data "random_seed" 600)
(for-each-p
"Creating configuration files"
@@ -44,10 +50,8 @@
(for-each-p "Creating sample data files"
(lambda (size)
- (letfd ((fd (open (string-append "data-" (number->string size))
- (logior O_WRONLY O_CREAT O_BINARY) #o600)))
- (call-with-fds (list (tool 'mktdata) (number->string size))
- CLOSED_FD fd STDERR_FILENO)))
+ (make-test-data (string-append "data-" (number->string size))
+ size))
'(500 9000 32000 80000))
(for-each-p "Unpacking samples"
diff --git a/tests/openpgp/verify.scm b/tests/openpgp/verify.scm
index e8aa7df35..eb984b110 100755
--- a/tests/openpgp/verify.scm
+++ b/tests/openpgp/verify.scm
@@ -26,12 +26,14 @@
"Checking bogus signature"
(lambda (char)
(lettmp (x)
- (pipe:do
- (pipe:spawn `(,(tool 'mktdata) --char ,char "64"))
- (pipe:write-to x (logior O_WRONLY O_CREAT O_BINARY) #o600))
+ (call-with-binary-output-file
+ x
+ (lambda (port)
+ (display (make-string 64 (integer->char (string->number char)))
+ port)))
(if (= 0 (call `(,@GPG --verify ,x data-500)))
(error "no error code from verify"))))
- '("0x2d" "0xca"))
+ '("#x2d" "#xca"))
;; A plain signed message created using
;; echo abc | gpg --homedir . --passphrase-fd 0 -u Alpha -z0 -sa msg
diff --git a/tools/Makefile.am b/tools/Makefile.am
index c07a8b111..75750f78e 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -66,7 +66,7 @@ libexec_PROGRAMS += gpg-check-pattern
endif
if !HAVE_W32CE_SYSTEM
-noinst_PROGRAMS = clean-sat mk-tdata make-dns-cert gpgsplit
+noinst_PROGRAMS = clean-sat make-dns-cert gpgsplit
endif
if !HAVE_W32CE_SYSTEM
diff --git a/tools/mk-tdata.c b/tools/mk-tdata.c
deleted file mode 100644
index 0aca035ca..000000000
--- a/tools/mk-tdata.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* mk-tdata.c - Create some simple random testdata
- * Copyright (C) 1998, 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
- *
- * This file is free software; as a special exception the author gives
- * unlimited permission to copy and/or distribute it, with or without
- * modifications, as long as this notice is preserved.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-
-#ifndef RAND_MAX /* for SunOS */
-#define RAND_MAX 32767
-#endif
-
-int
-main(int argc, char **argv)
-{
- int i, c = 0;
- int limit =0;
- int char_mode = 0;
-
-#if HAVE_W32_SYSTEM
- if (setmode (fileno (stdout), O_BINARY) == -1)
- perror ("setmode");
-#endif
-
- if (argc)
- {
- argc--;
- argv++;
- }
-
- /* Check for option --char N */
- if (argc > 1 && !strcmp (argv[0], "--char"))
- {
- char_mode = 1;
- c = strtol (argv[1], NULL, 0);
- argc -= 2;
- argv += 2;
- }
-
- limit = argc ? atoi(argv[0]) : 0;
-
- srand(getpid());
-
- for (i=0; !limit || i < limit; i++ )
- {
- if (char_mode)
- {
- putchar (c);
- }
- else
- {
-#ifdef HAVE_RAND
- c = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
-#else
- c = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
-#endif
- putchar (c);
- }
- }
- return 0;
-}