diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 20:32:06 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 20:32:06 +0300 |
commit | 0d49ea1fe08cf1eab41a00149393a291c65a59d7 (patch) | |
tree | 0391eb09309ca95282e200516937e64d89f3e1bb /common/blob | |
parent | fc3fb39c90ab7fe5fccbe3f3bc0eb2645157bb96 (diff) |
Turn odb-tests repository into package for muti-package repositoryodb-tests
Diffstat (limited to 'common/blob')
-rw-r--r-- | common/blob/buildfile | 40 | ||||
-rw-r--r-- | common/blob/driver.cxx | 76 | ||||
-rw-r--r-- | common/blob/test.hxx | 71 | ||||
-rw-r--r-- | common/blob/testscript | 33 |
4 files changed, 0 insertions, 220 deletions
diff --git a/common/blob/buildfile b/common/blob/buildfile deleted file mode 100644 index cc6d164..0000000 --- a/common/blob/buildfile +++ /dev/null @@ -1,40 +0,0 @@ -# file : common/blob/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 blob_ \ - --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/blob/driver.cxx b/common/blob/driver.cxx deleted file mode 100644 index 269f415..0000000 --- a/common/blob/driver.cxx +++ /dev/null @@ -1,76 +0,0 @@ -// file : common/blob/driver.cxx -// license : GNU GPL v2; see accompanying LICENSE file - -// Test BLOB mapping. -// - -#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)); - - const char data[] = - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B" - "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B" - "cccccccccccccccccccccccccccccccccccccccccccccccc" - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B" - "dddddddddddddddddddddddddddddddddddddddddddddddd" - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B" - "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B" - "ffffffffffffffffffffffffffffffffffffffffffffffff"; - - const unsigned char* udata = reinterpret_cast<const unsigned char*> (data); - - object o (1); - o.vc.assign (data, data + sizeof (data)); - o.vuc.assign (udata, udata + sizeof (data)); - memcpy (o.c, data, sizeof (data)); - memcpy (o.uc, udata, sizeof (data)); - memcpy (o.a.data (), data, sizeof (data)); - memcpy (o.ua.data (), udata, sizeof (data)); - o.cont.push_back (1); - o.cont.push_back (2); - o.cont.push_back (3); - - { - transaction t (db->begin ()); - db->persist (o); - t.commit (); - } - - { - transaction t (db->begin ()); - unique_ptr<object> o1 (db->load<object> (1)); - t.commit (); - - assert (o == *o1); - } - } - catch (const odb::exception& e) - { - cerr << e.what () << endl; - return 1; - } -} diff --git a/common/blob/test.hxx b/common/blob/test.hxx deleted file mode 100644 index 9602ca2..0000000 --- a/common/blob/test.hxx +++ /dev/null @@ -1,71 +0,0 @@ -// file : common/blob/test.hxx -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TEST_HXX -#define TEST_HXX - -#include <array> -#include <vector> -#include <cstring> // std::memcmp - -#include <odb/core.hxx> - -#ifdef ODB_COMPILER -# if defined(ODB_DATABASE_PGSQL) -# define BLOB_TYPE "BYTEA" -# elif defined(ODB_DATABASE_MSSQL) -//# define BLOB_TYPE "VARBINARY(1024)" -# define BLOB_TYPE "VARBINARY(max)" -# else -//# define BLOB_TYPE "RAW(1024)" -# define BLOB_TYPE "BLOB" -# endif -#endif - -#pragma db object -struct object -{ - object () {} - object (unsigned long id): id_ (id) {} - - #pragma db id - unsigned long id_; - - #pragma db type(BLOB_TYPE) - std::vector<char> vc; - - #pragma db type(BLOB_TYPE) - std::vector<unsigned char> vuc; - - #pragma db type(BLOB_TYPE) - char c[1024]; - - #pragma db type(BLOB_TYPE) - unsigned char uc[1024]; - - #pragma db type(BLOB_TYPE) - std::array<char, 1024> a; - - #pragma db type(BLOB_TYPE) - std::array<char, 1024> ua; - - // Make sure we can still use std::vector<char> and std::array<char> - // as containers. - // - std::vector<unsigned char> cont; -}; - -inline bool -operator== (const object& x, const object& y) -{ - return x.id_ == y.id_ - && x.vc == y.vc - && x.vuc == y.vuc - && std::memcmp (x.c, y.c, sizeof (x.c)) == 0 - && std::memcmp (x.uc, y.uc, sizeof (x.uc)) == 0 - && x.a == y.a - && x.ua == y.ua - && x.cont == y.cont; -} - -#endif // TEST_HXX diff --git a/common/blob/testscript b/common/blob/testscript deleted file mode 100644 index 4fb9955..0000000 --- a/common/blob/testscript +++ /dev/null @@ -1,33 +0,0 @@ -# file : common/blob/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; - $* -} |