diff options
Diffstat (limited to 'odb-tests/mysql/database')
-rw-r--r-- | odb-tests/mysql/database/buildfile | 14 | ||||
-rw-r--r-- | odb-tests/mysql/database/driver.cxx | 72 | ||||
-rw-r--r-- | odb-tests/mysql/database/testscript | 6 |
3 files changed, 92 insertions, 0 deletions
diff --git a/odb-tests/mysql/database/buildfile b/odb-tests/mysql/database/buildfile new file mode 100644 index 0000000..5731f6f --- /dev/null +++ b/odb-tests/mysql/database/buildfile @@ -0,0 +1,14 @@ +# file : mysql/database/buildfile +# license : GNU GPL v2; see accompanying LICENSE file + +if ($build.meta_operation != 'dist') +{ + assert ($mysql) "mysql should be configured for this test" + assert (!$multi) "multi-database mode is not supported by this test" +} + +import libs = libodb-mysql%lib{odb-mysql} + +exe{driver}: {hxx cxx}{*} $libs testscript + +cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/mysql/database/driver.cxx b/odb-tests/mysql/database/driver.cxx new file mode 100644 index 0000000..525ee87 --- /dev/null +++ b/odb-tests/mysql/database/driver.cxx @@ -0,0 +1,72 @@ +// file : mysql/database/driver.cxx +// license : GNU GPL v2; see accompanying LICENSE file + +// Test that database constructors are unambiguous (compilation only). +// + +#include <string> + +#include <odb/mysql/database.hxx> + +#undef NDEBUG +#include <cassert> + +using std::string; +namespace mysql = odb::mysql; +using namespace mysql; + +int +main (int argc, char* argv[]) +{ + // This code should not execute. + // + if (argc != 0) + return 0; + + { + database d1 (0, 0, 0); + database d2 ("bob", "secret", "db1"); + database d3 ("bob", "secret", "db1", "server1"); + database d4 ("bob", "secret", "db1", "server1", 999); + database d5 ("bob", "secret", "db1", "server1", 999, "sock1"); + database d6 ("bob", "secret", "db1", "server1", 999, "sock1", "charset1"); + } + + std::string u ("bob"), p ("secret"), db ("bd1"), h ("server1"), + s ("sock1"), cs ("charset1"); + + { + database d1 (u, p, db); + database d2 (u, p, db, h); + database d3 (u, p, db, h, 999); + database d4 (u, p, db, h, 999, &s); + database d5 (u, p, db, h, 999, &s, cs); + } + + { + database d1 (u, 0, db); + database d2 (u, &p, db); + database d3 (u, &p, db, h); + database d4 (u, &p, db, h, 999); + database d5 (u, &p, db, h, 999, &s); + database d6 (u, &p, db, h, 999, &s, cs); + } + + { + database d1 (u, p, db, h, 999, "socket1"); + database d2 (u, p, db, h, 999, s); + database d3 (u, p, db, h, 999, s, cs); + } + + { + database d1 (u, 0, db, h, 999, s); + database d2 (u, &p, db, h, 999, "socket1"); + database d3 (u, &p, db, h, 999, s, cs); + } + + { + database d1 (argc, argv); + database d2 (argc, argv, false); + database d3 (argc, argv, true, "charset1"); + } +} diff --git a/odb-tests/mysql/database/testscript b/odb-tests/mysql/database/testscript new file mode 100644 index 0000000..c2ff256 --- /dev/null +++ b/odb-tests/mysql/database/testscript @@ -0,0 +1,6 @@ +# file : mysql/database/testscript +# license : GNU GPL v2; see accompanying LICENSE file + +: basics +: +$* |