Skip to content
Snippets Groups Projects
Verified Commit 8e9a0620 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Cleanup debugging changes

parent afcf530c
No related branches found
No related tags found
3 merge requests!33Release 0.1,!31F logging segfaults,!30Debug build
......@@ -39,24 +39,24 @@ const std::string logger_name = "caosdb::logging";
typedef boost::log::sources::severity_channel_logger_mt<int, std::string> boost_logger_class;
class _logger {
class logger {
public:
static boost_logger_class &get() { return *_logger::GetInstance()._logger_instance; }
static boost_logger_class &get() { return *logger::GetInstance()._logger_instance; }
static void destroy() {
auto &instance = _logger::GetInstance();
auto &instance = logger::GetInstance();
delete instance._logger_instance;
}
private:
_logger() { this->_logger_instance = new boost_logger_class(); };
static _logger &GetInstance() {
static _logger instance;
logger() { this->_logger_instance = new boost_logger_class(); };
static logger &GetInstance() {
static logger instance;
return instance;
}
boost_logger_class *_logger_instance;
};
auto inline get_logger() -> boost_logger_class & { return _logger::get(); }
auto inline get_logger() -> boost_logger_class & { return logger::get(); }
/**
* This class stores the integer log level.
......
......@@ -45,13 +45,11 @@
#include <vector>
void __attribute__((constructor)) startup() {
std::cout << "LOADING CAOSDB 1" << std::endl;
boost::log::core::get()->set_logging_enabled(false);
std::cout << "LOADING CAOSDB 2" << std::endl;
std::cout << "LOADING CAOSDB" << std::endl;
}
void __attribute__((destructor)) shutdown() {
std::cout << "UNLOADING CAOSDB 1" << std::endl;
caosdb::logging::_logger::destroy();
std::cout << "UNLOADING CAOSDB" << std::endl;
caosdb::logging::logger::destroy();
}
namespace caosdb::logging {
......
/*
*
* This file is a part of the CaosDB Project.
*
* Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale.com>
* Copyright (C) 2021 IndiScale GmbH <info@indiscale.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#include <gtest/gtest-message.h> // for Message
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl
#include <gtest/gtest_pred_impl.h> // for Test, TestInfo, EXPECT_EQ, TEST
#include <iostream> // for cout, <<
#include <string> // for string
#include <utility> // for move
namespace caosdb {
class TestClass {
public:
~TestClass() = default;
TestClass(TestClass &&other) = default;
TestClass(const TestClass &other);
TestClass();
explicit TestClass(std::string member);
auto operator=(const TestClass &other) -> TestClass &;
auto operator=(TestClass &&other) -> TestClass & = default;
[[nodiscard]] auto ToString() const -> std::string;
std::string member;
};
TestClass::TestClass() { std::cout << "Constructor TestClass(): " << ToString() << "\n"; }
TestClass::TestClass(std::string member) : member(std::move(member)) {
std::cout << "Constructor TestClass(const std:string &): " << ToString() << "\n";
}
TestClass::TestClass(const TestClass &other) : member(other.member) {
std::cout << "Copy Constructor TestClass(const TestClass &): " << ToString() << "\n";
}
auto TestClass::operator=(const TestClass &other) -> TestClass & {
std::cout << "Copy assignment (" << ToString() << "->";
if (this != &other) {
this->member = other.member;
}
std::cout << ToString() << ")\n";
return *this;
}
auto TestClass::ToString() const -> std::string { return "TestClass(" + member + ")"; }
TEST(test_misc, test_move) {
TestClass test_class1;
std::cout << "test_class1: " << test_class1.ToString() << "\n";
TestClass test_class2 = test_class1;
std::cout << "test_class2: " << test_class2.ToString() << "\n";
const TestClass test_class3("member3");
std::cout << "test_class3: " << test_class3.ToString() << "\n";
TestClass test_class4 = test_class3;
std::cout << "test_class4: " << test_class4.ToString() << "\n";
}
} // namespace caosdb
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment