summaryrefslogtreecommitdiffstats
path: root/akregator/src/mk4storage/metakit/tests/tdiffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'akregator/src/mk4storage/metakit/tests/tdiffer.cpp')
-rw-r--r--akregator/src/mk4storage/metakit/tests/tdiffer.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/akregator/src/mk4storage/metakit/tests/tdiffer.cpp b/akregator/src/mk4storage/metakit/tests/tdiffer.cpp
new file mode 100644
index 00000000..16dc97c3
--- /dev/null
+++ b/akregator/src/mk4storage/metakit/tests/tdiffer.cpp
@@ -0,0 +1,52 @@
+// tdiffer.cpp -- Regression test program, differential commit tests
+// $Id$
+// This is part of Metakit, see http://www.equi4.com/metakit/
+
+#include "regress.h"
+
+void TestDiffer()
+{
+ B(d01, Commit aside, 0) W(d01a); W(d01b);
+ {
+ c4_IntProp p1 ("p1");
+ {
+ c4_Storage s1 ("d01a", 1);
+ A(s1.Strategy().FileSize() == 0);
+ c4_View v1 = s1.GetAs("a[p1:I]");
+ v1.Add(p1 [123]);
+ s1.Commit();
+ }
+ {
+ c4_Storage s1 ("d01a", 0);
+ c4_Storage s2 ("d01b", 1);
+ s1.SetAside(s2);
+ c4_View v1 = s1.View("a");
+ A(v1.GetSize() == 1);
+ A(p1 (v1[0]) == 123);
+ v1.Add(p1 [456]);
+ A(v1.GetSize() == 2);
+ A(p1 (v1[0]) == 123);
+ A(p1 (v1[1]) == 456);
+ s1.Commit();
+ A(v1.GetSize() == 2);
+ A(p1 (v1[0]) == 123);
+ A(p1 (v1[1]) == 456);
+ s2.Commit();
+ A(v1.GetSize() == 2);
+ A(p1 (v1[0]) == 123);
+ A(p1 (v1[1]) == 456);
+ }
+ {
+ c4_Storage s1 ("d01a", 0);
+ c4_View v1 = s1.View("a");
+ A(v1.GetSize() == 1);
+ A(p1 (v1[0]) == 123);
+ c4_Storage s2 ("d01b", 0);
+ s1.SetAside(s2);
+ c4_View v2 = s1.View("a");
+ A(v2.GetSize() == 2);
+ A(p1 (v2[0]) == 123);
+ A(p1 (v2[1]) == 456);
+ }
+ } D(d01a); D(d01b); R(d01a); R(d01b); E;
+}