From 274adf39c78bf9050ed34815a3472e9e418dd165 Mon Sep 17 00:00:00 2001
From: Dan Goodliffe <dan@randomdan.homeip.net>
Date: Thu, 24 Sep 2015 03:04:15 +0100
Subject: ODBC mocking and tests from Project2

---
 libodbcpp/Jamfile.jam              |   8 +-
 libodbcpp/connection.cpp           |   2 +
 libodbcpp/mock.cpp                 |  32 ++
 libodbcpp/mock.h                   |  25 ++
 libodbcpp/unittests/Jamfile.jam    |  18 +
 libodbcpp/unittests/bulk.sample    | 800 +++++++++++++++++++++++++++++++++++++
 libodbcpp/unittests/odbcschema.sql |   8 +
 libodbcpp/unittests/testodbc.cpp   | 101 +++++
 8 files changed, 992 insertions(+), 2 deletions(-)
 create mode 100644 libodbcpp/mock.cpp
 create mode 100644 libodbcpp/mock.h
 create mode 100644 libodbcpp/unittests/Jamfile.jam
 create mode 100644 libodbcpp/unittests/bulk.sample
 create mode 100644 libodbcpp/unittests/odbcschema.sql
 create mode 100644 libodbcpp/unittests/testodbc.cpp

(limited to 'libodbcpp')

diff --git a/libodbcpp/Jamfile.jam b/libodbcpp/Jamfile.jam
index 61ccc60..9cd4f7f 100644
--- a/libodbcpp/Jamfile.jam
+++ b/libodbcpp/Jamfile.jam
@@ -5,14 +5,18 @@ alias glibmm : : : :
 
 lib odbc : : <name>odbc ;
 
-lib odbcpp :
+lib dbpp-odbc :
 	[ glob *.cpp ] :
-	<cflags>-fPIC
 	<library>glibmm 
 	<library>odbc 
 	<library>../libdbpp
+	<cflags>-fvisibility=hidden
+	<variant>release:<cflags>-flto
 	: :
 	<include>.
 	<library>glibmm 
 	<library>../libdbpp
 	;
+
+build-project unittests ;
+
diff --git a/libodbcpp/connection.cpp b/libodbcpp/connection.cpp
index 29a716c..7e71b94 100644
--- a/libodbcpp/connection.cpp
+++ b/libodbcpp/connection.cpp
@@ -8,6 +8,8 @@
 #include "modifycommand.h"
 #include "error.h"
 
+NAMEDFACTORY("odbc", ODBC::Connection, DB::ConnectionFactory);
+
 ODBC::Connection::Connection(const DSN& d) :
 	env(0),
 	conn(0),
