LCOV - code coverage report
Current view: top level - common - t-sysutils.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 18 23 78.3 %
Date: 2016-11-29 15:00:56 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /* t-sysutils.c - Module test for sysutils.c
       2             :  *      Copyright (C) 2007 Free Software Foundation, Inc.
       3             :  *
       4             :  * This file is part of GnuPG.
       5             :  *
       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.
      10             :  *
      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.
      15             :  *
      16             :  * You should have received a copy of the GNU General Public License
      17             :  * along with this program; if not, see <https://www.gnu.org/licenses/>.
      18             :  */
      19             : 
      20             : #include <config.h>
      21             : #include <stdio.h>
      22             : #include <stdlib.h>
      23             : 
      24             : #include "util.h"
      25             : #include "sysutils.h"
      26             : 
      27             : #ifdef HAVE_W32CE_SYSTEM
      28             : # define rewind(f) do { fseek (f, 0, SEEK_SET); clearerr (f); } while (0)
      29             : #endif
      30             : 
      31             : #define pass()  do { ; } while(0)
      32             : #define fail(a)  do { fprintf (stderr, "%s:%d: test %d failed\n",\
      33             :                                __FILE__,__LINE__, (a));          \
      34             :                      errcount++;                                 \
      35             :                    } while(0)
      36             : 
      37             : static int verbose;
      38             : static int errcount;
      39             : 
      40             : 
      41             : static void
      42           1 : test_gnupg_tmpfile (void)
      43             : {
      44             :   FILE *fparr[10];
      45             :   int fparridx;
      46             :   int idx;
      47             :   FILE *fp;
      48             :   char buffer[100];
      49             : 
      50             : #define ASTRING "fooooooooooooooo\n"  /* Needs to be shorter than BUFFER.  */
      51             : 
      52          11 :   for (fparridx=0; fparridx < DIM (fparr); fparridx++)
      53             :     {
      54          10 :       fp = gnupg_tmpfile ();
      55          10 :       fparr[fparridx] = fp;
      56          10 :       if (!fp)
      57           0 :         fail (fparridx);
      58             :       else
      59             :         {
      60          10 :           fputs ( ASTRING, fp);
      61          10 :           rewind (fp);
      62          10 :           if (!fgets (buffer, sizeof (buffer), fp))
      63           0 :             fail (fparridx);
      64          10 :           if (strcmp (buffer, ASTRING))
      65           0 :             fail (fparridx);
      66          10 :           if (fgets (buffer, sizeof (buffer), fp))
      67           0 :             fail (fparridx);
      68             :         }
      69             :     }
      70          11 :   for (idx=0; idx < fparridx; idx++)
      71             :     {
      72          10 :       if (fparr[idx])
      73          10 :         fclose (fparr[idx]);
      74             :     }
      75           1 : }
      76             : 
      77             : 
      78             : 
      79             : int
      80           1 : main (int argc, char **argv)
      81             : {
      82           1 :   if (argc > 1 && !strcmp (argv[1], "--verbose"))
      83           0 :     verbose = 1;
      84             : 
      85           1 :   test_gnupg_tmpfile ();
      86             :   /* Fixme: Add tests for setenv and unsetenv.  */
      87             : 
      88           1 :   return !!errcount;
      89             : }

Generated by: LCOV version 1.11