diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:15:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:15:43 +0000 |
commit | f5f56e1a1c4d9e9496fcb9d81131066a964ccd23 (patch) | |
tree | 49e44c6f87febed37efb953ab5485aa49f6481a7 /src/lib/database/testutils/schema.cc | |
parent | Initial commit. (diff) | |
download | isc-kea-f5f56e1a1c4d9e9496fcb9d81131066a964ccd23.tar.xz isc-kea-f5f56e1a1c4d9e9496fcb9d81131066a964ccd23.zip |
Adding upstream version 2.4.1.upstream/2.4.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/lib/database/testutils/schema.cc')
-rw-r--r-- | src/lib/database/testutils/schema.cc | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/src/lib/database/testutils/schema.cc b/src/lib/database/testutils/schema.cc new file mode 100644 index 0000000..b396b9e --- /dev/null +++ b/src/lib/database/testutils/schema.cc @@ -0,0 +1,153 @@ +// Copyright (C) 2016-2023 Internet Systems Consortium, Inc. ("ISC") +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include <config.h> +#include <string> + +using namespace std; + +namespace isc { +namespace db { +namespace test { + +// Connection strings. +// Database: keatest +// Host: localhost +// Username: keatest +// Password: keatest + +const char* INVALID_TYPE = "type=unknown"; +const char* VALID_NAME = "name=keatest"; +const char* INVALID_NAME = "name=invalidname"; +const char* VALID_HOST = "host=localhost"; +const char* VALID_HOST_TCP = "host=127.0.0.1"; +const char* INVALID_HOST = "host=invalidhost"; +const char* INVALID_PORT_1 = "port=65536"; +const char* VALID_USER = "user=keatest"; +const char* VALID_READONLY_USER = "user=keatest_readonly"; +const char* VALID_SECURE_USER = "user=keatest_secure"; +const char* INVALID_USER = "user=invaliduser"; +const char* VALID_PASSWORD = "password=keatest"; +const char* INVALID_PASSWORD = "password=invalid"; +const char* VALID_TIMEOUT = "connect-timeout=10"; +const char* INVALID_TIMEOUT_1 = "connect-timeout=foo"; +const char* INVALID_TIMEOUT_2 = "connect-timeout=-17"; +const char* INVALID_TIMEOUT_3 = "connect-timeout=0"; +const char* VALID_READ_TIMEOUT = "read-timeout=11"; +const char* VALID_READ_TIMEOUT_ZERO = "read-timeout=0"; +const char* INVALID_READ_TIMEOUT_1 = "read-timeout=bar"; +const char* VALID_WRITE_TIMEOUT = "write-timeout=12"; +const char* VALID_WRITE_TIMEOUT_ZERO = "write-timeout=0"; +const char* INVALID_WRITE_TIMEOUT_1 = "write-timeout=baz"; +const char* VALID_TCP_USER_TIMEOUT = "tcp-user-timeout=8"; +const char* VALID_TCP_USER_TIMEOUT_ZERO = "tcp-user-timeout=0"; +const char* INVALID_TCP_USER_TIMEOUT_1 = "-7"; +const char* VALID_READONLY_DB = "readonly=true"; +const char* INVALID_READONLY_DB = "readonly=5"; +const char* VALID_CERT = "cert-file=" TEST_CA_DIR "/kea-client.crt"; +const char* VALID_KEY = "key-file=" TEST_CA_DIR "/kea-client.key"; +const char* INVALID_KEY = "key-file=" TEST_CA_DIR "/kea-other.key"; +const char* VALID_CA = "trust-anchor=" TEST_CA_DIR "/kea-ca.crt"; +const char* VALID_CIPHER = "cipher-list=AES"; + +string connectionString(const char* type, const char* name, const char* host, + const char* user, const char* password, + const char* timeout, const char* readonly_db, + const char* cert_file, const char* key_file, + const char* trust_anchor, const char* cipher) { + const string space = " "; + string result = ""; + + if (type) { + result += string(type); + } + + if (name) { + if (! result.empty()) { + result += space; + } + result += string(name); + } + + if (host) { + if (! result.empty()) { + result += space; + } + result += string(host); + } + + if (user) { + if (! result.empty()) { + result += space; + } + result += string(user); + } + + if (password) { + if (! result.empty()) { + result += space; + } + result += string(password); + } + + if (timeout) { + if (! result.empty()) { + result += space; + } + result += string(timeout); + } + + if (readonly_db) { + if (! result.empty()) { + result += space; + } + result += string(readonly_db); + } + + if (cert_file) { + if (! result.empty()) { + result += space; + } + result += string(cert_file); + } + + if (key_file) { + if (! result.empty()) { + result += space; + } + result += string(key_file); + } + + if (trust_anchor) { + if (! result.empty()) { + result += space; + } + result += string(trust_anchor); + } + + if (cipher) { + if (! result.empty()) { + result += space; + } + result += string(cipher); + } + + return (result); +} + +bool +softWipeEnabled() { + const char* const wipe_only = getenv("KEA_TEST_DB_WIPE_DATA_ONLY"); + if (wipe_only && (std::string(wipe_only) == std::string("false"))) { + return (false); + } + + return (true); +} + +} +} +} |