summaryrefslogtreecommitdiff
path: root/common/lifecycle
diff options
context:
space:
mode:
Diffstat (limited to 'common/lifecycle')
-rw-r--r--common/lifecycle/buildfile40
-rw-r--r--common/lifecycle/driver.cxx248
-rw-r--r--common/lifecycle/test.hxx27
-rw-r--r--common/lifecycle/testscript33
4 files changed, 0 insertions, 348 deletions
diff --git a/common/lifecycle/buildfile b/common/lifecycle/buildfile
deleted file mode 100644
index b5b2b00..0000000
--- a/common/lifecycle/buildfile
+++ /dev/null
@@ -1,40 +0,0 @@
-# file : common/lifecycle/buildfile
-# license : GNU GPL v2; see accompanying LICENSE file
-
-import libodb = libodb%lib{odb}
-
-libs =
-
-for db: $databases
- import libs += libodb-$db%lib{odb-$db}
-
-import libs += lib{common}
-
-exe{driver}: {hxx cxx}{* -*-odb -*-odb-*} {hxx ixx cxx}{test-odb} testscript
-
-# Introduce the metadata library target to make sure the libodb library is
-# resolved for the odb_compile ad hoc rule (see build/root.build for details).
-#
-libue{test-meta}: $libodb
-
-<{hxx ixx cxx}{test-odb}>: hxx{test} libue{test-meta}
-
-for db: $databases
-{
- exe{driver}: {hxx ixx cxx}{test-odb-$db}: include = $multi
- <{hxx ixx cxx}{test-odb-$db}>: hxx{test} libue{test-meta}
-}
-
-exe{driver}: libue{test-meta} $libs
-
-# Specify the ODB custom options to be used by the odb_compile ad hoc rule
-# (see build/root.build for details).
-#
-odb_options = --table-prefix lifecycle_ \
- --generate-schema
-
-cxx.poptions =+ "-I$out_base" "-I$src_base"
-
-# Testscript's run-time prerequisites.
-#
-exe{driver}: ../../alias{database-client}: include = adhoc
diff --git a/common/lifecycle/driver.cxx b/common/lifecycle/driver.cxx
deleted file mode 100644
index a01d5bd..0000000
--- a/common/lifecycle/driver.cxx
+++ /dev/null
@@ -1,248 +0,0 @@
-// file : common/lifecycle/driver.cxx
-// license : GNU GPL v2; see accompanying LICENSE file
-
-// Test object state transistions.
-//
-
-#include <memory> // std::unique_ptr
-#include <iostream>
-
-#include <odb/database.hxx>
-#include <odb/transaction.hxx>
-
-#include <libcommon/common.hxx>
-
-#include "test.hxx"
-#include "test-odb.hxx"
-
-#undef NDEBUG
-#include <cassert>
-
-using namespace std;
-using namespace odb::core;
-
-int
-main (int argc, char* argv[])
-{
- try
- {
- unique_ptr<database> db (create_database (argc, argv));
-
- // Database operation out of transaction.
- //
- try
- {
- object o (1);
- db->persist (o);
- assert (false);
- }
- catch (const not_in_transaction&)
- {
- }
-
- // Transient.
- //
- try
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
-
- // Persistent.
- //
- {
- object o (1);
- o.str_ = "value 1";
-
- transaction t (db->begin ());
- db->persist (o);
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- db->persist (o);
- assert (false);
- t.commit ();
- }
- catch (const object_already_persistent&)
- {
- }
- }
-
- // Find.
- //
- {
- transaction t (db->begin ());
-
- unique_ptr<object> o1 (db->find<object> (1));
- assert (o1.get () != 0 && o1->str_ == "value 1");
-
- unique_ptr<object> o2 (db->find<object> (2));
- assert (o2.get () == 0);
-
- t.commit ();
- }
-
- // Find (into existing).
- //
- {
- object o;
-
- transaction t (db->begin ());
-
- assert (db->find (1, o));
- assert (o.str_ == "value 1");
-
- assert (!db->find (2, o));
-
- t.commit ();
- }
-
- // Load.
- //
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- assert (o->str_ == "value 1");
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (2));
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
-
- // Load (into existing).
- //
- {
- object o;
-
- transaction t (db->begin ());
- db->load (1, o);
- assert (o.str_ == "value 1");
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- db->load (2, o);
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
-
- // Reload.
- //
- {
- object o;
-
- transaction t (db->begin ());
- db->load (1, o);
- o.str_ = "junk";
- db->reload (o);
- assert (o.str_ == "value 1");
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- o.id_ = 2;
- db->reload (o);
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
-
- // Modified.
- //
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- o->str_ = "value 2";
- db->update (*o);
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- o->id_ = 2;
- db->update (*o);
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
-
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- assert (o->str_ == "value 2");
- t.commit ();
- }
-
- // Update of unmodified object.
- //
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- db->update (*o);
- t.commit ();
- }
-
- // Transient.
- //
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- db->erase (*o);
- t.commit ();
-
- try
- {
- transaction t (db->begin ());
- db->erase<object> (1);
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
-
- try
- {
- transaction t (db->begin ());
- unique_ptr<object> o (db->load<object> (1));
- assert (false);
- t.commit ();
- }
- catch (const object_not_persistent&)
- {
- }
- }
- catch (const odb::exception& e)
- {
- cerr << e.what () << endl;
- return 1;
- }
-}
diff --git a/common/lifecycle/test.hxx b/common/lifecycle/test.hxx
deleted file mode 100644
index 8d260d2..0000000
--- a/common/lifecycle/test.hxx
+++ /dev/null
@@ -1,27 +0,0 @@
-// file : common/lifecycle/test.hxx
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TEST_HXX
-#define TEST_HXX
-
-#include <string>
-#include <odb/core.hxx>
-
-#pragma db object
-struct object
-{
- object (unsigned long id)
- : id_ (id)
- {
- }
-
- object ()
- {
- }
-
- #pragma db id
- unsigned long id_;
- std::string str_;
-};
-
-#endif // TEST_HXX
diff --git a/common/lifecycle/testscript b/common/lifecycle/testscript
deleted file mode 100644
index 0337bba..0000000
--- a/common/lifecycle/testscript
+++ /dev/null
@@ -1,33 +0,0 @@
-# file : common/lifecycle/testscript
-# license : GNU GPL v2; see accompanying LICENSE file
-
-.include ../../database-options.testscript
-
-: mysql
-:
-if $mysql
-{
- .include ../../mysql.testscript
-
- $create_schema;
- $*
-}
-
-: sqlite
-:
-if $sqlite
-{
- .include ../../sqlite.testscript
-
- $*
-}
-
-: pgsql
-:
-if $pgsql
-{
- .include ../../pgsql.testscript
-
- $create_schema;
- $*
-}