fixed spelling in us

added async to us
This commit is contained in:
2021-04-24 02:03:11 +02:00
parent 5d785b54d6
commit 337df23d12
9 changed files with 64 additions and 19 deletions

View File

@ -29,6 +29,33 @@ TEST(default_update_strategy, simple_update) {
engine.update();
}
// note: we test pure single-threaded behaviour, so nothing needs to be thread save
TEST(default_update_strategy, async) {
int counter = 1;
MM::Engine engine(std::make_unique<MM::UpdateStrategies::SingleThreadedDefault>());
ASSERT_EQ(counter, 1);
engine.getUpdateStrategy().addAsync([&counter](MM::Engine&) { counter++; });
engine.update();
ASSERT_EQ(counter, 2);
for (size_t i = 0; i < 100; i++) {
engine.getUpdateStrategy().addAsync([&counter](MM::Engine&) { counter++; });
}
// make sure we dont have an infinity loop in case something is wrong
size_t max_loop_safety_count = 0;
do {
engine.update();
max_loop_safety_count++;
} while (counter != 102 && max_loop_safety_count < 10000);
ASSERT_EQ(counter, 102);
}
TEST(default_update_strategy, service) {
class TmpMockService : public MockService {
public:
@ -56,7 +83,6 @@ TEST(default_update_strategy, service) {
}
}
TEST(default_update_strategy, run_1) {
class TmpMockService : public MockService {
int& _counter;
@ -96,7 +122,7 @@ TEST(default_update_strategy, run_1) {
ASSERT_TRUE(engine.enableService<TmpMockService>());
ASSERT_EQ(counter, 1);
engine.getUpdateStrategy().addDefered([](MM::Engine& e) { e.stop(); });
engine.getUpdateStrategy().addDeferred([](MM::Engine& e) { e.stop(); });
engine.run();

View File

@ -1,4 +1,3 @@
#include "mm/services/service.hpp"
#include <gtest/gtest.h>
#include <gmock/gmock.h>
@ -36,7 +35,8 @@ class MockUpdateStrategy : public MM::UpdateStrategies::UpdateStrategy {
MOCK_METHOD(bool, depend, (const MM::UpdateStrategies::update_key_t A, const MM::UpdateStrategies::update_key_t B), (override));
MOCK_METHOD(void, addDefered, (std::function<void(MM::Engine&)> function), (override));
MOCK_METHOD(void, addDeferred, (std::function<void(MM::Engine&)> function), (override));
MOCK_METHOD(void, addAsync, (std::function<void(MM::Engine&)> function), (override));
};
class MockService : public MM::Services::Service {