summaryrefslogtreecommitdiff
path: root/src/exchange-lib/testing_api_traits.c
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2018-01-23 10:28:24 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2018-02-12 16:12:07 +0100
commitfe6960cce854cd4c665a27c4368e4397c8e7bcfb (patch)
tree162a95572079b3e7a014cb845ee028329a06f5f8 /src/exchange-lib/testing_api_traits.c
parentb198bb3867b6a15c65a8860af12d7a634de906a0 (diff)
downloadexchange-fe6960cce854cd4c665a27c4368e4397c8e7bcfb.tar.gz
exchange-fe6960cce854cd4c665a27c4368e4397c8e7bcfb.tar.bz2
exchange-fe6960cce854cd4c665a27c4368e4397c8e7bcfb.zip
Implement new traits-based tests.
Diffstat (limited to 'src/exchange-lib/testing_api_traits.c')
-rw-r--r--src/exchange-lib/testing_api_traits.c54
1 files changed, 32 insertions, 22 deletions
diff --git a/src/exchange-lib/testing_api_traits.c b/src/exchange-lib/testing_api_traits.c
index 3983d3209..c83c7e778 100644
--- a/src/exchange-lib/testing_api_traits.c
+++ b/src/exchange-lib/testing_api_traits.c
@@ -2,16 +2,18 @@
This file is part of TALER
Copyright (C) 2018 Taler Systems SA
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
+ TALER is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 3, or
+ (at your option) any later version.
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ TALER is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, see
+ You should have received a copy of the GNU General Public
+ License along with TALER; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
*/
/**
@@ -28,11 +30,15 @@
#include "taler_testing_lib.h"
+/**
+ * End a trait array. Usually, commands offer several traits,
+ * and put them in arrays.
+ */
struct TALER_TESTING_Trait
TALER_TESTING_trait_end ()
{
struct TALER_TESTING_Trait end = {
- .selector = NULL,
+ .index = 0,
.trait_name = NULL,
.ptr = NULL
};
@@ -40,31 +46,35 @@ TALER_TESTING_trait_end ()
return end;
}
-
+/**
+ * Pick the chosen trait from the traits array.
+ *
+ * @param traits the traits array
+ * @param ret where to store the result
+ * @param selector which particular object in the trait should be
+ * returned
+ *
+ * @return GNUNET_OK if no error occurred, GNUNET_SYSERR otherwise
+ */
int
TALER_TESTING_get_trait (const struct TALER_TESTING_Trait *traits,
void **ret,
const char *trait,
- const char *selector)
+ unsigned int index)
{
- for (unsigned int i=0;
- NULL != traits[i].trait_name;
- i++)
+ for (unsigned int i=0; NULL != traits[i].trait_name; i++)
{
- if ( (0 == strcmp (trait,
- traits[i].trait_name)) &&
- ( (NULL == selector) ||
- (0 == strcasecmp (selector,
- traits[i].selector) ) ) )
+ if ( (0 == strcmp (trait, traits[i].trait_name)) &&
+ (index == traits[i].index) )
{
*ret = (void *) traits[i].ptr;
return GNUNET_OK;
}
}
- /* FIXME: log */
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Trait %s/%u not found.\n",
+ trait, index);
return GNUNET_SYSERR;
}
-
-
/* end of testing_api_traits.c */