From 70215ff470c82d144e872057dfa5a478cc9195f2 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 7 Nov 2016 12:28:07 +0100 Subject: [PATCH] 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 --- tests/openpgp/defs.scm | 1 - tests/openpgp/setup.scm | 16 +++++---- tests/openpgp/verify.scm | 10 +++--- tools/Makefile.am | 2 +- tools/mk-tdata.c | 75 ---------------------------------------- 5 files changed, 17 insertions(+), 87 deletions(-) delete mode 100644 tools/mk-tdata.c 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 -#endif -#include -#include -#include -#include -#include - - -#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; -}