diff options
Diffstat (limited to 'test/syncedsettings.cc')
-rw-r--r-- | test/syncedsettings.cc | 329 |
1 files changed, 169 insertions, 160 deletions
diff --git a/test/syncedsettings.cc b/test/syncedsettings.cc index 1d8e102..5e1e2fd 100644 --- a/test/syncedsettings.cc +++ b/test/syncedsettings.cc @@ -24,180 +24,189 @@ * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h" #include <syncedsettings.h> class SyncedSettingsTest - : public CppUnit::TestFixture { - - CPPUNIT_TEST_SUITE(SyncedSettingsTest); - CPPUNIT_TEST(groupCanBeDefaultInitialized); - CPPUNIT_TEST(groupDataCanBeCopied); - - CPPUNIT_TEST(accessorCanGetFields); - CPPUNIT_TEST(accessorCanSetFields); - - CPPUNIT_TEST(groupHasCopyCtor); - CPPUNIT_TEST(groupHasMoveCtor); - CPPUNIT_TEST(groupHasCopyAssignOp); - CPPUNIT_TEST(groupHasMoveAssignOp); - - CPPUNIT_TEST(mimicRealUse); - CPPUNIT_TEST_SUITE_END(); - - private: - struct TestData { - float foo; - bool bar; - std::string msg; - }; - - public: - void setUp() {} - void tearDown() {} - - void groupCanBeDefaultInitialized() { - Group<TestData> data; - } - - void groupDataCanBeCopied() { - Group<TestData> data; - (TestData)data; // copies + : public DGUnit +{ +public: + SyncedSettingsTest() + { + DGUNIT_TEST(SyncedSettingsTest::groupCanBeDefaultInitialized); + DGUNIT_TEST(SyncedSettingsTest::groupDataCanBeCopied); + + DGUNIT_TEST(SyncedSettingsTest::accessorCanGetFields); + DGUNIT_TEST(SyncedSettingsTest::accessorCanSetFields); + + DGUNIT_TEST(SyncedSettingsTest::groupHasCopyCtor); + DGUNIT_TEST(SyncedSettingsTest::groupHasMoveCtor); + DGUNIT_TEST(SyncedSettingsTest::groupHasCopyAssignOp); + DGUNIT_TEST(SyncedSettingsTest::groupHasMoveAssignOp); + + DGUNIT_TEST(SyncedSettingsTest::mimicRealUse); + } + +private: + struct TestData + { + float foo; + bool bar; + std::string msg; + }; + +public: + void groupCanBeDefaultInitialized() + { + Group<TestData> data; + } + + void groupDataCanBeCopied() + { + Group<TestData> data; + (TestData)data; // copies + } + + void accessorCanSetFields() + { + Group<TestData> data; + { + Accessor<TestData> a{data}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void accessorCanSetFields() { - Group<TestData> data; - { - Accessor<TestData> a{data}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - TestData copy = data; - CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(copy.bar, false); - CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + TestData copy = data; + DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); + DGUNIT_ASSERT_EQUAL(copy.bar, false); + DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void accessorCanGetFields() + { + Group<TestData> data; + { + Accessor<TestData> a{data}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void accessorCanGetFields() { - Group<TestData> data; - { - Accessor<TestData> a{data}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - // now read - { - Accessor<TestData> a{data}; - CPPUNIT_ASSERT_EQUAL(a.data.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(a.data.bar, false); - CPPUNIT_ASSERT_EQUAL(a.data.msg, std::string{"hello"}); - } + // now read + { + Accessor<TestData> a{data}; + DGUNIT_ASSERT_EQUAL(a.data.foo, 3.f); + DGUNIT_ASSERT_EQUAL(a.data.bar, false); + DGUNIT_ASSERT_EQUAL(a.data.msg, std::string{"hello"}); } - - void groupHasCopyCtor() { - Group<TestData> tmp; - { - Accessor<TestData> a{tmp}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - Group<TestData> data{tmp}; - TestData copy = data; - CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(copy.bar, false); - CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void groupHasCopyCtor() + { + Group<TestData> tmp; + { + Accessor<TestData> a{tmp}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void groupHasMoveCtor() { - Group<TestData> tmp; - { - Accessor<TestData> a{tmp}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - Group<TestData> data{std::move(tmp)}; - TestData copy = data; - CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(copy.bar, false); - CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + Group<TestData> data{tmp}; + TestData copy = data; + DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); + DGUNIT_ASSERT_EQUAL(copy.bar, false); + DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void groupHasMoveCtor() + { + Group<TestData> tmp; + { + Accessor<TestData> a{tmp}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void groupHasCopyAssignOp() { - Group<TestData> tmp; - { - Accessor<TestData> a{tmp}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - Group<TestData> data = tmp; - TestData copy = data; - CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(copy.bar, false); - CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + Group<TestData> data{std::move(tmp)}; + TestData copy = data; + DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); + DGUNIT_ASSERT_EQUAL(copy.bar, false); + DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void groupHasCopyAssignOp() + { + Group<TestData> tmp; + { + Accessor<TestData> a{tmp}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void groupHasMoveAssignOp() { - Group<TestData> tmp; - { - Accessor<TestData> a{tmp}; - a.data.foo = 3.f; - a.data.bar = false; - a.data.msg = "hello"; - } - Group<TestData> data = std::move(tmp); - TestData copy = data; - CPPUNIT_ASSERT_EQUAL(copy.foo, 3.f); - CPPUNIT_ASSERT_EQUAL(copy.bar, false); - CPPUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + Group<TestData> data = tmp; + TestData copy = data; + DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); + DGUNIT_ASSERT_EQUAL(copy.bar, false); + DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void groupHasMoveAssignOp() + { + Group<TestData> tmp; + { + Accessor<TestData> a{tmp}; + a.data.foo = 3.f; + a.data.bar = false; + a.data.msg = "hello"; } - - void mimicRealUse() { - struct Settings { - struct Foo { - float a{5}; - float b{3}; - bool enabled{true}; - }; - struct Bar { - std::string label{"empty"}; - float bla{0.f}; - }; - - Group<Foo> foo; - Group<Bar> bar; + Group<TestData> data = std::move(tmp); + TestData copy = data; + DGUNIT_ASSERT_EQUAL(copy.foo, 3.f); + DGUNIT_ASSERT_EQUAL(copy.bar, false); + DGUNIT_ASSERT_EQUAL(copy.msg, std::string{"hello"}); + } + + void mimicRealUse() + { + struct Settings + { + struct Foo { + float a{5}; + float b{3}; + bool enabled{true}; }; - - Settings s; - - // set bar settings - { - Accessor<Settings::Bar> tmp{s.bar}; - tmp.data.label = "hello world"; - tmp.data.bla = 3.14f; - } - - // read foo settings - { - Accessor<Settings::Foo> tmp{s.foo}; - if (tmp.data.enabled) { - // do some while locked - } - } - // or: - Settings::Foo copy = s.foo; - if (copy.enabled) { - // do some stuff without locking + struct Bar { + std::string label{"empty"}; + float bla{0.f}; + }; + + Group<Foo> foo; + Group<Bar> bar; + }; + + Settings s; + + // set bar settings + { + Accessor<Settings::Bar> tmp{s.bar}; + tmp.data.label = "hello world"; + tmp.data.bla = 3.14f; + } + + // read foo settings + { + Accessor<Settings::Foo> tmp{s.foo}; + if (tmp.data.enabled) { + // do some while locked } - CPPUNIT_ASSERT(copy.enabled); } + // or: + Settings::Foo copy = s.foo; + if (copy.enabled) { + // do some stuff without locking + } + DGUNIT_ASSERT(copy.enabled); + } }; // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(SyncedSettingsTest); - +static SyncedSettingsTest test; |