LCOV - code coverage report
Current view: top level - testing - testing_api_traits.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 68.4 % 38 26
Test Date: 2025-12-28 14:06:02 Functions: 68.4 % 174 119

            Line data    Source code
       1              : /*
       2              :   This file is part of TALER
       3              :   Copyright (C) 2018, 2021 Taler Systems SA
       4              : 
       5              :   TALER is free software; you can redistribute it and/or modify
       6              :   it under the terms of the GNU General Public License as
       7              :   published by the Free Software Foundation; either version 3, or
       8              :   (at your option) any later version.
       9              : 
      10              :   TALER is distributed in the hope that it will be useful, but
      11              :   WITHOUT ANY WARRANTY; without even the implied warranty of
      12              :   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13              :   GNU General Public License for more details.
      14              : 
      15              :   You should have received a copy of the GNU General Public
      16              :   License along with TALER; see the file COPYING.  If not, see
      17              :   <http://www.gnu.org/licenses/>
      18              : */
      19              : /**
      20              :  * @file testing/testing_api_traits.c
      21              :  * @brief loop for trait resolution
      22              :  * @author Christian Grothoff
      23              :  * @author Marcello Stanisci
      24              :  */
      25              : #include "taler/platform.h"
      26              : #include "taler/taler_json_lib.h"
      27              : #include <gnunet/gnunet_curl_lib.h>
      28              : #include "taler/taler_signatures.h"
      29              : #include "taler/taler_testing_lib.h"
      30              : 
      31              : 
      32        39237 : TALER_TESTING_SIMPLE_TRAITS (TALER_TESTING_MAKE_IMPL_SIMPLE_TRAIT)
      33              : 
      34        28913 : TALER_TESTING_INDEXED_TRAITS (TALER_TESTING_MAKE_IMPL_INDEXED_TRAIT)
      35              : 
      36              : 
      37              : /**
      38              :  * End a trait array.  Usually, commands offer several traits,
      39              :  * and put them in arrays.
      40              :  */
      41              : struct TALER_TESTING_Trait
      42         7671 : TALER_TESTING_trait_end ()
      43              : {
      44         7671 :   struct TALER_TESTING_Trait end = {
      45              :     .index = 0,
      46              :     .trait_name = NULL,
      47              :     .ptr = NULL
      48              :   };
      49              : 
      50         7671 :   return end;
      51              : }
      52              : 
      53              : 
      54              : enum GNUNET_GenericReturnValue
      55         7621 : TALER_TESTING_get_trait (const struct TALER_TESTING_Trait *traits,
      56              :                          const void **ret,
      57              :                          const char *trait,
      58              :                          unsigned int index)
      59              : {
      60        36492 :   for (unsigned int i = 0; NULL != traits[i].trait_name; i++)
      61              :   {
      62        35863 :     if ( (0 == strcmp (trait,
      63        35863 :                        traits[i].trait_name)) &&
      64         7100 :          (index == traits[i].index) )
      65              :     {
      66         6992 :       *ret = (void *) traits[i].ptr;
      67         6992 :       return GNUNET_OK;
      68              :     }
      69              :   }
      70          629 :   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
      71              :               "Trait %s/%u not found.\n",
      72              :               trait,
      73              :               index);
      74          629 :   return GNUNET_SYSERR;
      75              : }
      76              : 
      77              : 
      78              : const char *
      79          510 : TALER_TESTING_get_exchange_url (struct TALER_TESTING_Interpreter *is)
      80              : {
      81              :   const char *exchange_url;
      82              :   const struct TALER_TESTING_Command *exchange_cmd;
      83              : 
      84              :   exchange_cmd
      85          510 :     = TALER_TESTING_interpreter_get_command (is,
      86              :                                              "exchange");
      87          510 :   if (NULL == exchange_cmd)
      88              :   {
      89            0 :     GNUNET_break (0);
      90            0 :     TALER_TESTING_interpreter_fail (is);
      91            0 :     return NULL;
      92              :   }
      93          510 :   if (GNUNET_OK !=
      94          510 :       TALER_TESTING_get_trait_exchange_url (exchange_cmd,
      95              :                                             &exchange_url))
      96              :   {
      97            0 :     GNUNET_break (0);
      98            0 :     TALER_TESTING_interpreter_fail (is);
      99            0 :     return NULL;
     100              :   }
     101          510 :   return exchange_url;
     102              : }
     103              : 
     104              : 
     105              : struct TALER_EXCHANGE_Keys *
     106          465 : TALER_TESTING_get_keys (
     107              :   struct TALER_TESTING_Interpreter *is)
     108              : {
     109              :   struct TALER_EXCHANGE_Keys *keys;
     110              :   const struct TALER_TESTING_Command *exchange_cmd;
     111              : 
     112              :   exchange_cmd
     113          465 :     = TALER_TESTING_interpreter_get_command (is,
     114              :                                              "exchange");
     115          465 :   if (NULL == exchange_cmd)
     116              :   {
     117            0 :     GNUNET_break (0);
     118            0 :     TALER_TESTING_interpreter_fail (is);
     119            0 :     return NULL;
     120              :   }
     121          465 :   if (GNUNET_OK !=
     122          465 :       TALER_TESTING_get_trait_keys (exchange_cmd,
     123              :                                     &keys))
     124              :   {
     125            0 :     GNUNET_break (0);
     126            0 :     TALER_TESTING_interpreter_fail (is);
     127            0 :     return NULL;
     128              :   }
     129          465 :   return keys;
     130              : }
     131              : 
     132              : 
     133              : /* end of testing_api_traits.c */
        

Generated by: LCOV version 2.0-1