tests,tools: Reimplement 'mk-tdata' in Scheme.
authorJustus Winter <justus@g10code.com>
Mon, 7 Nov 2016 11:28:07 +0000 (12:28 +0100)
committerJustus Winter <justus@g10code.com>
Mon, 7 Nov 2016 12:28:55 +0000 (13:28 +0100)
* 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 <justus@g10code.com>
tests/openpgp/defs.scm
tests/openpgp/setup.scm
tests/openpgp/verify.scm
tools/Makefile.am
tools/mk-tdata.c [deleted file]

index c911ea3..62bd1e2 100644 (file)
@@ -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")))
index 99fbdea..d3ce0d6 100755 (executable)
 
 (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"
 
   (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"
index e8aa7df..eb984b1 100755 (executable)
  "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
index c07a8b1..75750f7 100644 (file)
@@ -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 (file)
index 0aca035..0000000
+++ /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;
-}