diff --git a/tools/native_collaboration.py b/tools/native_collaboration.py index 063727f37b744277cb9f4163e4ee89284c404852..e716c23436a708b6dd718b9f80da5a51941fca2d 100644 --- a/tools/native_collaboration.py +++ b/tools/native_collaboration.py @@ -219,7 +219,8 @@ def replay(output, server, stress_clients=0, stress_operations=30, sync_every=1, return observed def wait_text(client, expected): - deadline = time.monotonic() + 120 + # Background sync of a few hundred queued native edits takes minutes on a loaded host. + deadline = time.monotonic() + 600 while time.monotonic() < deadline: action(client, 'sync') observed = action(client, 'snapshot') diff --git a/tools/native_maintenance.py b/tools/native_maintenance.py index ac27df8db79f43b5025e08c0faa68375c802f2b2..a38781e76efadfc3b09f581eacfe9c6503b6344f 100644 --- a/tools/native_maintenance.py +++ b/tools/native_maintenance.py @@ -125,7 +125,7 @@ Sleep(1000) hold.mkdir() config = json.loads((output / 'linux.json').read_text()) with (hold / 'run.log').open('w') as guardian_log: - guardian = subprocess.Popen(['cargo', 'test', '-p', 'notebook', '--features', 'smb', 'live_reader_hold', '--', '--ignored', '--nocapture'], + guardian = subprocess.Popen(['cargo', 'test', '-p', 'notebook', '--features', 'smb', '--lib', 'live_reader_hold', '--', '--ignored', '--nocapture'], cwd=ROOT, stdout=guardian_log, stderr=subprocess.STDOUT, env={**os.environ, 'ONESTORE_SMB_LAB': f'127.0.0.1:{config["samba_port"]}', 'ONESTORE_SMB_PATH': 'm6-collaboration/synthetic.one', 'ONESTORE_SMB_HOLD': str(hold)}) diff --git a/tools/offline_cache_crash.py b/tools/offline_cache_crash.py index 8c6bb7ff83e06a02aa2a6a7564337df1b7d87519..8d752f4a6e6dda79ad32102531fd7d2d2150dca7 100644 --- a/tools/offline_cache_crash.py +++ b/tools/offline_cache_crash.py @@ -88,7 +88,9 @@ def run(binary, output): actual = json.loads(read.stdout) operations = actual["operations"] ids = actual["ids"] - assert operations in (retained, retained + [operation]), (retained, operation, actual) + # A save replaces the newest pending save of its page under the same intent. + coalesced = retained[:-1] + [operation] if ids == retained_ids else None + assert operations in (retained, retained + [operation], coalesced), (retained, operation, actual) assert ids[:len(retained_ids)] == retained_ids, (retained_ids, actual) if acknowledgement: assert operations[-1] == operation