summaryrefslogtreecommitdiff
path: root/test/syncedsettings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/syncedsettings.cc')
-rw-r--r--test/syncedsettings.cc329
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;