Skip to content

Commit 51b4c39

Browse files
committed
Unit test for #133
1 parent b0907a2 commit 51b4c39

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

test_syncobj.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,6 +1465,92 @@ def test_syncobjAdminAddRemove():
14651465
o2._destroy()
14661466

14671467

1468+
def test_journalWithAddNodes():
1469+
dumpFiles = [getNextDumpFile(), getNextDumpFile(), getNextDumpFile()]
1470+
journalFiles = [getNextJournalFile(), getNextJournalFile(), getNextJournalFile()]
1471+
removeFiles(dumpFiles)
1472+
removeFiles(journalFiles)
1473+
removeFiles([e + '.meta' for e in journalFiles])
1474+
1475+
random.seed(42)
1476+
1477+
a = [getNextAddr(), getNextAddr(), getNextAddr()]
1478+
1479+
o1 = TestObj(a[0], [a[1]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[0], journalFile=journalFiles[0], dynamicMembershipChange=True)
1480+
o2 = TestObj(a[1], [a[0]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[1], journalFile=journalFiles[1], dynamicMembershipChange=True)
1481+
objs = [o1, o2]
1482+
doTicks(objs, 10, stopFunc=lambda: o1._isReady() and o2._isReady())
1483+
1484+
assert o1._getLeader().address in a
1485+
assert o1._getLeader() == o2._getLeader()
1486+
1487+
o1.addValue(150)
1488+
o2.addValue(200)
1489+
1490+
doTicks(objs, 10, stopFunc=lambda: o1.getCounter() == 350 and o2.getCounter() == 350)
1491+
1492+
assert o1.getCounter() == 350
1493+
assert o2.getCounter() == 350
1494+
doTicks(objs, 2)
1495+
1496+
1497+
trueRes = 'SUCCESS ADD ' + a[2]
1498+
currRes = {}
1499+
args = {
1500+
o1: ['-conn', a[0], '-add', a[2]],
1501+
}
1502+
doSyncObjAdminTicks([o1, o2], args, 10.0, currRes, stopFunc=lambda: currRes.get(o1) is not None)
1503+
1504+
assert currRes[o1] == trueRes
1505+
1506+
o3 = TestObj(a[2], [a[1], a[0]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[2], journalFile=journalFiles[2], dynamicMembershipChange=True)
1507+
1508+
doTicks([o1, o2, o3], 10.0, stopFunc=lambda: o1._isReady() and o2._isReady() and o3._isReady())
1509+
1510+
assert o1._isReady()
1511+
assert o2._isReady()
1512+
assert o3._isReady()
1513+
1514+
assert o3.getCounter() == 350
1515+
1516+
doTicks(objs, 2)
1517+
1518+
1519+
o1._destroy()
1520+
o2._destroy()
1521+
o3._destroy()
1522+
1523+
removeFiles(dumpFiles)
1524+
1525+
o1 = TestObj(a[0], [a[1]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[0], journalFile=journalFiles[0], dynamicMembershipChange=True)
1526+
o2 = TestObj(a[1], [a[0]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[1], journalFile=journalFiles[1], dynamicMembershipChange=True)
1527+
o3 = TestObj(a[2], [a[1], a[0]], TEST_TYPE.JOURNAL_1, dumpFile=dumpFiles[2], journalFile=journalFiles[2], dynamicMembershipChange=True)
1528+
1529+
objs = [o1, o2, o3]
1530+
doTicks(objs, 10, stopFunc=lambda: o1._isReady() and o1.getCounter() == 350 and o3._isReady() and o3.getCounter() == 350)
1531+
1532+
assert o1._isReady()
1533+
assert o3._isReady()
1534+
1535+
assert o1.getCounter() == 350
1536+
assert o3.getCounter() == 350
1537+
1538+
o2.addValue(200)
1539+
1540+
doTicks(objs, 10, stopFunc=lambda: o1.getCounter() == 550 and o3.getCounter() == 550)
1541+
1542+
assert o1.getCounter() == 550
1543+
assert o3.getCounter() == 550
1544+
1545+
o1._destroy()
1546+
o2._destroy()
1547+
o3._destroy()
1548+
1549+
removeFiles(dumpFiles)
1550+
removeFiles(journalFiles)
1551+
removeFiles([e + '.meta' for e in journalFiles])
1552+
1553+
14681554
def test_syncobjAdminSetVersion():
14691555
random.seed(42)
14701556

0 commit comments

Comments
 (0)