From b82a593dbbf5cf4332bd473e17421d230dbeeff8 Mon Sep 17 00:00:00 2001 From: Sree Harsha Totakura Date: Thu, 5 Mar 2015 15:59:22 +0100 Subject: [PATCH] db: Add testcase for DB layer --- src/mint/Makefile.am | 11 +++++- src/mint/test_mint_db.c | 81 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 src/mint/test_mint_db.c diff --git a/src/mint/Makefile.am b/src/mint/Makefile.am index af0b48e84..19fba62f0 100644 --- a/src/mint/Makefile.am +++ b/src/mint/Makefile.am @@ -101,7 +101,8 @@ taler_mint_dbinit_LDFLAGS = $(POSTGRESQL_LDFLAGS) check_PROGRAMS = \ test-mint-deposits \ - test-mint-common + test-mint-common \ + test-mint-db test_mint_deposits_SOURCES = \ test_mint_deposits.c @@ -120,3 +121,11 @@ test_mint_common_LDADD = \ $(top_srcdir)/src/util/libtalerutil.la \ $(top_srcdir)/src/pq/libtalerpq.la \ -lgnunetutil + +test_mint_db_SOURCES = \ + test_mint_db.c +test_mint_db_LDADD = \ + libtalermint_common.la \ + $(top_srcdir)/src/util/libtalerutil.la \ + $(top_srcdir)/src/pq/libtalerpq.la \ + -lgnunetutil diff --git a/src/mint/test_mint_db.c b/src/mint/test_mint_db.c new file mode 100644 index 000000000..4fa84eb38 --- /dev/null +++ b/src/mint/test_mint_db.c @@ -0,0 +1,81 @@ +/* + This file is part of TALER + Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors) + + 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. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see +*/ + +/** + * @file mint/test_mint_db.c + * @brief test cases for DB interaction functions + * @author Sree Harsha Totakura + */ + +#include "platform.h" +#include "mint_db.h" + +static int result; + + +/** + * 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 + */ +static void +run (void *cls, char *const *args, const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *config) +{ + PGconn *db; + + db = NULL; + if (GNUNET_OK != TALER_MINT_DB_init ("postgres:///taler")) + { + result = 1; + return; + } + if (GNUNET_OK != TALER_MINT_DB_create_tables (GNUNET_YES)) + { + result = 2; + goto drop; + } + if (NULL == (db = TALER_MINT_DB_get_connection(GNUNET_YES))) + { + result = 3; + goto drop; + } + result = 0; + drop: + if (NULL != db) + GNUNET_break (GNUNET_OK == TALER_MINT_DB_drop_temporary (db)); +} + + +int +main (int argc, char *const argv[]) +{ + static const struct GNUNET_GETOPT_CommandLineOption options[] = { + GNUNET_GETOPT_OPTION_END + }; + + result = -1; + if (GNUNET_OK != + GNUNET_PROGRAM_run (argc, argv, + "test-mint-db", + "Test cases for mint database helper functions.", + options, &run, NULL)) + return 3; + return result; +}