summary refs log tree commit diff
path: root/tests/state
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-02-19 15:04:47 +0000
committerGitHub <noreply@github.com>2020-02-19 15:04:47 +0000
commit2b37eabca1e9355e2e2ab8f65bbdda12431ecc28 (patch)
tree33f657d75e6a662d95fe7f70c951d158ac6c3fd1 /tests/state
parentupdate changes.md (diff)
downloadsynapse-2b37eabca1e9355e2e2ab8f65bbdda12431ecc28.tar.xz
Reduce auth chains fetched during v2 state res. (#6952)
The state res v2 algorithm only cares about the difference between auth
chains, so we can pass in the known common state to the `get_auth_chain`
storage function so that it can ignore those events.
Diffstat (limited to 'tests/state')
-rw-r--r--tests/state/test_v2.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/tests/state/test_v2.py b/tests/state/test_v2.py
index 5bafad9f19..5059ade850 100644
--- a/tests/state/test_v2.py
+++ b/tests/state/test_v2.py
@@ -603,7 +603,7 @@ class TestStateResolutionStore(object):
 
         return {eid: self.event_map[eid] for eid in event_ids if eid in self.event_map}
 
-    def get_auth_chain(self, event_ids):
+    def get_auth_chain(self, event_ids, ignore_events):
         """Gets the full auth chain for a set of events (including rejected
         events).
 
@@ -617,6 +617,8 @@ class TestStateResolutionStore(object):
         Args:
             event_ids (list): The event IDs of the events to fetch the auth
                 chain for. Must be state events.
+            ignore_events: Set of events to exclude from the returned auth
+                chain.
 
         Returns:
             Deferred[list[str]]: List of event IDs of the auth chain.
@@ -627,7 +629,7 @@ class TestStateResolutionStore(object):
         stack = list(event_ids)
         while stack:
             event_id = stack.pop()
-            if event_id in result:
+            if event_id in result or event_id in ignore_events:
                 continue
 
             result.add(event_id)