summaryrefslogtreecommitdiff
path: root/libpqpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2015-09-24 03:02:07 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2015-09-24 03:06:06 +0100
commitf8317be5c2b2f6d31622d863a41646fa456afbbe (patch)
tree6124ba5d953fea59f5b8e6132261003f258e49cf /libpqpp
parentConnector compatibility fix (diff)
downloadlibdbpp-postgresql-f8317be5c2b2f6d31622d863a41646fa456afbbe.tar.bz2
libdbpp-postgresql-f8317be5c2b2f6d31622d863a41646fa456afbbe.tar.xz
libdbpp-postgresql-f8317be5c2b2f6d31622d863a41646fa456afbbe.zip
PostgreSQL mocking and tests from Project2
Diffstat (limited to 'libpqpp')
-rw-r--r--libpqpp/Jamfile.jam8
-rw-r--r--libpqpp/connection.cpp2
-rw-r--r--libpqpp/mock.cpp33
-rw-r--r--libpqpp/mock.h22
-rw-r--r--libpqpp/unittests/Jamfile.jam18
-rw-r--r--libpqpp/unittests/bulk.sample800
-rw-r--r--libpqpp/unittests/pqschema.sql37
-rw-r--r--libpqpp/unittests/testpq.cpp159
8 files changed, 1077 insertions, 2 deletions
diff --git a/libpqpp/Jamfile.jam b/libpqpp/Jamfile.jam
index dc1fd66..77ac045 100644
--- a/libpqpp/Jamfile.jam
+++ b/libpqpp/Jamfile.jam
@@ -12,15 +12,19 @@ alias libpq : : : :
;
-lib pqpp :
+lib dbpp-postgresql :
[ glob *.cpp ] :
- <cflags>-fPIC
<library>glibmm
<library>libpq
<library>../libdbpp
+ <cflags>-fvisibility=hidden
+ <variant>release:<cflags>-flto
: :
<include>.
<cflags>"-I`pg_config --includedir`"
<library>glibmm
<library>../libdbpp
;
+
+build-project unittests ;
+
diff --git a/libpqpp/connection.cpp b/libpqpp/connection.cpp
index 77bdd10..e41cd3b 100644
--- a/libpqpp/connection.cpp
+++ b/libpqpp/connection.cpp
@@ -4,6 +4,8 @@
#include "modifycommand.h"
#include <unistd.h>
+NAMEDFACTORY("postgresql", PQ::Connection, DB::ConnectionFactory);
+
static void
noNoticeProcessor(void *, const char *)
{
diff --git a/libpqpp/mock.cpp b/libpqpp/mock.cpp
new file mode 100644
index 0000000..20d4340
--- /dev/null
+++ b/libpqpp/mock.cpp
@@ -0,0 +1,33 @@
+#include "mock.h"
+#include "connection.h"
+#include <buffer.h>
+
+namespace PQ {
+
+Mock::Mock(const std::string & masterdb, const std::string & name, const std::vector<boost::filesystem::path> & ss) :
+ MockServerDatabase(masterdb, name, "postgresql")
+{
+ CreateNewDatabase();
+ PlaySchemaScripts(ss);
+}
+
+DB::Connection *
+Mock::openConnection() const
+{
+ return new Connection(stringbf("user=postgres dbname=%s", 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/libpqpp/mock.h b/libpqpp/mock.h
new file mode 100644
index 0000000..e8b7366
--- /dev/null
+++ b/libpqpp/mock.h
@@ -0,0 +1,22 @@
+#ifndef MOCKPQDATASOURCE_H
+#define MOCKPQDATASOURCE_H
+
+#include <mockDatabase.h>
+#include <boost/filesystem/path.hpp>
+#include <visibility.h>
+
+namespace PQ {
+ 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();
+
+ DB::Connection * openConnection() const override;
+
+ protected:
+ void DropDatabase() const override;
+ };
+}
+
+#endif
+
diff --git a/libpqpp/unittests/Jamfile.jam b/libpqpp/unittests/Jamfile.jam
new file mode 100644
index 0000000..39d0576
--- /dev/null
+++ b/libpqpp/unittests/Jamfile.jam
@@ -0,0 +1,18 @@
+import testing ;
+
+path-constant me : . ;
+
+lib boost_utf : : <name>boost_unit_test_framework ;
+
+run
+ testpq.cpp
+ : : :
+ <define>ROOT=\"$(me)\"
+ <define>BOOST_TEST_DYN_LINK
+ <library>..//dbpp-postgresql
+ <library>../../libdbpp//dbpptestcore
+ <library>boost_utf
+ :
+ testpq
+ ;
+
diff --git a/libpqpp/unittests/bulk.sample b/libpqpp/unittests/bulk.sample
new file mode 100644
index 0000000..ae81633
--- /dev/null
+++ b/libpqpp/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/libpqpp/unittests/pqschema.sql b/libpqpp/unittests/pqschema.sql
new file mode 100644
index 0000000..80d9183
--- /dev/null
+++ b/libpqpp/unittests/pqschema.sql
@@ -0,0 +1,37 @@
+--
+-- pg_dump style comment
+-- Table: test; owner: comment: ;
+--
+
+/*
+ This is
+ a
+ multiline comment */
+
+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 with a ; in it and a '' too', true, '2015-04-27 23:06:03', '1 day 14:13:12');
+
+CREATE TABLE test2(
+ path text not null);
+
+INSERT INTO test2 VALUES('$SCRIPTDIR/pqschema.sql');
+
+CREATE FUNCTION event_tsvector() RETURNS int
+LANGUAGE sql STABLE
+AS $tag$
+ SELECT max(id)
+ FROM test
+ WHERE string != 'complex '' string;';
+$tag$;
+
+CREATE TABLE bulktest(
+ id int,
+ string text);
+
diff --git a/libpqpp/unittests/testpq.cpp b/libpqpp/unittests/testpq.cpp
new file mode 100644
index 0000000..58441d2
--- /dev/null
+++ b/libpqpp/unittests/testpq.cpp
@@ -0,0 +1,159 @@
+#define BOOST_TEST_MODULE TestPQ
+#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 <fstream>
+#include <boost/date_time/posix_time/posix_time.hpp>
+
+class StandardMockDatabase : public PQ::Mock {
+ public:
+ StandardMockDatabase() : PQ::Mock("user=postgres dbname=postgres", "pqmock", {
+ rootDir / "pqschema.sql" })
+ {
+ }
+};
+
+BOOST_GLOBAL_FIXTURE( StandardMockDatabase );
+
+BOOST_FIXTURE_TEST_SUITE( Core, DB::TestCore );
+
+BOOST_AUTO_TEST_CASE( transactions )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ 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("pqmock");
+
+ 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->bindParamT(5, testInterval);
+ mod->execute();
+ delete mod;
+ rw->commitTx();
+ delete rw;
+}
+
+BOOST_AUTO_TEST_CASE( bindAndSelect )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ 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);
+ assertColumnValueHelper(*select, 5, testInterval);
+ rows += 1;
+ }
+ delete select;
+ BOOST_REQUIRE_EQUAL(1, rows);
+ delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( bindAndSelectOther )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ 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 with a ; in it and a ' too"));
+ assertColumnValueHelper(*select, 3, true);
+ assertColumnValueHelper(*select, 4, boost::posix_time::ptime_from_tm({ 3, 6, 23, 27, 3, 115, 0, 0, 0, 0, 0}));
+ assertColumnValueHelper(*select, 5, boost::posix_time::time_duration(38, 13, 12));
+ rows += 1;
+ }
+ delete select;
+ BOOST_REQUIRE_EQUAL(1, rows);
+ delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( testP2MockScriptDir )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ auto select = ro->newSelectCommand("SELECT path FROM test2");
+ select->execute();
+ while (select->fetch()) {
+ std::string path;
+ (*select)[0] >> path;
+ BOOST_REQUIRE(boost::filesystem::exists(path));
+ }
+ delete select;
+ delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( bulkload )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ auto count = ro->newSelectCommand("SELECT COUNT(*) FROM bulktest");
+ // Test empty
+ ro->beginBulkUpload("bulktest", "");
+ ro->endBulkUpload(NULL);
+ assertScalarValueHelper(*count, 0);
+ // Test sample file
+ ro->beginBulkUpload("bulktest", "");
+ std::ifstream in((rootDir / "bulk.sample").string());
+ if (!in.good()) throw std::runtime_error("Couldn't open bulk.sample");
+ char buf[BUFSIZ];
+ for (std::streamsize r; (r = in.readsome(buf, sizeof(buf))) > 0; ) {
+ ro->bulkUploadData(buf, r);
+ }
+ ro->endBulkUpload(NULL);
+ assertScalarValueHelper(*count, 800);
+
+ delete count;
+ delete ro;
+}
+
+BOOST_AUTO_TEST_CASE( bigIterate )
+{
+ auto ro = DB::MockDatabase::openConnectionTo("pqmock");
+
+ auto count = ro->newSelectCommand("SELECT * FROM bulktest");
+ unsigned int rows = 0;
+ while (count->fetch()) {
+ rows += 1;
+ }
+ BOOST_REQUIRE_EQUAL(800, rows);
+
+ delete count;
+ delete ro;
+}
+
+BOOST_AUTO_TEST_SUITE_END();
+