From f5f56e1a1c4d9e9496fcb9d81131066a964ccd23 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 14:15:43 +0200 Subject: Adding upstream version 2.4.1. Signed-off-by: Daniel Baumann --- src/lib/database/testutils/schema.cc | 153 +++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 src/lib/database/testutils/schema.cc (limited to 'src/lib/database/testutils/schema.cc') 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 +#include + +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); +} + +} +} +} -- cgit v1.2.3