mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-17 07:32:32 +00:00
Do thread cleanup within the same thread context.
This commit is contained in:
@@ -2,29 +2,63 @@
|
||||
#define TEST_HELPERS_TEST_MAIN_THREAD_H
|
||||
|
||||
#include <memory>
|
||||
#include <torrent/common.h>
|
||||
#include <torrent/utils/thread.h>
|
||||
|
||||
#include "test/helpers/test_fixture.h"
|
||||
#include "test/helpers/test_thread.h"
|
||||
#include "torrent/common.h"
|
||||
#include "torrent/utils/thread.h"
|
||||
|
||||
class TestMainThread : public torrent::utils::Thread {
|
||||
public:
|
||||
static std::unique_ptr<TestMainThread> create();
|
||||
|
||||
~TestMainThread() override;
|
||||
static std::unique_ptr<TestMainThread> create_with_mock();
|
||||
|
||||
const char* name() const override { return "rtorrent test main"; }
|
||||
|
||||
void init_thread() override;
|
||||
void cleanup_thread() override;
|
||||
|
||||
void test_set_cached_time(std::chrono::microseconds t) { set_cached_time(365 * 24h + t); }
|
||||
void test_add_cached_time(std::chrono::microseconds t) { set_cached_time(cached_time() + t); }
|
||||
void test_process_events_without_cached_time() { process_events_without_cached_time(); }
|
||||
|
||||
private:
|
||||
TestMainThread();
|
||||
TestMainThread() = default;
|
||||
|
||||
void call_events() override;
|
||||
std::chrono::microseconds next_timeout() override;
|
||||
};
|
||||
|
||||
class TestFixtureWithMainThread : public test_fixture {
|
||||
public:
|
||||
void setUp();
|
||||
void tearDown();
|
||||
|
||||
std::unique_ptr<TestMainThread> m_main_thread;
|
||||
};
|
||||
|
||||
class TestFixtureWithMainAndDiskThread : public test_fixture {
|
||||
public:
|
||||
void setUp();
|
||||
void tearDown();
|
||||
|
||||
std::unique_ptr<TestMainThread> m_main_thread;
|
||||
};
|
||||
|
||||
class TestFixtureWithMainAndTrackerThread : public test_fixture {
|
||||
public:
|
||||
void setUp();
|
||||
void tearDown();
|
||||
|
||||
std::unique_ptr<TestMainThread> m_main_thread;
|
||||
};
|
||||
|
||||
class TestFixtureWithMockAndMainThread : public test_fixture {
|
||||
public:
|
||||
void setUp();
|
||||
void tearDown();
|
||||
|
||||
std::unique_ptr<TestMainThread> m_main_thread;
|
||||
};
|
||||
|
||||
#endif // TEST_HELPERS_TEST_MAIN_THREAD_H
|
||||
|
||||
Reference in New Issue
Block a user