Index: /trunk/glueforge/glueforge.in
===================================================================
--- /trunk/glueforge/glueforge.in	(revision 4001)
+++ /trunk/glueforge/glueforge.in	(revision 4002)
@@ -3,5 +3,5 @@
 # Copyright (C) 2005  Joshua Hoblitt
 #
-# $Id: glueforge.in,v 1.9 2005-05-13 22:00:15 jhoblitt Exp $
+# $Id: glueforge.in,v 1.10 2005-05-20 02:00:17 jhoblitt Exp $
 
 use strict;
@@ -87,4 +87,9 @@
     'header.tt'             => "$output/src/$data{file_name}.h",
     'code.tt'               => "$output/src/$data{file_name}.c",
+    'tests_makefile_am.tt'  => "$output/tests/Makefile.am",
+    'testsuite_at.tt'       => "$output/tests/testsuite.at",
+    'dbsetup_c.tt'          => "$output/tests/dbsetup.c",
+    'dbcleanup_c.tt'        => "$output/tests/dbcleanup.c",
+    'init_c.tt'             => "$output/tests/init.c",
 );
 
Index: /trunk/glueforge/templates/psdb/configure_ac.tt
===================================================================
--- /trunk/glueforge/templates/psdb/configure_ac.tt	(revision 4001)
+++ /trunk/glueforge/templates/psdb/configure_ac.tt	(revision 4002)
@@ -9,4 +9,8 @@
 AM_CONFIG_HEADER([config.h])
 AM_MAINTAINER_MODE
+
+AC_CONFIG_TESTDIR([tests])
+AC_CONFIG_FILES([tests/Makefile])
+AM_MISSING_PROG([AUTOM4TE], [autom4te])
 
 AC_LANG(C)
@@ -21,4 +25,8 @@
 AC_SUBST([[% pkg_name %]_CFLAGS])
 
-AC_CONFIG_FILES([% pkg_name %].pc Makefile src/Makefile)
+AC_CONFIG_FILES([
+  Makefile
+  src/Makefile
+  [% pkg_name %].pc
+])
 AC_OUTPUT
Index: /trunk/glueforge/templates/psdb/dbcleanup_c.tt
===================================================================
--- /trunk/glueforge/templates/psdb/dbcleanup_c.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/dbcleanup_c.tt	(revision 4002)
@@ -0,0 +1,14 @@
+#include <pslib.h>
+#include <stdlib.h>
+
+int main () {
+    psDB            *dbh;
+
+    dbh = psDBInit("localhost", "test", NULL, "test");
+    if (!dbh) {
+        exit(EXIT_FAILURE);
+    }
+    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS [% table_name %]");
+
+    exit(EXIT_SUCCESS);
+}
Index: /trunk/glueforge/templates/psdb/dbsetup_c.tt
===================================================================
--- /trunk/glueforge/templates/psdb/dbsetup_c.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/dbsetup_c.tt	(revision 4002)
@@ -0,0 +1,21 @@
+#include <pslib.h>
+#include <[% pkg_name %].h>
+#include <stdlib.h>
+
+int main () {
+    psDB            *dbh;
+
+    dbh = psDBInit("localhost", "test", NULL, "test");
+    if (!dbh) {
+        exit(EXIT_FAILURE);
+    }
+
+    // stop the useless psListAdd messages
+    psLogSetLevel(1);
+
+    // remove the table if it already exists
+    p_psDBRunQuery(dbh, "DROP TABLE IF EXISTS [% table_name %]");
+    [% namespace %]CreateTable(dbh);
+
+    exit(EXIT_SUCCESS);
+}
Index: /trunk/glueforge/templates/psdb/init_at.tt
===================================================================
--- /trunk/glueforge/templates/psdb/init_at.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/init_at.tt	(revision 4002)
@@ -0,0 +1,6 @@
+AT_SETUP([[% namespace %]Init() - Opens a new database connection])
+AT_KEYWORDS([[% namespace %]Init])
+
+AT_CHECK([init])
+
+AT_CLEANUP
Index: /trunk/glueforge/templates/psdb/init_c.tt
===================================================================
--- /trunk/glueforge/templates/psdb/init_c.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/init_c.tt	(revision 4002)
@@ -0,0 +1,14 @@
+#include <pslib.h>
+#include <[% pkg_name %].h>
+#include <stdlib.h>
+
+int main () {
+    psDB            *dbh;
+
+    dbh = [% namespace %]Init("localhost", "test", NULL, "test");
+    if (!dbh) {
+        exit(EXIT_FAILURE);
+    }
+
+    exit(EXIT_SUCCESS);
+}
Index: /trunk/glueforge/templates/psdb/tests_makefile_am.tt
===================================================================
--- /trunk/glueforge/templates/psdb/tests_makefile_am.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/tests_makefile_am.tt	(revision 4002)
@@ -0,0 +1,63 @@
+
+# copied from bison-1.875d
+
+EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4
+
+DISTCLEANFILES       = atconfig $(check_SCRIPTS)
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
+
+## ------------ ##
+## package.m4.  ##
+## ------------ ##
+
+$(srcdir)/package.m4: $(top_srcdir)/configure.ac
+	{					\
+	  echo '# Signature of the current package.'; \
+	  echo 'm4_define([AT_PACKAGE_NAME],      [@PACKAGE_NAME@])'; \
+	  echo 'm4_define([AT_PACKAGE_TARNAME],   [@PACKAGE_TARNAME@])'; \
+	  echo 'm4_define([AT_PACKAGE_VERSION],   [@PACKAGE_VERSION@])'; \
+	  echo 'm4_define([AT_PACKAGE_STRING],    [@PACKAGE_STRING@])'; \
+	  echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
+	} >$(srcdir)/package.m4
+
+## ------------ ##
+## Test suite.  ##
+## ------------ ##
+
+#TESTSUITE_AT = \
+#	init.at \
+#	cleanup.at \
+#	createtable.at
+
+TESTSUITE = $(srcdir)/testsuite
+
+AUTOTEST = $(AUTOM4TE) --language=autotest
+$(TESTSUITE): package.m4 $(TESTSUITE_AT)
+	$(AUTOTEST) -I $(srcdir) testsuite.at -o $@.tmp
+	mv $@.tmp $@
+
+atconfig: $(top_builddir)/config.status
+	cd $(top_builddir) && ./config.status tests/$@
+
+clean-local:
+	test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean
+
+check-local: atconfig $(TESTSUITE)
+	$(SHELL) $(TESTSUITE)
+
+#
+# END BISON
+#
+#
+
+TESTS = \
+	init #\
+#	cleanup
+#	createtable
+
+AM_CPPFLAGS = -I$(top_srcdir)/src$
+AM_CFLAGS   = @[% pkg_name %]_CFLAGS@ $(PSLIB_CFLAGS)$
+AM_LDFLAGS  = $(PSLIB_LIBS)$
+LDADD       = $(top_builddir)/src/lib[% pkg_name %].la$
+
+noinst_PROGRAMS = dbsetup dbcleanup $(TESTS)
Index: /trunk/glueforge/templates/psdb/testsuite_at.tt
===================================================================
--- /trunk/glueforge/templates/psdb/testsuite_at.tt	(revision 4002)
+++ /trunk/glueforge/templates/psdb/testsuite_at.tt	(revision 4002)
@@ -0,0 +1,8 @@
+m4_version_prereq([2.59])
+
+AT_INIT
+
+#m4_include([init.at])
+[% INCLUDE init_at.tt %]
+
+#m4_include([createtable.at])
Index: /trunk/glueforge/templates/psdb/top_makefile_am.tt
===================================================================
--- /trunk/glueforge/templates/psdb/top_makefile_am.tt	(revision 4001)
+++ /trunk/glueforge/templates/psdb/top_makefile_am.tt	(revision 4002)
@@ -1,3 +1,3 @@
-SUBDIRS = src
+SUBDIRS = src tests
 
 pkgconfigdir = $(libdir)/pkgconfig
