Work on test infrastructure.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5434 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/g2-gog-integ
Dave Peticolas 25 years ago
parent 97ba57c214
commit 8f95f763e8

@ -217,6 +217,7 @@ test_real_commodity(const char *tag, gpointer globaldata, gpointer data)
int
main(int argc, char **argv)
{
gnc_engine_init (argc, argv);
if(argc > 1)
{
test_files_in_dir(argc, argv, test_real_commodity,

@ -1,2 +1,3 @@
Makefile
Makefile.in
gnc_test

@ -1,7 +1,32 @@
TESTS=test-load-module
TESTS = \
test-load-module \
test-db
TESTS_ENVIRONMENT=\
GNC_MODULE_PATH=${top_srcdir}/src/engine:${top_srcdir}/src/backend/postgres \
GUILE_LOAD_PATH=${G_WRAP_MODULE_DIR}:..:${top_srcdir}/src/gnc-module \
LTDL_LIBRARY_PATH=${top_srcdir}/src/gnc-module \
LD_LIBRARY_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/src/gnc-module/.libs:${top_srcdir}/src/engine:${top_srcdir}/src/engine/.libs
noinst_PROGRAMS = \
test-db
LDADD = -L${top_srcdir}/src/gnc-module -L${top_srcdir}/src/gnc-module/.libs \
-L${top_srcdir}/src/engine -L${top_srcdir}/src/engine/.libs \
${top_srcdir}/src/test-core/libgncmod-test.la \
${top_srcdir}/src/gnc-module/libgncmodule.la \
${top_srcdir}/src/engine/libgncmod-engine.la \
${top_srcdir}/src/engine/test-core/libgncmod-test-engine.la \
-lltdl
CFLAGS = ${GLIB_CFLAGS}
INCLUDES = \
-I${top_srcdir}/src/gnc-module \
-I${top_srcdir}/src/test-core \
-I${top_srcdir}/src/engine \
-I${top_srcdir}/src/engine/test-core \
-I..
EXTRA_DIST = \
db-control.sh

@ -0,0 +1,26 @@
#!/bin/sh
EXIT_VALUE=0
DB=$PWD/gnc_test
case $1 in
create)
rm -rf $DB
initdb $DB || EXIT_VALUE=1
;;
destroy)
rm -rf $DB
;;
start)
pg_ctl -D $DB -o "-p 7777" start
;;
stop)
pg_ctl -D $DB -o "-p 7777" stop
;;
*)
echo "Bad command: $1"
;;
esac
exit $EXIT_VALUE

@ -0,0 +1,38 @@
#include <glib.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include "Backend.h"
#include "TransLog.h"
#include "gnc-book.h"
#include "gnc-engine.h"
#include "gnc-module.h"
#include "test-stuff.h"
#include "test-engine-stuff.h"
static void
guile_main (int argc, char **argv)
{
gnc_module_system_init ();
gnc_module_load ("gnucash/engine", 0);
gnc_engine_init (argc, argv);
xaccLogDisable ();
print_test_results ();
exit (get_rv ());
}
int
main (int argc, char ** argv)
{
gh_enter (argc, argv, guile_main);
return 0;
}

@ -16,8 +16,16 @@
#include "test-engine-stuff.h"
#include "test-stuff.h"
static gboolean add_comms_to_engine = TRUE;
/***********************************************************************/
void
add_random_commodities_to_engine (gboolean add)
{
add_comms_to_engine = add;
}
Timespec*
get_random_timespec(void)
{
@ -110,14 +118,11 @@ get_random_price(void)
return p;
}
GNCPriceDB *
get_random_pricedb(void)
void
make_random_pricedb (GNCPriceDB *db)
{
GNCPriceDB *db;
int num_prices;
db = gnc_pricedb_create ();
num_prices = get_random_int_in_range (0, 40);
while (num_prices-- > 0)
@ -130,6 +135,15 @@ get_random_pricedb(void)
gnc_price_unref (p);
}
}
GNCPriceDB *
get_random_pricedb(void)
{
GNCPriceDB *db;
db = gnc_pricedb_create ();
make_random_pricedb (db);
return db;
}
@ -506,18 +520,33 @@ get_random_commodity(void)
gchar *xcode;
int ran_int;
name = get_random_string();
space = get_random_commodity_namespace();
mn = get_random_string();
space = get_random_commodity_namespace();
if (add_comms_to_engine)
{
ret = gnc_commodity_table_lookup (gnc_engine_commodities (), space, mn);
if (ret)
{
g_free (mn);
return ret;
}
}
name = get_random_string();
xcode = get_random_string();
ran_int = get_random_int_in_range(1, 100000);
ret = gnc_commodity_new(name, space, mn, xcode, ran_int);
ret = gnc_commodity_new (name, space, mn, xcode, ran_int);
g_free(name);
g_free(mn);
g_free(name);
g_free(xcode);
if (add_comms_to_engine)
ret = gnc_commodity_table_insert (gnc_engine_commodities (), ret);
return ret;
}
@ -708,3 +737,16 @@ get_random_query(void)
return q;
}
GNCBook *
get_random_book (void)
{
GNCBook *book;
book = gnc_book_new ();
gnc_book_set_group (book, get_random_group ());
/* make_random_pricedb (gnc_book_get_pricedb (book)); */
return book;
}

@ -9,7 +9,7 @@
#include <glib.h>
#include <stdlib.h>
#include "Group.h"
#include "gnc-book.h"
#include "Query.h"
#include "date.h"
#include "gnc-pricedb.h"
@ -33,6 +33,7 @@ GUID* get_random_guid(void);
GList* get_random_glist(void);
GNCPrice * get_random_price(void);
void make_random_pricedb (GNCPriceDB *pdb);
GNCPriceDB * get_random_pricedb(void);
AccountGroup * get_random_group(void);
Account* get_random_account(void);
@ -43,5 +44,9 @@ const char *get_random_commodity_namespace(void);
Query* get_random_query(void);
GNCBook * get_random_book (void);
void add_random_commodities_to_engine (gboolean add);
#endif

@ -3,6 +3,7 @@
#include "gnc-engine-util.h"
#include "gnc-commodity.h"
#include "gnc-engine.h"
#include "test-engine-stuff.h"
#include "test-stuff.h"
@ -146,6 +147,8 @@ test_commodity(void)
int
main(int argc, char **argv)
{
gnc_engine_init (argc, argv);
add_random_commodities_to_engine (FALSE);
test_commodity();
print_test_results();
exit(get_rv());

Loading…
Cancel
Save