summaryrefslogtreecommitdiff
path: root/common/blob
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-01-25 20:32:06 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-01-25 20:32:06 +0300
commit0d49ea1fe08cf1eab41a00149393a291c65a59d7 (patch)
tree0391eb09309ca95282e200516937e64d89f3e1bb /common/blob
parentfc3fb39c90ab7fe5fccbe3f3bc0eb2645157bb96 (diff)
Turn odb-tests repository into package for muti-package repositoryodb-tests
Diffstat (limited to 'common/blob')
-rw-r--r--common/blob/buildfile40
-rw-r--r--common/blob/driver.cxx76
-rw-r--r--common/blob/test.hxx71
-rw-r--r--common/blob/testscript33
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;
- $*
-}