From 3a390989cb370c8618d6cc81193950dd0a8b2a06 Mon Sep 17 00:00:00 2001 From: Matt <1009003+tantaman@users.noreply.github.com> Date: Tue, 26 Dec 2023 21:29:19 -0500 Subject: [PATCH 1/2] extra tests for the tie break merge option --- py/correctness/tests/test_sync.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/py/correctness/tests/test_sync.py b/py/correctness/tests/test_sync.py index a1d74d91..2ff892ef 100644 --- a/py/correctness/tests/test_sync.py +++ b/py/correctness/tests/test_sync.py @@ -399,6 +399,14 @@ def test_merge_same_w_tie_breaker(): changes21 = db1.execute("SELECT \"table\", pk, cid, val, col_version, site_id FROM crsql_changes").fetchall() assert (changes12 == changes21) + # Test that we're stable / do not loop when we tie break equal values + + sync_left_to_right(db1, db2, 0) + changes12_2 = db2.execute("SELECT \"table\", pk, cid, val, col_version, site_id FROM crsql_changes").fetchall() + sync_left_to_right(db2, db1, 0) + changes21_2 = db1.execute("SELECT \"table\", pk, cid, val, col_version, site_id FROM crsql_changes").fetchall() + assert (changes12_2 == changes21) + assert (changes12 == changes21_2) def test_merge_matching_clocks_lesser_value(): From aa9a9b03af41772eaee8befdcd7dd160530c1f04 Mon Sep 17 00:00:00 2001 From: Matt <1009003+tantaman@users.noreply.github.com> Date: Sat, 6 Jan 2024 07:08:25 -0500 Subject: [PATCH 2/2] check db version --- py/correctness/tests/test_sync.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/py/correctness/tests/test_sync.py b/py/correctness/tests/test_sync.py index 2ff892ef..1378a75f 100644 --- a/py/correctness/tests/test_sync.py +++ b/py/correctness/tests/test_sync.py @@ -398,6 +398,9 @@ def test_merge_same_w_tie_breaker(): sync_left_to_right(db2, db1, 0) changes21 = db1.execute("SELECT \"table\", pk, cid, val, col_version, site_id FROM crsql_changes").fetchall() + pprint.pprint(db1.execute("SELECT db_version FROM crsql_changes").fetchall()) + pprint.pprint(db2.execute("SELECT db_version FROM crsql_changes").fetchall()) + assert (changes12 == changes21) # Test that we're stable / do not loop when we tie break equal values @@ -408,6 +411,9 @@ def test_merge_same_w_tie_breaker(): assert (changes12_2 == changes21) assert (changes12 == changes21_2) + pprint.pprint(db1.execute("SELECT db_version FROM crsql_changes").fetchall()) + pprint.pprint(db2.execute("SELECT db_version FROM crsql_changes").fetchall()) + def test_merge_matching_clocks_lesser_value(): def make_dbs():