diff options
| author | Christian Grothoff <christian@grothoff.org> | 2015-03-24 18:27:24 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2015-03-24 18:27:24 +0100 | 
| commit | a3ac2587cfee3c8b6e058d4086eea8f5f297e5af (patch) | |
| tree | 61e4e8881d2c7d0952a44f75f08582b852789169 /src/mint/test_mint_deposits.c | |
| parent | ec05a64e3e6346ea91b79244a0a69b06afd22562 (diff) | |
| parent | 324bf3f980542cb9f209ee7edc6f142c5c34e5a2 (diff) | |
Merge branch 'master' of git.taler.net:/var/git/mint
Diffstat (limited to 'src/mint/test_mint_deposits.c')
| -rw-r--r-- | src/mint/test_mint_deposits.c | 102 | 
1 files changed, 29 insertions, 73 deletions
| diff --git a/src/mint/test_mint_deposits.c b/src/mint/test_mint_deposits.c index 5ad8006e..4107c1ae 100644 --- a/src/mint/test_mint_deposits.c +++ b/src/mint/test_mint_deposits.c @@ -13,17 +13,15 @@    You should have received a copy of the GNU General Public License along with    TALER; see the file COPYING.  If not, If not, see <http://www.gnu.org/licenses/>  */ -  /**   * @file mint/test_mint_deposits.c   * @brief testcase for mint deposits   * @author Sree Harsha Totakura <sreeharsha@totakura.in>   */ -  #include "platform.h"  #include <libpq-fe.h>  #include <gnunet/gnunet_util_lib.h> -#include "mint_db.h" +#include "plugin.h"  #include "db_pq.h"  #include "taler-mint-httpd.h" @@ -44,11 +42,6 @@  /** - * DB connection handle - */ -static PGconn *conn; - -/**   * Should we not interact with a temporary table?   */  static int persistent; @@ -59,64 +52,19 @@ static int persistent;  static int result; -int -TALER_MINT_DB_init_deposits (PGconn *conn, int tmp) -{ -  const char *tmp_str = (1 == tmp) ? "TEMPORARY" : ""; -  char *sql; -  PGresult *res; -  int ret; - -  res = NULL; -  (void) GNUNET_asprintf (&sql, -                          "CREATE %1$s TABLE IF NOT EXISTS deposits (" -                          " coin_pub BYTEA NOT NULL PRIMARY KEY CHECK (length(coin_pub)=32)" -                          ",denom_pub BYTEA NOT NULL CHECK (length(denom_pub)=32)" -                          ",transaction_id INT8 NOT NULL" -                          ",amount_value INT4 NOT NULL" -                          ",amount_fraction INT4 NOT NULL" -                          ",amount_currency VARCHAR(4) NOT NULL" -                          ",merchant_pub BYTEA NOT NULL" -                          ",h_contract BYTEA NOT NULL CHECK (length(h_contract)=64)" -                          ",h_wire BYTEA NOT NULL CHECK (length(h_wire)=64)" -                          ",coin_sig BYTEA NOT NULL CHECK (length(coin_sig)=64)" -                          ",wire TEXT NOT NULL" -                          ")", -                          tmp_str); -  res = PQexec (conn, sql); -  GNUNET_free (sql); -  if (PGRES_COMMAND_OK != PQresultStatus (res)) -  { -    break_db_err (res); -    ret = GNUNET_SYSERR; -  } -  else -    ret = GNUNET_OK; -  PQclear (res); -  return ret; -} - - -static void -do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) -{ -  if (NULL != conn) -    PQfinish (conn); -  conn = NULL; -} - -  /**   * Main function that will be run by the scheduler.   *   * @param cls closure   * @param args remaining command-line arguments   * @param cfgfile name of the configuration file used (for saving, can be NULL!) - * @param config configuration + * @param cfg configuration   */  static void -run (void *cls, char *const *args, const char *cfgfile, -     const struct GNUNET_CONFIGURATION_Handle *config) +run (void *cls, +     char *const *args, +     const char *cfgfile, +     const struct GNUNET_CONFIGURATION_Handle *cfg)  {    static const char wire[] = "{"        "\"type\":\"SEPA\"," @@ -126,13 +74,16 @@ run (void *cls, char *const *args, const char *cfgfile,        "}";    struct Deposit *deposit;    uint64_t transaction_id; +  struct TALER_MINTDB_Session *session;    deposit = NULL; -  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, -                                &do_shutdown, NULL); -  EXITIF (NULL == (conn = PQconnectdb(DB_URI))); -  EXITIF (GNUNET_OK != TALER_MINT_DB_init_deposits (conn, !persistent)); -  EXITIF (GNUNET_OK != TALER_MINT_DB_prepare (conn)); +  EXITIF (GNUNET_OK != TALER_MINT_plugin_load (cfg)); +  EXITIF (GNUNET_OK != +          plugin->create_tables (plugin->cls, +                                 ! persistent)); +  session = plugin->get_session (plugin->cls, +                                 ! persistent); +  EXITIF (NULL == session);    deposit = GNUNET_malloc (sizeof (struct Deposit) + sizeof (wire));    /* Makeup a random coin public key */    GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK, @@ -143,28 +94,33 @@ run (void *cls, char *const *args, const char *cfgfile,                                               UINT64_MAX);    deposit->transaction_id = GNUNET_htonll (transaction_id);    /* Random amount */ -  deposit->amount.value = +  deposit->amount_with_fee.value =        htonl (GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, UINT32_MAX)); -  deposit->amount.fraction = +  deposit->amount_with_fee.fraction =        htonl (GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, UINT32_MAX)); -  GNUNET_assert (strlen (MINT_CURRENCY) < sizeof (deposit->amount.currency)); -  strcpy (deposit->amount.currency, MINT_CURRENCY); +  GNUNET_assert (strlen (MINT_CURRENCY) < sizeof (deposit->amount_with_fee.currency)); +  strcpy (deposit->amount_with_fee.currency, MINT_CURRENCY);    /* Copy wireformat */    deposit->wire = json_loads (wire, 0, NULL); -  EXITIF (GNUNET_OK != TALER_MINT_DB_insert_deposit (conn, -                                                     deposit)); -  EXITIF (GNUNET_OK != TALER_MINT_DB_have_deposit (conn, -                                                   deposit)); +  EXITIF (GNUNET_OK != +          plugin->insert_deposit (plugin->cls, +                                  session, +                                  deposit)); +  EXITIF (GNUNET_OK != +          plugin->have_deposit (plugin->cls, +                                session, +                                deposit));    result = GNUNET_OK;   EXITIF_exit:    GNUNET_free_non_null (deposit); -  GNUNET_SCHEDULER_shutdown ();    return;  } -int main(int argc, char *const argv[]) +int +main (int argc, +      char *const argv[])  {    static const struct GNUNET_GETOPT_CommandLineOption options[] = {      {'T', "persist", NULL, | 
