LCOV - code coverage report
Current view: top level - tests/opassuan - t-command.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 35 0.0 %
Date: 2016-09-12 12:35:26 Functions: 0 4 0.0 %

          Line data    Source code
       1             : /* t-command.c - Regression test.
       2             :    Copyright (C) 2009 g10 Code GmbH
       3             : 
       4             :    This file is part of GPGME.
       5             : 
       6             :    GPGME is free software; you can redistribute it and/or modify it
       7             :    under the terms of the GNU Lesser General Public License as
       8             :    published by the Free Software Foundation; either version 2.1 of
       9             :    the License, or (at your option) any later version.
      10             :    
      11             :    GPGME is distributed in the hope that it will be useful, but
      12             :    WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14             :    Lesser General Public License for more details.
      15             :    
      16             :    You should have received a copy of the GNU Lesser General Public
      17             :    License along with this program; if not, see <http://www.gnu.org/licenses/>.
      18             :  */
      19             : 
      20             : #ifdef HAVE_CONFIG_H
      21             : #include <config.h>
      22             : #endif
      23             : 
      24             : #include <stdlib.h>
      25             : #include <string.h>
      26             : #include <locale.h>
      27             : #include <assert.h>
      28             : 
      29             : #include <gpgme.h>
      30             : 
      31             : #define fail_if_err(err)                                        \
      32             :   do                                                            \
      33             :     {                                                           \
      34             :       if (err)                                                  \
      35             :         {                                                       \
      36             :           fprintf (stderr, "%s:%d: %s: %s (%d.%d)\n",         \
      37             :                    __FILE__, __LINE__, gpgme_strsource (err),   \
      38             :                    gpgme_strerror (err),                        \
      39             :                    gpgme_err_source (err), gpgme_err_code (err)); \
      40             :           exit (1);                                             \
      41             :         }                                                       \
      42             :     }                                                           \
      43             :   while (0)
      44             : 
      45             : 
      46             : static gpgme_error_t
      47           0 : data_cb (void *opaque, const void *data, size_t datalen)
      48             : {
      49           0 :   printf ("DATA_CB: datalen=%d\n", (int)datalen);
      50           0 :   return 0;
      51             : }     
      52             : 
      53             : 
      54             : static gpgme_error_t
      55           0 : inq_cb (void *opaque, const char *name, const char *args,
      56             :         gpgme_data_t *r_data)
      57             : {
      58             :   gpgme_data_t data;
      59             :   gpgme_error_t err;
      60             : 
      61           0 :   if (name)
      62             :     {
      63           0 :       printf ("INQ_CB: name=`%s' args=`%s'\n", name, args);
      64             :       /* There shall be no data object.  */
      65           0 :       assert (!*r_data);
      66             :       
      67           0 :       err = gpgme_data_new (&data);
      68           0 :       fail_if_err (err);
      69           0 :       *r_data = data;
      70           0 :       printf ("        sending data object %p\n", data);
      71             :     }
      72             :   else /* Finished using the formerly returned data object.  */
      73             :     {
      74           0 :       printf ("INQ_CB: data object %p finished\n", *r_data);
      75             :       /* There shall be a data object so that it can be cleaned up. */
      76           0 :       assert (r_data);
      77             : 
      78           0 :       gpgme_data_release (*r_data);
      79             :     }
      80             : 
      81             :   /* Uncomment the next lines and send a "SCD LEARN" to test sending
      82             :      cancel from in inquiry.  */
      83             :   /* if (name && !strcmp (name, "KNOWNCARDP")) */
      84             :   /*   return gpgme_error (GPG_ERR_ASS_CANCELED); */
      85             : 
      86             : 
      87           0 :   return 0;
      88             : }     
      89             : 
      90             : 
      91             : static gpgme_error_t
      92           0 : status_cb (void *opaque, const char *status, const char *args)
      93             : {
      94           0 :   printf ("STATUS_CB: status=`%s'  args=`%s'\n", status, args);
      95           0 :   return 0;
      96             : }     
      97             : 
      98             : 
      99             : 
     100             : int 
     101           0 : main (int argc, char **argv)
     102             : {
     103             :   gpgme_error_t err;
     104             :   gpgme_error_t op_err;
     105             :   gpgme_ctx_t ctx;
     106             :   const char *command;
     107             : 
     108           0 :   gpgme_check_version (NULL);
     109             : #ifndef HAVE_W32_SYSTEM
     110           0 :   setlocale (LC_ALL, "");
     111           0 :   gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
     112           0 :   gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
     113             : #endif
     114             : 
     115           0 :   if (argc)
     116             :     {
     117           0 :       argc--;
     118           0 :       argv++;
     119             :     }
     120           0 :   command = argc? *argv : "NOP";
     121             :   
     122             : 
     123           0 :   err = gpgme_new (&ctx);
     124           0 :   fail_if_err (err);
     125             : 
     126           0 :   err = gpgme_set_protocol (ctx, GPGME_PROTOCOL_ASSUAN);
     127           0 :   fail_if_err (err);
     128             : 
     129           0 :   err = gpgme_op_assuan_transact_ext (ctx, command, data_cb, NULL,
     130             :                                   inq_cb, NULL, status_cb, NULL, &op_err);
     131           0 :   fail_if_err (err || op_err);
     132             : 
     133           0 :   gpgme_release (ctx);
     134             : 
     135           0 :   return 0;
     136             : }
     137             : 

Generated by: LCOV version 1.11