2008-02-09 Marcus Brinkmann <marcus@g10code.de>
[gnupg.git] / common / t-sysutils.c
blob45d359e7bfdad2482124b35faf22c7968bca7e29
1 /* t-sysutils.c - Module test for sysutils.c
2 * Copyright (C) 2007 Free Software Foundation, Inc.
4 * This file is part of GnuPG.
6 * GnuPG is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
11 * GnuPG is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <http://www.gnu.org/licenses/>.
20 #include <config.h>
21 #include <stdio.h>
22 #include <stdlib.h>
24 #include "util.h"
25 #include "sysutils.h"
27 #define pass() do { ; } while(0)
28 #define fail(a) do { fprintf (stderr, "%s:%d: test %d failed\n",\
29 __FILE__,__LINE__, (a)); \
30 errcount++; \
31 } while(0)
33 static int verbose;
34 static int errcount;
37 static void
38 test_gnupg_tmpfile (void)
40 FILE *fparr[10];
41 int fparridx;
42 int idx;
43 FILE *fp;
44 char buffer[100];
46 #define ASTRING "fooooooooooooooo\n" /* Needs to be shorter than BUFFER. */
48 for (fparridx=0; fparridx < DIM (fparr); fparridx++)
50 fp = gnupg_tmpfile ();
51 fparr[fparridx] = fp;
52 if (!fp)
53 fail (fparridx);
54 else
56 fputs ( ASTRING, fp);
57 rewind (fp);
58 if (!fgets (buffer, sizeof (buffer), fp))
59 fail (fparridx);
60 if (strcmp (buffer, ASTRING))
61 fail (fparridx);
62 if (fgets (buffer, sizeof (buffer), fp))
63 fail (fparridx);
66 for (idx=0; idx < fparridx; idx++)
68 if (fparr[idx])
69 fclose (fparr[idx]);
75 int
76 main (int argc, char **argv)
78 if (argc > 1 && !strcmp (argv[1], "--verbose"))
79 verbose = 1;
81 test_gnupg_tmpfile ();
83 return !!errcount;