diff --git a/libodbcpp/mock.cpp b/libodbcpp/mock.cpp
new file mode 100644
index 0000000..58d5afd
--- /dev/null
+++ b/libodbcpp/mock.cpp
@@ -0,0 +1,32 @@
+#include "connection.h"
+#include "mock.h"
+#include <buffer.h>
+
+namespace ODBC {
+
+Mock::Mock(const std::string & masterdb, const std::string & name, const std::vector<boost::filesystem::path> & ss) :
+	MockServerDatabase(masterdb, name, "odbc")
+{
+	CreateNewDatabase();
+	PlaySchemaScripts(ss);
+}
+
+DB::Connection *
+Mock::openConnection() const
+{
+	return new Connection(stringbf("Driver=postgresql;Database=%s;uid=postgres;servername=/run/postgresql", testDbName));
+}
+
+Mock::~Mock()
+{
+	DropDatabase();
+}
+
+void Mock::DropDatabase() const
+{
+	master->execute("SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '" + testDbName + "'");
+	MockServerDatabase::DropDatabase();
+}
+
+}
+
diff --git a/libodbcpp/mock.h b/libodbcpp/mock.h
new file mode 100644
index 0000000..d2bcbfe
--- /dev/null
+++ b/libodbcpp/mock.h
@@ -0,0 +1,25 @@
+#ifndef MOCKODBCDATASOURCE_H
+#define MOCKODBCDATASOURCE_H
+
+#include <mockDatabase.h>
+#include <boost/filesystem/path.hpp>
+#include <visibility.h>
+
+namespace ODBC {
+
+class DLL_PUBLIC Mock : public DB::MockServerDatabase {
+	public:
+		Mock(const std::string & master, const std::string & name, const std::vector<boost::filesystem::path> & ss);
+		~Mock();
+
+	protected:
+		void DropDatabase() const override;
+
+	private:
+		DB::Connection * openConnection() const override;
+};
+
+}
+
+#endif
+
diff --git a/libodbcpp/unittests/Jamfile.jam b/libodbcpp/unittests/Jamfile.jam
new file mode 100644
index 0000000..d5b1ec3
--- /dev/null
+++ b/libodbcpp/unittests/Jamfile.jam
@@ -0,0 +1,18 @@
+import testing ;
+
+path-constant me : . ;
+
+lib boost_utf : : <name>boost_unit_test_framework ;
+
+run
+	testodbc.cpp
+	: : :
+	<define>ROOT=\"$(me)\"
+	<define>BOOST_TEST_DYN_LINK
+	<library>..//dbpp-odbc
+	<library>../../libdbpp//dbpptestcore
+	<library>boost_utf
+	:
+	testodbc
+	;
+
diff --git a/libodbcpp/unittests/bulk.sample b/libodbcpp/unittests/bulk.sample
new file mode 100644
index 0000000..ae81633
--- /dev/null
+++ b/libodbcpp/unittests/bulk.sample
@@ -0,0 +1,800 @@
+1	/usr/portage/
+2	/usr/portage/games-rpg
+3	/usr/portage/games-rpg/penumbra-collection
+4	/usr/portage/games-rpg/penumbra-collection/ChangeLog
+5	/usr/portage/games-rpg/penumbra-collection/Manifest
+6	/usr/portage/games-rpg/penumbra-collection/metadata.xml
+7	/usr/portage/games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild
+8	/usr/portage/games-rpg/arx-fatalis-data
+9	/usr/portage/games-rpg/arx-fatalis-data/ChangeLog
+10	/usr/portage/games-rpg/arx-fatalis-data/Manifest
+11	/usr/portage/games-rpg/arx-fatalis-data/metadata.xml
+12	/usr/portage/games-rpg/arx-fatalis-data/arx-fatalis-data-1.21-r2.ebuild
+13	/usr/portage/games-rpg/arx-fatalis-data/arx-fatalis-data-1.21-r1.ebuild
+14	/usr/portage/games-rpg/nwmouse
+15	/usr/portage/games-rpg/nwmouse/ChangeLog
+16	/usr/portage/games-rpg/nwmouse/Manifest
+17	/usr/portage/games-rpg/nwmouse/metadata.xml
+18	/usr/portage/games-rpg/nwmouse/nwmouse-20090906.183839.ebuild
+19	/usr/portage/games-rpg/bass
+20	/usr/portage/games-rpg/bass/ChangeLog
+21	/usr/portage/games-rpg/bass/Manifest
+22	/usr/portage/games-rpg/bass/metadata.xml
+23	/usr/portage/games-rpg/bass/bass-1.2-r1.ebuild
+24	/usr/portage/games-rpg/bass/files
+25	/usr/portage/games-rpg/bass/files/scummvmGetLang.sh
+26	/usr/portage/games-rpg/a-bird-story
+27	/usr/portage/games-rpg/a-bird-story/ChangeLog
+28	/usr/portage/games-rpg/a-bird-story/Manifest
+29	/usr/portage/games-rpg/a-bird-story/metadata.xml
+30	/usr/portage/games-rpg/a-bird-story/a-bird-story-20141106.ebuild
+31	/usr/portage/games-rpg/nwn-shadowlordsdreamcatcherdemon
+32	/usr/portage/games-rpg/nwn-shadowlordsdreamcatcherdemon/ChangeLog
+33	/usr/portage/games-rpg/nwn-shadowlordsdreamcatcherdemon/Manifest
+34	/usr/portage/games-rpg/nwn-shadowlordsdreamcatcherdemon/metadata.xml
+35	/usr/portage/games-rpg/nwn-shadowlordsdreamcatcherdemon/nwn-shadowlordsdreamcatcherdemon-1.ebuild
+36	/usr/portage/games-rpg/eschalon-book-1-demo
+37	/usr/portage/games-rpg/eschalon-book-1-demo/ChangeLog
+38	/usr/portage/games-rpg/eschalon-book-1-demo/eschalon-book-1-demo-106.ebuild
+39	/usr/portage/games-rpg/eschalon-book-1-demo/Manifest
+40	/usr/portage/games-rpg/eschalon-book-1-demo/metadata.xml
+41	/usr/portage/games-rpg/openglad
+42	/usr/portage/games-rpg/openglad/ChangeLog
+43	/usr/portage/games-rpg/openglad/Manifest
+44	/usr/portage/games-rpg/openglad/metadata.xml
+45	/usr/portage/games-rpg/openglad/files
+46	/usr/portage/games-rpg/openglad/files/openglad-0.98-gcc43.patch
+47	/usr/portage/games-rpg/openglad/files/0.98-gladpack.c.patch
+48	/usr/portage/games-rpg/openglad/files/openglad-0.98-ovfl.patch
+49	/usr/portage/games-rpg/openglad/openglad-0.98.ebuild
+50	/usr/portage/games-rpg/dungeon-defenders
+51	/usr/portage/games-rpg/dungeon-defenders/ChangeLog
+52	/usr/portage/games-rpg/dungeon-defenders/dungeon-defenders-20130305.ebuild
+53	/usr/portage/games-rpg/dungeon-defenders/Manifest
+54	/usr/portage/games-rpg/dungeon-defenders/metadata.xml
+55	/usr/portage/games-rpg/xu4
+56	/usr/portage/games-rpg/xu4/ChangeLog
+57	/usr/portage/games-rpg/xu4/Manifest
+58	/usr/portage/games-rpg/xu4/xu4-0.9.ebuild
+59	/usr/portage/games-rpg/xu4/metadata.xml
+60	/usr/portage/games-rpg/xu4/files
+61	/usr/portage/games-rpg/xu4/files/xu4-0.9-ldflags.patch
+62	/usr/portage/games-rpg/xu4/files/xu4-0.9-zip.patch
+63	/usr/portage/games-rpg/xu4/files/xu4-0.9-warnings.patch
+64	/usr/portage/games-rpg/xu4/files/0.9-savegame.patch
+65	/usr/portage/games-rpg/eternal-lands-data
+66	/usr/portage/games-rpg/eternal-lands-data/ChangeLog
+67	/usr/portage/games-rpg/eternal-lands-data/eternal-lands-data-1.9.3.ebuild
+68	/usr/portage/games-rpg/eternal-lands-data/Manifest
+69	/usr/portage/games-rpg/eternal-lands-data/metadata.xml
+70	/usr/portage/games-rpg/eternal-lands-data/eternal-lands-data-1.9.3-r1.ebuild
+71	/usr/portage/games-rpg/eternal-lands-data/eternal-lands-data-1.9.2-r1.ebuild
+72	/usr/portage/games-rpg/nwn-data
+73	/usr/portage/games-rpg/nwn-data/ChangeLog
+74	/usr/portage/games-rpg/nwn-data/Manifest
+75	/usr/portage/games-rpg/nwn-data/metadata.xml
+76	/usr/portage/games-rpg/nwn-data/nwn-data-1.29-r5.ebuild
+77	/usr/portage/games-rpg/eternal-lands
+78	/usr/portage/games-rpg/eternal-lands/ChangeLog
+79	/usr/portage/games-rpg/eternal-lands/Manifest
+80	/usr/portage/games-rpg/eternal-lands/eternal-lands-1.9.3-r2.ebuild
+81	/usr/portage/games-rpg/eternal-lands/eternal-lands-1.9.2-r1.ebuild
+82	/usr/portage/games-rpg/eternal-lands/metadata.xml
+83	/usr/portage/games-rpg/eternal-lands/eternal-lands-1.9.2.ebuild
+84	/usr/portage/games-rpg/eternal-lands/eternal-lands-1.9.3-r1.ebuild
+85	/usr/portage/games-rpg/eternal-lands/eternal-lands-1.9.3.ebuild
+86	/usr/portage/games-rpg/eternal-lands/files
+87	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.1-libpng.patch
+88	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.3-minizip.patch
+89	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.2-glext.patch
+90	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.3-build.patch
+91	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.3-glbuild.patch
+92	/usr/portage/games-rpg/eternal-lands/files/eternal-lands-1.9.0-glext.patch
+93	/usr/portage/games-rpg/freedink-data
+94	/usr/portage/games-rpg/freedink-data/ChangeLog
+95	/usr/portage/games-rpg/freedink-data/Manifest
+96	/usr/portage/games-rpg/freedink-data/metadata.xml
+97	/usr/portage/games-rpg/freedink-data/freedink-data-1.08.20140901.ebuild
+98	/usr/portage/games-rpg/nwmovies
+99	/usr/portage/games-rpg/nwmovies/ChangeLog
+100	/usr/portage/games-rpg/nwmovies/nwmovies-20090223.080954.ebuild
+101	/usr/portage/games-rpg/nwmovies/Manifest
+102	/usr/portage/games-rpg/nwmovies/metadata.xml
+103	/usr/portage/games-rpg/arx-libertatis
+104	/usr/portage/games-rpg/arx-libertatis/ChangeLog
+105	/usr/portage/games-rpg/arx-libertatis/arx-libertatis-1.1.2.ebuild
+106	/usr/portage/games-rpg/arx-libertatis/Manifest
+107	/usr/portage/games-rpg/arx-libertatis/metadata.xml
+108	/usr/portage/games-rpg/arx-libertatis/arx-libertatis-1.1.1.ebuild
+109	/usr/portage/games-rpg/arx-libertatis/arx-libertatis-1.0.3.ebuild
+110	/usr/portage/games-rpg/arx-libertatis/files
+111	/usr/portage/games-rpg/arx-libertatis/files/arx-data-copy
+112	/usr/portage/games-rpg/arx-libertatis/files/arx-libertatis-1.0.3-gentoo.patch
+113	/usr/portage/games-rpg/arx-libertatis/files/arx-libertatis-1.0.3-cmake2.8.patch
+114	/usr/portage/games-rpg/lure
+115	/usr/portage/games-rpg/lure/ChangeLog
+116	/usr/portage/games-rpg/lure/Manifest
+117	/usr/portage/games-rpg/lure/metadata.xml
+118	/usr/portage/games-rpg/lure/lure-1.1.ebuild
+119	/usr/portage/games-rpg/to-the-moon
+120	/usr/portage/games-rpg/to-the-moon/ChangeLog
+121	/usr/portage/games-rpg/to-the-moon/Manifest
+122	/usr/portage/games-rpg/to-the-moon/metadata.xml
+123	/usr/portage/games-rpg/to-the-moon/to-the-moon-0.ebuild
+124	/usr/portage/games-rpg/drascula
+125	/usr/portage/games-rpg/drascula/ChangeLog
+126	/usr/portage/games-rpg/drascula/Manifest
+127	/usr/portage/games-rpg/drascula/metadata.xml
+128	/usr/portage/games-rpg/drascula/drascula-1.0-r2.ebuild
+129	/usr/portage/games-rpg/coe2
+130	/usr/portage/games-rpg/coe2/ChangeLog
+131	/usr/portage/games-rpg/coe2/Manifest
+132	/usr/portage/games-rpg/coe2/metadata.xml
+133	/usr/portage/games-rpg/coe2/coe2-2007-r1.ebuild
+134	/usr/portage/games-rpg/queen
+135	/usr/portage/games-rpg/queen/ChangeLog
+136	/usr/portage/games-rpg/queen/Manifest
+137	/usr/portage/games-rpg/queen/metadata.xml
+138	/usr/portage/games-rpg/queen/queen-1.ebuild
+139	/usr/portage/games-rpg/tmw
+140	/usr/portage/games-rpg/tmw/ChangeLog
+141	/usr/portage/games-rpg/tmw/Manifest
+142	/usr/portage/games-rpg/tmw/tmw-20130201.ebuild
+143	/usr/portage/games-rpg/tmw/metadata.xml
+144	/usr/portage/games-rpg/tmw/files
+145	/usr/portage/games-rpg/tmw/files/tmw-branding-20130201-gentoo.patch
+146	/usr/portage/games-rpg/freedroid
+147	/usr/portage/games-rpg/freedroid/ChangeLog
+148	/usr/portage/games-rpg/freedroid/Manifest
+149	/usr/portage/games-rpg/freedroid/freedroid-1.0.2.ebuild
+150	/usr/portage/games-rpg/freedroid/metadata.xml
+151	/usr/portage/games-rpg/nwn-penultimarerolled
+152	/usr/portage/games-rpg/nwn-penultimarerolled/ChangeLog
+153	/usr/portage/games-rpg/nwn-penultimarerolled/Manifest
+154	/usr/portage/games-rpg/nwn-penultimarerolled/nwn-penultimarerolled-1.ebuild
+155	/usr/portage/games-rpg/nwn-penultimarerolled/metadata.xml
+156	/usr/portage/games-rpg/vendetta-online-bin
+157	/usr/portage/games-rpg/vendetta-online-bin/ChangeLog
+158	/usr/portage/games-rpg/vendetta-online-bin/Manifest
+159	/usr/portage/games-rpg/vendetta-online-bin/metadata.xml
+160	/usr/portage/games-rpg/vendetta-online-bin/files
+161	/usr/portage/games-rpg/vendetta-online-bin/files/vendetta
+162	/usr/portage/games-rpg/vendetta-online-bin/vendetta-online-bin-1.8.296.ebuild
+163	/usr/portage/games-rpg/metadata.xml
+164	/usr/portage/games-rpg/adonthell
+165	/usr/portage/games-rpg/adonthell/ChangeLog
+166	/usr/portage/games-rpg/adonthell/Manifest
+167	/usr/portage/games-rpg/adonthell/metadata.xml
+168	/usr/portage/games-rpg/adonthell/files
+169	/usr/portage/games-rpg/adonthell/files/adonthell-0.3.5-gcc46.patch
+170	/usr/portage/games-rpg/adonthell/files/adonthell-0.3.5-glibc-2.10.patch
+171	/usr/portage/games-rpg/adonthell/files/adonthell-0.3.5-format.patch
+172	/usr/portage/games-rpg/adonthell/files/adonthell-0.3.5-configure.in.patch
+173	/usr/portage/games-rpg/adonthell/adonthell-0.3.5-r1.ebuild
+174	/usr/portage/games-rpg/soltys
+175	/usr/portage/games-rpg/soltys/ChangeLog
+176	/usr/portage/games-rpg/soltys/Manifest
+177	/usr/portage/games-rpg/soltys/metadata.xml
+178	/usr/portage/games-rpg/soltys/soltys-1.0-r1.ebuild
+179	/usr/portage/games-rpg/sumwars
+180	/usr/portage/games-rpg/sumwars/ChangeLog
+181	/usr/portage/games-rpg/sumwars/Manifest
+182	/usr/portage/games-rpg/sumwars/metadata.xml
+183	/usr/portage/games-rpg/sumwars/sumwars-0.5.8.ebuild
+184	/usr/portage/games-rpg/bastion
+185	/usr/portage/games-rpg/bastion/ChangeLog
+186	/usr/portage/games-rpg/bastion/Manifest
+187	/usr/portage/games-rpg/bastion/bastion-20120620-r1.ebuild
+188	/usr/portage/games-rpg/bastion/metadata.xml
+189	/usr/portage/games-rpg/manaplus
+190	/usr/portage/games-rpg/manaplus/ChangeLog
+191	/usr/portage/games-rpg/manaplus/manaplus-1.3.9.29.ebuild
+192	/usr/portage/games-rpg/manaplus/Manifest
+193	/usr/portage/games-rpg/manaplus/metadata.xml
+194	/usr/portage/games-rpg/manaplus/manaplus-1.5.5.9.ebuild
+195	/usr/portage/games-rpg/mana
+196	/usr/portage/games-rpg/mana/ChangeLog
+197	/usr/portage/games-rpg/mana/mana-0.6.1.ebuild
+198	/usr/portage/games-rpg/mana/Manifest
+199	/usr/portage/games-rpg/mana/metadata.xml
+200	/usr/portage/games-rpg/mana/files
+201	/usr/portage/games-rpg/mana/files/mana-0.6.1-Import-cstdint-for-int64_t.patch
+202	/usr/portage/games-rpg/mana/files/mana-0.6.1-Trick-gcc-into-importing-C99-stdint.h-when-C-11-is-n.patch
+203	/usr/portage/games-rpg/mana/files/mana-0.6.1-gentoo.patch
+204	/usr/portage/games-rpg/mana/files/mana-0.6.1-Fix-missing-virtual-destructors-and-guichan-use.patch
+205	/usr/portage/games-rpg/kqlives
+206	/usr/portage/games-rpg/kqlives/ChangeLog
+207	/usr/portage/games-rpg/kqlives/Manifest
+208	/usr/portage/games-rpg/kqlives/metadata.xml
+209	/usr/portage/games-rpg/kqlives/kqlives-0.99.ebuild
+210	/usr/portage/games-rpg/kqlives/files
+211	/usr/portage/games-rpg/kqlives/files/kqlives.xpm
+212	/usr/portage/games-rpg/eternal-lands-bloodsucker
+213	/usr/portage/games-rpg/eternal-lands-bloodsucker/ChangeLog
+214	/usr/portage/games-rpg/eternal-lands-bloodsucker/eternal-lands-bloodsucker-3.0.ebuild
+215	/usr/portage/games-rpg/eternal-lands-bloodsucker/Manifest
+216	/usr/portage/games-rpg/eternal-lands-bloodsucker/eternal-lands-bloodsucker-3.0_p20110618.ebuild
+217	/usr/portage/games-rpg/eternal-lands-bloodsucker/metadata.xml
+218	/usr/portage/games-rpg/zsdx
+219	/usr/portage/games-rpg/zsdx/ChangeLog
+220	/usr/portage/games-rpg/zsdx/Manifest
+221	/usr/portage/games-rpg/zsdx/zsdx-1.9.0.ebuild
+222	/usr/portage/games-rpg/zsdx/metadata.xml
+223	/usr/portage/games-rpg/arx-fatalis-demo
+224	/usr/portage/games-rpg/arx-fatalis-demo/ChangeLog
+225	/usr/portage/games-rpg/arx-fatalis-demo/Manifest
+226	/usr/portage/games-rpg/arx-fatalis-demo/metadata.xml
+227	/usr/portage/games-rpg/arx-fatalis-demo/arx-fatalis-demo-0.ebuild
+228	/usr/portage/games-rpg/avadon
+229	/usr/portage/games-rpg/avadon/ChangeLog
+230	/usr/portage/games-rpg/avadon/Manifest
+231	/usr/portage/games-rpg/avadon/avadon-1.0.4.ebuild
+232	/usr/portage/games-rpg/avadon/metadata.xml
+233	/usr/portage/games-rpg/wastesedge
+234	/usr/portage/games-rpg/wastesedge/ChangeLog
+235	/usr/portage/games-rpg/wastesedge/Manifest
+236	/usr/portage/games-rpg/wastesedge/metadata.xml
+237	/usr/portage/games-rpg/wastesedge/wastesedge-0.3.5.ebuild
+238	/usr/portage/games-rpg/daimonin-client
+239	/usr/portage/games-rpg/daimonin-client/ChangeLog
+240	/usr/portage/games-rpg/daimonin-client/Manifest
+241	/usr/portage/games-rpg/daimonin-client/metadata.xml
+242	/usr/portage/games-rpg/daimonin-client/daimonin-client-0.10.5.ebuild
+243	/usr/portage/games-rpg/daimonin-client/files
+244	/usr/portage/games-rpg/daimonin-client/files/daimonin-client-0.10.5-nozlib.patch
+245	/usr/portage/games-rpg/daimonin-client/files/daimonin-client-0.10.5-datadir.patch
+246	/usr/portage/games-rpg/nwn-cep
+247	/usr/portage/games-rpg/nwn-cep/ChangeLog
+248	/usr/portage/games-rpg/nwn-cep/Manifest
+249	/usr/portage/games-rpg/nwn-cep/nwn-cep-2.0.ebuild
+250	/usr/portage/games-rpg/nwn-cep/metadata.xml
+251	/usr/portage/games-rpg/nwn-cep/nwn-cep-1.68-r1.ebuild
+252	/usr/portage/games-rpg/dear-esther
+253	/usr/portage/games-rpg/dear-esther/ChangeLog
+254	/usr/portage/games-rpg/dear-esther/Manifest
+255	/usr/portage/games-rpg/dear-esther/metadata.xml
+256	/usr/portage/games-rpg/dear-esther/dear-esther-20130608.ebuild
+257	/usr/portage/games-rpg/wasteland2
+258	/usr/portage/games-rpg/wasteland2/ChangeLog
+259	/usr/portage/games-rpg/wasteland2/Manifest
+260	/usr/portage/games-rpg/wasteland2/metadata.xml
+261	/usr/portage/games-rpg/wasteland2/wasteland2-1.3.0.7.ebuild
+262	/usr/portage/games-rpg/sacred-gold
+263	/usr/portage/games-rpg/sacred-gold/ChangeLog
+264	/usr/portage/games-rpg/sacred-gold/Manifest
+265	/usr/portage/games-rpg/sacred-gold/metadata.xml
+266	/usr/portage/games-rpg/sacred-gold/sacred-gold-1.0.ebuild
+267	/usr/portage/games-rpg/sacred-gold/sacred-gold-1.0.01.ebuild
+268	/usr/portage/games-rpg/freedink
+269	/usr/portage/games-rpg/freedink/ChangeLog
+270	/usr/portage/games-rpg/freedink/Manifest
+271	/usr/portage/games-rpg/freedink/metadata.xml
+272	/usr/portage/games-rpg/freedink/freedink-108.4.ebuild
+273	/usr/portage/games-rpg/pcgen
+274	/usr/portage/games-rpg/pcgen/ChangeLog
+275	/usr/portage/games-rpg/pcgen/Manifest
+276	/usr/portage/games-rpg/pcgen/pcgen-6.04.01.ebuild
+277	/usr/portage/games-rpg/pcgen/metadata.xml
+278	/usr/portage/games-rpg/nwn-penultima
+279	/usr/portage/games-rpg/nwn-penultima/ChangeLog
+280	/usr/portage/games-rpg/nwn-penultima/Manifest
+281	/usr/portage/games-rpg/nwn-penultima/metadata.xml
+282	/usr/portage/games-rpg/nwn-penultima/nwn-penultima-1.ebuild
+283	/usr/portage/games-rpg/nwn-penultima/nwn-penultima-1-r1.ebuild
+284	/usr/portage/games-rpg/egoboo
+285	/usr/portage/games-rpg/egoboo/ChangeLog
+286	/usr/portage/games-rpg/egoboo/Manifest
+287	/usr/portage/games-rpg/egoboo/egoboo-2.8.1.ebuild
+288	/usr/portage/games-rpg/egoboo/metadata.xml
+289	/usr/portage/games-rpg/egoboo/files
+290	/usr/portage/games-rpg/egoboo/files/egoboo-2.8.1-gentoo.patch
+291	/usr/portage/games-rpg/freedroidrpg
+292	/usr/portage/games-rpg/freedroidrpg/ChangeLog
+293	/usr/portage/games-rpg/freedroidrpg/Manifest
+294	/usr/portage/games-rpg/freedroidrpg/freedroidrpg-0.15.1.ebuild
+295	/usr/portage/games-rpg/freedroidrpg/metadata.xml
+296	/usr/portage/games-rpg/gwiz
+297	/usr/portage/games-rpg/gwiz/ChangeLog
+298	/usr/portage/games-rpg/gwiz/Manifest
+299	/usr/portage/games-rpg/gwiz/metadata.xml
+300	/usr/portage/games-rpg/gwiz/gwiz-0.8.ebuild
+301	/usr/portage/games-rpg/gwiz/files
+302	/usr/portage/games-rpg/gwiz/files/gwiz-0.8-buffer.patch
+303	/usr/portage/games-rpg/dragonhunt
+304	/usr/portage/games-rpg/dragonhunt/ChangeLog
+305	/usr/portage/games-rpg/dragonhunt/Manifest
+306	/usr/portage/games-rpg/dragonhunt/dragonhunt-3.56-r1.ebuild
+307	/usr/portage/games-rpg/dragonhunt/metadata.xml
+308	/usr/portage/games-rpg/draci-historie
+309	/usr/portage/games-rpg/draci-historie/ChangeLog
+310	/usr/portage/games-rpg/draci-historie/draci-historie-2012.ebuild
+311	/usr/portage/games-rpg/draci-historie/Manifest
+312	/usr/portage/games-rpg/draci-historie/metadata.xml
+313	/usr/portage/games-rpg/dreamweb
+314	/usr/portage/games-rpg/dreamweb/ChangeLog
+315	/usr/portage/games-rpg/dreamweb/Manifest
+316	/usr/portage/games-rpg/dreamweb/dreamweb-1.1.ebuild
+317	/usr/portage/games-rpg/dreamweb/metadata.xml
+318	/usr/portage/games-rpg/valyriatear
+319	/usr/portage/games-rpg/valyriatear/ChangeLog
+320	/usr/portage/games-rpg/valyriatear/Manifest
+321	/usr/portage/games-rpg/valyriatear/metadata.xml
+322	/usr/portage/games-rpg/valyriatear/valyriatear-1.0.0.ebuild
+323	/usr/portage/games-rpg/nwn
+324	/usr/portage/games-rpg/nwn/ChangeLog
+325	/usr/portage/games-rpg/nwn/Manifest
+326	/usr/portage/games-rpg/nwn/nwn-1.69-r1.ebuild
+327	/usr/portage/games-rpg/nwn/metadata.xml
+328	/usr/portage/games-rpg/nwn/nwn-1.68-r5.ebuild
+329	/usr/portage/games-rpg/nwn/files
+330	/usr/portage/games-rpg/nwn/files/fixinstall
+331	/usr/portage/games-rpg/nwn/nwn-1.68-r6.ebuild
+332	/usr/portage/games-rpg/twclone
+333	/usr/portage/games-rpg/twclone/ChangeLog
+334	/usr/portage/games-rpg/twclone/Manifest
+335	/usr/portage/games-rpg/twclone/metadata.xml
+336	/usr/portage/games-rpg/twclone/twclone-0.14.ebuild
+337	/usr/portage/games-rpg/zsxd
+338	/usr/portage/games-rpg/zsxd/ChangeLog
+339	/usr/portage/games-rpg/zsxd/Manifest
+340	/usr/portage/games-rpg/zsxd/metadata.xml
+341	/usr/portage/games-rpg/zsxd/zsxd-1.9.0.ebuild
+342	/usr/portage/games-rpg/grimrock
+343	/usr/portage/games-rpg/grimrock/ChangeLog
+344	/usr/portage/games-rpg/grimrock/Manifest
+345	/usr/portage/games-rpg/grimrock/metadata.xml
+346	/usr/portage/games-rpg/grimrock/grimrock-20130515.ebuild
+347	/usr/portage/games-arcade
+348	/usr/portage/games-arcade/ascii-invaders
+349	/usr/portage/games-arcade/ascii-invaders/ChangeLog
+350	/usr/portage/games-arcade/ascii-invaders/Manifest
+351	/usr/portage/games-arcade/ascii-invaders/metadata.xml
+352	/usr/portage/games-arcade/ascii-invaders/ascii-invaders-0.1b.ebuild
+353	/usr/portage/games-arcade/notpacman
+354	/usr/portage/games-arcade/notpacman/ChangeLog
+355	/usr/portage/games-arcade/notpacman/Manifest
+356	/usr/portage/games-arcade/notpacman/metadata.xml
+357	/usr/portage/games-arcade/notpacman/notpacman-1.0.4.ebuild
+358	/usr/portage/games-arcade/gnake
+359	/usr/portage/games-arcade/gnake/ChangeLog
+360	/usr/portage/games-arcade/gnake/Manifest
+361	/usr/portage/games-arcade/gnake/metadata.xml
+362	/usr/portage/games-arcade/gnake/gnake-0.94b.ebuild
+363	/usr/portage/games-arcade/xbubble
+364	/usr/portage/games-arcade/xbubble/ChangeLog
+365	/usr/portage/games-arcade/xbubble/Manifest
+366	/usr/portage/games-arcade/xbubble/metadata.xml
+367	/usr/portage/games-arcade/xbubble/xbubble-0.5.8.ebuild
+368	/usr/portage/games-arcade/xbubble/files
+369	/usr/portage/games-arcade/xbubble/files/xbubble-0.5.8-libpng14.patch
+370	/usr/portage/games-arcade/xbubble/files/xbubble-0.5.8-png15.patch
+371	/usr/portage/games-arcade/xbubble/files/xbubble-0.5.8-locale.patch
+372	/usr/portage/games-arcade/xbubble/files/xbubble-0.5.8-xpaths.patch
+373	/usr/portage/games-arcade/stardork
+374	/usr/portage/games-arcade/stardork/ChangeLog
+375	/usr/portage/games-arcade/stardork/Manifest
+376	/usr/portage/games-arcade/stardork/stardork-0.7.ebuild
+377	/usr/portage/games-arcade/stardork/metadata.xml
+378	/usr/portage/games-arcade/blobby
+379	/usr/portage/games-arcade/blobby/ChangeLog
+380	/usr/portage/games-arcade/blobby/Manifest
+381	/usr/portage/games-arcade/blobby/blobby-0.9c.ebuild
+382	/usr/portage/games-arcade/blobby/metadata.xml
+383	/usr/portage/games-arcade/blobby/files
+384	/usr/portage/games-arcade/blobby/files/blobby-0.9c-gcc47.patch
+385	/usr/portage/games-arcade/jumpnbump
+386	/usr/portage/games-arcade/jumpnbump/ChangeLog
+387	/usr/portage/games-arcade/jumpnbump/Manifest
+388	/usr/portage/games-arcade/jumpnbump/jumpnbump-1.50-r1.ebuild
+389	/usr/portage/games-arcade/jumpnbump/metadata.xml
+390	/usr/portage/games-arcade/xtux
+391	/usr/portage/games-arcade/xtux/ChangeLog
+392	/usr/portage/games-arcade/xtux/xtux-20030306.ebuild
+393	/usr/portage/games-arcade/xtux/Manifest
+394	/usr/portage/games-arcade/xtux/metadata.xml
+395	/usr/portage/games-arcade/xtux/files
+396	/usr/portage/games-arcade/xtux/files/xtux-20030306-particles.patch
+397	/usr/portage/games-arcade/xtux/files/xtux-20030306-ldflags.patch
+398	/usr/portage/games-arcade/rockdodger
+399	/usr/portage/games-arcade/rockdodger/ChangeLog
+400	/usr/portage/games-arcade/rockdodger/Manifest
+401	/usr/portage/games-arcade/rockdodger/rockdodger-0.6.0a-r1.ebuild
+402	/usr/portage/games-arcade/rockdodger/metadata.xml
+403	/usr/portage/games-arcade/rockdodger/files
+404	/usr/portage/games-arcade/rockdodger/files/rockdodger-0.6.0a-gcc41.patch
+405	/usr/portage/games-arcade/rockdodger/files/rockdodger-0.6.0a-underlink.patch
+406	/usr/portage/games-arcade/rockdodger/files/0.6.0a-sec.patch
+407	/usr/portage/games-arcade/supertux
+408	/usr/portage/games-arcade/supertux/ChangeLog
+409	/usr/portage/games-arcade/supertux/Manifest
+410	/usr/portage/games-arcade/supertux/metadata.xml
+411	/usr/portage/games-arcade/supertux/supertux-0.1.3.ebuild
+412	/usr/portage/games-arcade/supertux/files
+413	/usr/portage/games-arcade/supertux/files/supertux-0.1.3-desktop.patch
+414	/usr/portage/games-arcade/supertux/files/supertux-0.1.3-ndebug.patch
+415	/usr/portage/games-arcade/supertux/files/supertux-0.1.3-gcc41.patch
+416	/usr/portage/games-arcade/dynamitejack
+417	/usr/portage/games-arcade/dynamitejack/ChangeLog
+418	/usr/portage/games-arcade/dynamitejack/Manifest
+419	/usr/portage/games-arcade/dynamitejack/metadata.xml
+420	/usr/portage/games-arcade/dynamitejack/dynamitejack-1.0.23-r1.ebuild
+421	/usr/portage/games-arcade/smc
+422	/usr/portage/games-arcade/smc/ChangeLog
+423	/usr/portage/games-arcade/smc/Manifest
+424	/usr/portage/games-arcade/smc/smc-1.9.ebuild
+425	/usr/portage/games-arcade/smc/metadata.xml
+426	/usr/portage/games-arcade/smc/files
+427	/usr/portage/games-arcade/smc/files/smc-1.9-underlink.patch
+428	/usr/portage/games-arcade/smc/files/smc-1.9-boost150.patch
+429	/usr/portage/games-arcade/marbleblast-demo
+430	/usr/portage/games-arcade/marbleblast-demo/ChangeLog
+431	/usr/portage/games-arcade/marbleblast-demo/Manifest
+432	/usr/portage/games-arcade/marbleblast-demo/metadata.xml
+433	/usr/portage/games-arcade/marbleblast-demo/marbleblast-demo-1.3.ebuild
+434	/usr/portage/games-arcade/epiar
+435	/usr/portage/games-arcade/epiar/ChangeLog
+436	/usr/portage/games-arcade/epiar/Manifest
+437	/usr/portage/games-arcade/epiar/metadata.xml
+438	/usr/portage/games-arcade/epiar/files
+439	/usr/portage/games-arcade/epiar/files/epiar-0.5-paths.patch
+440	/usr/portage/games-arcade/epiar/files/epiar-0.5-gcc41.patch
+441	/usr/portage/games-arcade/epiar/files/epiar-0.5-Makefile.linux.patch
+442	/usr/portage/games-arcade/epiar/files/epiar-0.5-underlink.patch
+443	/usr/portage/games-arcade/epiar/files/0.5-gentoo-paths.patch
+444	/usr/portage/games-arcade/epiar/epiar-0.5-r1.ebuild
+445	/usr/portage/games-arcade/circuslinux
+446	/usr/portage/games-arcade/circuslinux/ChangeLog
+447	/usr/portage/games-arcade/circuslinux/Manifest
+448	/usr/portage/games-arcade/circuslinux/metadata.xml
+449	/usr/portage/games-arcade/circuslinux/circuslinux-1.0.3.ebuild
+450	/usr/portage/games-arcade/sdl-sopwith
+451	/usr/portage/games-arcade/sdl-sopwith/ChangeLog
+452	/usr/portage/games-arcade/sdl-sopwith/Manifest
+453	/usr/portage/games-arcade/sdl-sopwith/sdl-sopwith-1.7.5-r1.ebuild
+454	/usr/portage/games-arcade/sdl-sopwith/metadata.xml
+455	/usr/portage/games-arcade/sdl-sopwith/files
+456	/usr/portage/games-arcade/sdl-sopwith/files/sdl-sopwith-1.7.5-nogtk.patch
+457	/usr/portage/games-arcade/sdl-sopwith/files/sdl-sopwith-1.7.5-video-fix.patch
+458	/usr/portage/games-arcade/moleinvasion
+459	/usr/portage/games-arcade/moleinvasion/ChangeLog
+460	/usr/portage/games-arcade/moleinvasion/Manifest
+461	/usr/portage/games-arcade/moleinvasion/metadata.xml
+462	/usr/portage/games-arcade/moleinvasion/moleinvasion-0.4-r1.ebuild
+463	/usr/portage/games-arcade/moleinvasion/files
+464	/usr/portage/games-arcade/moleinvasion/files/moleinvasion-0.4-opengl.patch
+465	/usr/portage/games-arcade/moleinvasion/files/moleinvasion-0.4-underlink.patch
+466	/usr/portage/games-arcade/aquaria
+467	/usr/portage/games-arcade/aquaria/ChangeLog
+468	/usr/portage/games-arcade/aquaria/Manifest
+469	/usr/portage/games-arcade/aquaria/aquaria-1.1.3-r1.ebuild
+470	/usr/portage/games-arcade/aquaria/metadata.xml
+471	/usr/portage/games-arcade/pycadia
+472	/usr/portage/games-arcade/pycadia/ChangeLog
+473	/usr/portage/games-arcade/pycadia/Manifest
+474	/usr/portage/games-arcade/pycadia/metadata.xml
+475	/usr/portage/games-arcade/pycadia/pycadia-0.5.1.ebuild
+476	/usr/portage/games-arcade/sable
+477	/usr/portage/games-arcade/sable/ChangeLog
+478	/usr/portage/games-arcade/sable/Manifest
+479	/usr/portage/games-arcade/sable/sable-1.0.ebuild
+480	/usr/portage/games-arcade/sable/metadata.xml
+481	/usr/portage/games-arcade/sable/files
+482	/usr/portage/games-arcade/sable/files/sable-1.0-gentoo.patch
+483	/usr/portage/games-arcade/cdogs-sdl
+484	/usr/portage/games-arcade/cdogs-sdl/ChangeLog
+485	/usr/portage/games-arcade/cdogs-sdl/Manifest
+486	/usr/portage/games-arcade/cdogs-sdl/cdogs-sdl-0.4-r1.ebuild
+487	/usr/portage/games-arcade/cdogs-sdl/metadata.xml
+488	/usr/portage/games-arcade/cdogs-sdl/files
+489	/usr/portage/games-arcade/cdogs-sdl/files/cdogs-sdl-0.4-64bit.patch
+490	/usr/portage/games-arcade/digger
+491	/usr/portage/games-arcade/digger/ChangeLog
+492	/usr/portage/games-arcade/digger/Manifest
+493	/usr/portage/games-arcade/digger/digger-20140423.ebuild
+494	/usr/portage/games-arcade/digger/metadata.xml
+495	/usr/portage/games-arcade/digger/files
+496	/usr/portage/games-arcade/digger/files/digger-20140423-ldflags.patch
+497	/usr/portage/games-arcade/afternoonstalker
+498	/usr/portage/games-arcade/afternoonstalker/ChangeLog
+499	/usr/portage/games-arcade/afternoonstalker/Manifest
+500	/usr/portage/games-arcade/afternoonstalker/metadata.xml
+501	/usr/portage/games-arcade/afternoonstalker/afternoonstalker-1.1.5.ebuild
+502	/usr/portage/games-arcade/pacmanarena
+503	/usr/portage/games-arcade/pacmanarena/ChangeLog
+504	/usr/portage/games-arcade/pacmanarena/Manifest
+505	/usr/portage/games-arcade/pacmanarena/metadata.xml
+506	/usr/portage/games-arcade/pacmanarena/pacmanarena-0.15.ebuild
+507	/usr/portage/games-arcade/pacmanarena/files
+508	/usr/portage/games-arcade/pacmanarena/files/pacmanarena-0.15-underlink.patch
+509	/usr/portage/games-arcade/holotz-castle
+510	/usr/portage/games-arcade/holotz-castle/ChangeLog
+511	/usr/portage/games-arcade/holotz-castle/Manifest
+512	/usr/portage/games-arcade/holotz-castle/holotz-castle-1.3.14.ebuild
+513	/usr/portage/games-arcade/holotz-castle/metadata.xml
+514	/usr/portage/games-arcade/holotz-castle/files
+515	/usr/portage/games-arcade/holotz-castle/files/holotz-castle-1.3.14-gcc44.patch
+516	/usr/portage/games-arcade/holotz-castle/files/holotz-castle-1.3.14-build.patch
+517	/usr/portage/games-arcade/holotz-castle/files/holotz-castle-1.3.14-underlink.patch
+518	/usr/portage/games-arcade/bloboats
+519	/usr/portage/games-arcade/bloboats/ChangeLog
+520	/usr/portage/games-arcade/bloboats/Manifest
+521	/usr/portage/games-arcade/bloboats/bloboats-1.0.2.ebuild
+522	/usr/portage/games-arcade/bloboats/metadata.xml
+523	/usr/portage/games-arcade/bloboats/files
+524	/usr/portage/games-arcade/bloboats/files/bloboats-1.0.2-warnings.patch
+525	/usr/portage/games-arcade/berusky
+526	/usr/portage/games-arcade/berusky/ChangeLog
+527	/usr/portage/games-arcade/berusky/Manifest
+528	/usr/portage/games-arcade/berusky/berusky-1.7.1.ebuild
+529	/usr/portage/games-arcade/berusky/metadata.xml
+530	/usr/portage/games-arcade/berusky/files
+531	/usr/portage/games-arcade/berusky/files/berusky-1.7.1-gentoo.patch
+532	/usr/portage/games-arcade/conveysdl
+533	/usr/portage/games-arcade/conveysdl/ChangeLog
+534	/usr/portage/games-arcade/conveysdl/Manifest
+535	/usr/portage/games-arcade/conveysdl/metadata.xml
+536	/usr/portage/games-arcade/conveysdl/conveysdl-1.3.ebuild
+537	/usr/portage/games-arcade/conveysdl/files
+538	/usr/portage/games-arcade/conveysdl/files/conveysdl-1.3-arrays.patch
+539	/usr/portage/games-arcade/conveysdl/files/conveysdl-1.3-speed.patch
+540	/usr/portage/games-arcade/openbubbles
+541	/usr/portage/games-arcade/openbubbles/ChangeLog
+542	/usr/portage/games-arcade/openbubbles/Manifest
+543	/usr/portage/games-arcade/openbubbles/metadata.xml
+544	/usr/portage/games-arcade/openbubbles/openbubbles-1.2.ebuild
+545	/usr/portage/games-arcade/openbubbles/files
+546	/usr/portage/games-arcade/openbubbles/files/openbubbles-1.2-glibc2.10.patch
+547	/usr/portage/games-arcade/vor
+548	/usr/portage/games-arcade/vor/ChangeLog
+549	/usr/portage/games-arcade/vor/Manifest
+550	/usr/portage/games-arcade/vor/metadata.xml
+551	/usr/portage/games-arcade/vor/vor-0.5.5.ebuild
+552	/usr/portage/games-arcade/vor/files
+553	/usr/portage/games-arcade/vor/files/vor-0.5.5-underlink.patch
+554	/usr/portage/games-arcade/wop
+555	/usr/portage/games-arcade/wop/ChangeLog
+556	/usr/portage/games-arcade/wop/Manifest
+557	/usr/portage/games-arcade/wop/wop-0.4.3-r1.ebuild
+558	/usr/portage/games-arcade/wop/metadata.xml
+559	/usr/portage/games-arcade/wop/files
+560	/usr/portage/games-arcade/wop/files/wop-0.4.3-gcc43.patch
+561	/usr/portage/games-arcade/wop/files/wop-0.4.3-Makefile.patch
+562	/usr/portage/games-arcade/supertransball2
+563	/usr/portage/games-arcade/supertransball2/ChangeLog
+564	/usr/portage/games-arcade/supertransball2/supertransball2-1.5.ebuild
+565	/usr/portage/games-arcade/supertransball2/Manifest
+566	/usr/portage/games-arcade/supertransball2/metadata.xml
+567	/usr/portage/games-arcade/supertransball2/files
+568	/usr/portage/games-arcade/supertransball2/files/supertransball2-1.5-ldflags.patch
+569	/usr/portage/games-arcade/grande-KXL
+570	/usr/portage/games-arcade/grande-KXL/ChangeLog
+571	/usr/portage/games-arcade/grande-KXL/Manifest
+572	/usr/portage/games-arcade/grande-KXL/metadata.xml
+573	/usr/portage/games-arcade/grande-KXL/grande-KXL-0.6.ebuild
+574	/usr/portage/games-arcade/grande-KXL/files
+575	/usr/portage/games-arcade/grande-KXL/files/grande-KXL-0.6-configure.in.patch
+576	/usr/portage/games-arcade/grande-KXL/files/grande-KXL-0.6-cflags.patch
+577	/usr/portage/games-arcade/cavezofphear
+578	/usr/portage/games-arcade/cavezofphear/ChangeLog
+579	/usr/portage/games-arcade/cavezofphear/Manifest
+580	/usr/portage/games-arcade/cavezofphear/metadata.xml
+581	/usr/portage/games-arcade/cavezofphear/cavezofphear-0.5.1.ebuild
+582	/usr/portage/games-arcade/cavezofphear/files
+583	/usr/portage/games-arcade/cavezofphear/files/cavezofphear-0.5.1-gentoo.patch
+584	/usr/portage/games-arcade/defendguin
+585	/usr/portage/games-arcade/defendguin/ChangeLog
+586	/usr/portage/games-arcade/defendguin/Manifest
+587	/usr/portage/games-arcade/defendguin/metadata.xml
+588	/usr/portage/games-arcade/defendguin/defendguin-0.0.12.ebuild
+589	/usr/portage/games-arcade/missile
+590	/usr/portage/games-arcade/missile/ChangeLog
+591	/usr/portage/games-arcade/missile/Manifest
+592	/usr/portage/games-arcade/missile/metadata.xml
+593	/usr/portage/games-arcade/missile/missile-1.0.1.ebuild
+594	/usr/portage/games-arcade/missile/files
+595	/usr/portage/games-arcade/missile/files/missile-1.0.1-ldflags.patch
+596	/usr/portage/games-arcade/retrobattle
+597	/usr/portage/games-arcade/retrobattle/ChangeLog
+598	/usr/portage/games-arcade/retrobattle/Manifest
+599	/usr/portage/games-arcade/retrobattle/retrobattle-1.0.0.ebuild
+600	/usr/portage/games-arcade/retrobattle/metadata.xml
+601	/usr/portage/games-arcade/retrobattle/files
+602	/usr/portage/games-arcade/retrobattle/files/retrobattle-1.0.0-sound.patch
+603	/usr/portage/games-arcade/retrobattle/files/retrobattle-1.0.0-build.patch
+604	/usr/portage/games-arcade/asteroid
+605	/usr/portage/games-arcade/asteroid/ChangeLog
+606	/usr/portage/games-arcade/asteroid/Manifest
+607	/usr/portage/games-arcade/asteroid/metadata.xml
+608	/usr/portage/games-arcade/asteroid/asteroid-1.1.ebuild
+609	/usr/portage/games-arcade/asteroid/files
+610	/usr/portage/games-arcade/asteroid/files/asteroid-1.1-include.patch
+611	/usr/portage/games-arcade/sdb
+612	/usr/portage/games-arcade/sdb/ChangeLog
+613	/usr/portage/games-arcade/sdb/Manifest
+614	/usr/portage/games-arcade/sdb/metadata.xml
+615	/usr/portage/games-arcade/sdb/files
+616	/usr/portage/games-arcade/sdb/files/sdb-1.0.2-endian.patch
+617	/usr/portage/games-arcade/sdb/files/sdb-1.0.2-gcc43.patch
+618	/usr/portage/games-arcade/sdb/files/sdb-1.0.2-ldflags.patch
+619	/usr/portage/games-arcade/sdb/sdb-1.0.2.ebuild
+620	/usr/portage/games-arcade/lbreakout
+621	/usr/portage/games-arcade/lbreakout/ChangeLog
+622	/usr/portage/games-arcade/lbreakout/Manifest
+623	/usr/portage/games-arcade/lbreakout/metadata.xml
+624	/usr/portage/games-arcade/lbreakout/lbreakout-010315.ebuild
+625	/usr/portage/games-arcade/xscavenger
+626	/usr/portage/games-arcade/xscavenger/ChangeLog
+627	/usr/portage/games-arcade/xscavenger/Manifest
+628	/usr/portage/games-arcade/xscavenger/metadata.xml
+629	/usr/portage/games-arcade/xscavenger/files
+630	/usr/portage/games-arcade/xscavenger/files/1.4.4-gentoo.patch
+631	/usr/portage/games-arcade/xscavenger/xscavenger-1.4.4.ebuild
+632	/usr/portage/games-arcade/bomns
+633	/usr/portage/games-arcade/bomns/ChangeLog
+634	/usr/portage/games-arcade/bomns/Manifest
+635	/usr/portage/games-arcade/bomns/metadata.xml
+636	/usr/portage/games-arcade/bomns/bomns-0.99.2.ebuild
+637	/usr/portage/games-arcade/bomns/files
+638	/usr/portage/games-arcade/bomns/files/bomns-0.99.2-fpe.patch
+639	/usr/portage/games-arcade/openmortal
+640	/usr/portage/games-arcade/openmortal/ChangeLog
+641	/usr/portage/games-arcade/openmortal/Manifest
+642	/usr/portage/games-arcade/openmortal/metadata.xml
+643	/usr/portage/games-arcade/openmortal/openmortal-0.7-r1.ebuild
+644	/usr/portage/games-arcade/openmortal/files
+645	/usr/portage/games-arcade/openmortal/files/openmortal-0.7-freetype.patch
+646	/usr/portage/games-arcade/openmortal/files/openmortal-0.7-gcc41.patch
+647	/usr/portage/games-arcade/syobon
+648	/usr/portage/games-arcade/syobon/ChangeLog
+649	/usr/portage/games-arcade/syobon/Manifest
+650	/usr/portage/games-arcade/syobon/metadata.xml
+651	/usr/portage/games-arcade/syobon/syobon-1.0.1.ebuild
+652	/usr/portage/games-arcade/aop
+653	/usr/portage/games-arcade/aop/ChangeLog
+654	/usr/portage/games-arcade/aop/Manifest
+655	/usr/portage/games-arcade/aop/aop-0.6.ebuild
+656	/usr/portage/games-arcade/aop/metadata.xml
+657	/usr/portage/games-arcade/aop/files
+658	/usr/portage/games-arcade/aop/files/aop-0.6-as-needed.patch
+659	/usr/portage/games-arcade/commandergenius
+660	/usr/portage/games-arcade/commandergenius/ChangeLog
+661	/usr/portage/games-arcade/commandergenius/Manifest
+662	/usr/portage/games-arcade/commandergenius/metadata.xml
+663	/usr/portage/games-arcade/commandergenius/commandergenius-1.8.0.0.ebuild
+664	/usr/portage/games-arcade/commandergenius/files
+665	/usr/portage/games-arcade/commandergenius/files/commandergenius-1.8.0.0-install.patch
+666	/usr/portage/games-arcade/commandergenius/files/commandergenius-wrapper
+667	/usr/portage/games-arcade/thinktanks-demo
+668	/usr/portage/games-arcade/thinktanks-demo/ChangeLog
+669	/usr/portage/games-arcade/thinktanks-demo/Manifest
+670	/usr/portage/games-arcade/thinktanks-demo/thinktanks-demo-1.1-r2.ebuild
+671	/usr/portage/games-arcade/thinktanks-demo/metadata.xml
+672	/usr/portage/games-arcade/gunocide2ex
+673	/usr/portage/games-arcade/gunocide2ex/ChangeLog
+674	/usr/portage/games-arcade/gunocide2ex/Manifest
+675	/usr/portage/games-arcade/gunocide2ex/metadata.xml
+676	/usr/portage/games-arcade/gunocide2ex/gunocide2ex-1.0.ebuild
+677	/usr/portage/games-arcade/gunocide2ex/files
+678	/usr/portage/games-arcade/gunocide2ex/files/gunocide2ex-1.0-build.patch
+679	/usr/portage/games-arcade/gunocide2ex/files/gunocide2ex-1.0-glibc2.10.patch
+680	/usr/portage/games-arcade/excido
+681	/usr/portage/games-arcade/excido/ChangeLog
+682	/usr/portage/games-arcade/excido/Manifest
+683	/usr/portage/games-arcade/excido/metadata.xml
+684	/usr/portage/games-arcade/excido/excido-0.1.5c-r2.ebuild
+685	/usr/portage/games-arcade/excido/files
+686	/usr/portage/games-arcade/excido/files/excido-0.1.5c-build.patch
+687	/usr/portage/games-arcade/excido/files/excido-0.1.5c-freealut.patch
+688	/usr/portage/games-arcade/apricots
+689	/usr/portage/games-arcade/apricots/ChangeLog
+690	/usr/portage/games-arcade/apricots/apricots-0.2.6-r1.ebuild
+691	/usr/portage/games-arcade/apricots/Manifest
+692	/usr/portage/games-arcade/apricots/metadata.xml
+693	/usr/portage/games-arcade/apricots/files
+694	/usr/portage/games-arcade/apricots/files/apricots-0.2.6-freealut.patch
+695	/usr/portage/games-arcade/apricots/files/apricots-0.2.6-ldflags.patch
+696	/usr/portage/games-arcade/primateplunge
+697	/usr/portage/games-arcade/primateplunge/ChangeLog
+698	/usr/portage/games-arcade/primateplunge/Manifest
+699	/usr/portage/games-arcade/primateplunge/primateplunge-1.1-r1.ebuild
+700	/usr/portage/games-arcade/primateplunge/metadata.xml
+701	/usr/portage/games-arcade/primateplunge/files
+702	/usr/portage/games-arcade/primateplunge/files/primateplunge-1.1-AC_SUBST.patch
+703	/usr/portage/games-arcade/xsfcave
+704	/usr/portage/games-arcade/xsfcave/ChangeLog
+705	/usr/portage/games-arcade/xsfcave/Manifest
+706	/usr/portage/games-arcade/xsfcave/metadata.xml
+707	/usr/portage/games-arcade/xsfcave/xsfcave-0.5.ebuild
+708	/usr/portage/games-arcade/triplexinvaders
+709	/usr/portage/games-arcade/triplexinvaders/ChangeLog
+710	/usr/portage/games-arcade/triplexinvaders/Manifest
+711	/usr/portage/games-arcade/triplexinvaders/metadata.xml
+712	/usr/portage/games-arcade/triplexinvaders/triplexinvaders-1.08.ebuild
+713	/usr/portage/games-arcade/triplexinvaders/files
+714	/usr/portage/games-arcade/triplexinvaders/files/triplexinvaders-1.08-gentoo.patch
+715	/usr/portage/games-arcade/pachi
+716	/usr/portage/games-arcade/pachi/ChangeLog
+717	/usr/portage/games-arcade/pachi/Manifest
+718	/usr/portage/games-arcade/pachi/metadata.xml
+719	/usr/portage/games-arcade/pachi/pachi-1.0.ebuild
+720	/usr/portage/games-arcade/pachi/files
+721	/usr/portage/games-arcade/pachi/files/1.0-autotools.patch
+722	/usr/portage/games-arcade/marbleblastgold-demo
+723	/usr/portage/games-arcade/marbleblastgold-demo/ChangeLog
+724	/usr/portage/games-arcade/marbleblastgold-demo/Manifest
+725	/usr/portage/games-arcade/marbleblastgold-demo/metadata.xml
+726	/usr/portage/games-arcade/marbleblastgold-demo/marbleblastgold-demo-1.4.1.ebuild
+727	/usr/portage/games-arcade/blockrage
+728	/usr/portage/games-arcade/blockrage/ChangeLog
+729	/usr/portage/games-arcade/blockrage/Manifest
+730	/usr/portage/games-arcade/blockrage/metadata.xml
+731	/usr/portage/games-arcade/blockrage/blockrage-0.2.3.ebuild
+732	/usr/portage/games-arcade/blockrage/files
+733	/usr/portage/games-arcade/blockrage/files/blockrage-0.2.3-config.patch
+734	/usr/portage/games-arcade/solarwolf
+735	/usr/portage/games-arcade/solarwolf/solarwolf-1.5.ebuild
+736	/usr/portage/games-arcade/solarwolf/ChangeLog
+737	/usr/portage/games-arcade/solarwolf/Manifest
+738	/usr/portage/games-arcade/solarwolf/metadata.xml
+739	/usr/portage/games-arcade/xboing
+740	/usr/portage/games-arcade/xboing/ChangeLog
+741	/usr/portage/games-arcade/xboing/Manifest
+742	/usr/portage/games-arcade/xboing/metadata.xml
+743	/usr/portage/games-arcade/xboing/xboing-2.4-r2.ebuild
+744	/usr/portage/games-arcade/xboing/files
+745	/usr/portage/games-arcade/xboing/files/xboing-2.4-buffer.patch
+746	/usr/portage/games-arcade/xboing/files/xboing-2.4-sleep.patch
+747	/usr/portage/games-arcade/komi
+748	/usr/portage/games-arcade/komi/ChangeLog
+749	/usr/portage/games-arcade/komi/Manifest
+750	/usr/portage/games-arcade/komi/metadata.xml
+751	/usr/portage/games-arcade/komi/komi-1.04.ebuild
+752	/usr/portage/games-arcade/komi/files
+753	/usr/portage/games-arcade/komi/files/1.04-DESTDIR.patch
+754	/usr/portage/games-arcade/komi/files/komi-1.04-install.patch
+755	/usr/portage/games-arcade/metadata.xml
+756	/usr/portage/games-arcade/briquolo
+757	/usr/portage/games-arcade/briquolo/ChangeLog
+758	/usr/portage/games-arcade/briquolo/Manifest
+759	/usr/portage/games-arcade/briquolo/briquolo-0.5.7.ebuild
+760	/usr/portage/games-arcade/briquolo/metadata.xml
+761	/usr/portage/games-arcade/briquolo/files
+762	/usr/portage/games-arcade/briquolo/files/briquolo-0.5.7-gcc43.patch
+763	/usr/portage/games-arcade/briquolo/files/briquolo-0.5.7-libpng14.patch
+764	/usr/portage/games-arcade/spout
+765	/usr/portage/games-arcade/spout/ChangeLog
+766	/usr/portage/games-arcade/spout/Manifest
+767	/usr/portage/games-arcade/spout/metadata.xml
+768	/usr/portage/games-arcade/spout/spout-1.3.ebuild
+769	/usr/portage/games-arcade/mrrescue
+770	/usr/portage/games-arcade/mrrescue/ChangeLog
+771	/usr/portage/games-arcade/mrrescue/Manifest
+772	/usr/portage/games-arcade/mrrescue/metadata.xml
+773	/usr/portage/games-arcade/mrrescue/mrrescue-1.02b.ebuild
+774	/usr/portage/games-arcade/insaneodyssey
+775	/usr/portage/games-arcade/insaneodyssey/ChangeLog
+776	/usr/portage/games-arcade/insaneodyssey/Manifest
+777	/usr/portage/games-arcade/insaneodyssey/metadata.xml
+778	/usr/portage/games-arcade/insaneodyssey/insaneodyssey-000311.ebuild
+779	/usr/portage/games-arcade/insaneodyssey/files
+780	/usr/portage/games-arcade/insaneodyssey/files/insaneodyssey-000311-datafiles.patch
+781	/usr/portage/games-arcade/trailblazer
+782	/usr/portage/games-arcade/trailblazer/ChangeLog
+783	/usr/portage/games-arcade/trailblazer/Manifest
+784	/usr/portage/games-arcade/trailblazer/metadata.xml
+785	/usr/portage/games-arcade/trailblazer/trailblazer-0.9.ebuild
+786	/usr/portage/games-arcade/trailblazer/files
+787	/usr/portage/games-arcade/trailblazer/files/trailblazer-0.9-underlink.patch
+788	/usr/portage/games-arcade/trailblazer/files/trailblazer-0.9-ldflags.patch
+789	/usr/portage/games-arcade/monkey-bubble
+790	/usr/portage/games-arcade/monkey-bubble/ChangeLog
+791	/usr/portage/games-arcade/monkey-bubble/monkey-bubble-0.4.0.ebuild
+792	/usr/portage/games-arcade/monkey-bubble/Manifest
+793	/usr/portage/games-arcade/monkey-bubble/metadata.xml
+794	/usr/portage/games-arcade/monkey-bubble/files
+795	/usr/portage/games-arcade/monkey-bubble/files/monkey-bubble-0.4.0-glib-single-include.patch
+796	/usr/portage/games-arcade/monkey-bubble/files/monkey-bubble-0.4.0-gnome-doc.patch
+797	/usr/portage/games-arcade/monkey-bubble/files/monkey-bubble-0.4.0-asneeded.patch
+798	/usr/portage/games-arcade/monkey-bubble/files/monkey-bubble-0.4.0-noesound.patch
+799	/usr/portage/games-arcade/whichwayisup
+800	/usr/portage/games-arcade/whichwayisup/ChangeLog
diff --git a/libodbcpp/unittests/odbcschema.sql b/libodbcpp/unittests/odbcschema.sql
new file mode 100644
index 0000000..96848eb
--- /dev/null
+++ b/libodbcpp/unittests/odbcschema.sql
@@ -0,0 +1,8 @@
+CREATE TABLE test(
+		id int,
+		fl numeric(5,2),
+		string text,
+		boolean bool,
+		dt timestamp without time zone,
+		ts interval);
+INSERT INTO test VALUES(4, 123.45, 'some text', true, '2015-04-27 23:06:03', '1 day 14:13:12');
diff --git a/libodbcpp/unittests/testodbc.cpp b/libodbcpp/unittests/testodbc.cpp
new file mode 100644
index 0000000..15e0166
--- /dev/null
+++ b/libodbcpp/unittests/testodbc.cpp
@@ -0,0 +1,101 @@
+#define BOOST_TEST_MODULE TestODBC
+#include <boost/test/unit_test.hpp>
+
+#include <definedDirs.h>
+#include <modifycommand.h>
+#include <selectcommand.h>
+#include <column.h>
+#include <mock.h>
+#include <testCore.h>
+#include <definedDirs.h>
+#include <boost/date_time/posix_time/posix_time.hpp>
+
+class StandardMockDatabase : public ODBC::Mock {
+	public:
+		StandardMockDatabase() : ODBC::Mock("Driver=postgresql;Database=postgres;uid=postgres;servername=/run/postgresql", "odbcmock", {
+				rootDir / "odbcschema.sql" })
+		{
+		}
+};
+
+BOOST_GLOBAL_FIXTURE( StandardMockDatabase );
+
+BOOST_FIXTURE_TEST_SUITE( Core, DB::TestCore );
+
+BOOST_AUTO_TEST_CASE( transactions )
+{
+	auto ro = DB::MockDatabase::openConnectionTo("odbcmock");
+
+	BOOST_REQUIRE_EQUAL(false, ro->inTx());
+	ro->beginTx();
+	BOOST_REQUIRE_EQUAL(true, ro->inTx());
+	ro->rollbackTx();
+	BOOST_REQUIRE_EQUAL(false, ro->inTx());
+
+	ro->beginTx();
+	BOOST_REQUIRE_EQUAL(true, ro->inTx());
+	ro->commitTx();
+	BOOST_REQUIRE_EQUAL(false, ro->inTx());
+
+	delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( bindAndSend )
+{
+	auto rw = DB::MockDatabase::openConnectionTo("odbcmock");
+
+	auto mod = rw->newModifyCommand("INSERT INTO test VALUES(?, ?, ?, ?, ?)");
+	mod->bindParamI(0, testInt);
+	mod->bindParamF(1, testDouble);
+	mod->bindParamS(2, testString);
+	mod->bindParamB(3, testBool);
+	mod->bindParamT(4, testDateTime);
+	mod->execute();
+	delete mod;
+	delete rw;
+}
+
+BOOST_AUTO_TEST_CASE( bindAndSelect )
+{
+	auto ro = DB::MockDatabase::openConnectionTo("odbcmock");
+
+	auto select = ro->newSelectCommand("SELECT * FROM test WHERE id = ?");
+	select->bindParamI(0, testInt);
+	select->execute();
+	int rows = 0;
+	while (select->fetch()) {
+		assertColumnValueHelper(*select, 0, testInt);
+		assertColumnValueHelper(*select, 1, testDouble);
+		assertColumnValueHelper(*select, 2, testString);
+		// assertColumnValueHelper(*select, 3, testBool);
+		assertColumnValueHelper(*select, 4, testDateTime);
+		rows += 1;
+	}
+	delete select;
+	BOOST_REQUIRE_EQUAL(1, rows);
+	delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( bindAndSelectOther )
+{
+	auto ro = DB::MockDatabase::openConnectionTo("odbcmock");
+
+	auto select = ro->newSelectCommand("SELECT * FROM test WHERE id != ?");
+	select->bindParamI(0, testInt);
+	select->execute();
+	int rows = 0;
+	while (select->fetch()) {
+		assertColumnValueHelper(*select, 0, 4);
+		assertColumnValueHelper(*select, 1, 123.45);
+		assertColumnValueHelper(*select, 2, std::string("some text"));
+		// assertColumnValueHelper(*select, 3, true);
+		assertColumnValueHelper(*select, 4, boost::posix_time::ptime_from_tm({ 3, 6, 23, 27, 3, 115, 0, 0, 0, 0, 0}));
+		rows += 1;
+	}
+	delete select;
+	BOOST_REQUIRE_EQUAL(1, rows);
+	delete ro;
+}
+
+BOOST_AUTO_TEST_SUITE_END();
+
-- 
cgit v1.2.3