Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
83cda24
added export UV_VENV_CLEAR=1 flag to shell scripts
barkha06 Feb 16, 2026
0316d30
removed disconnected android devices
barkha06 Feb 16, 2026
b6db4bd
modified label since mob-e2e-mac is down
barkha06 Feb 17, 2026
7693175
latestbuilds uploaded IOS testserver is broken, modifying code to upl…
barkha06 Feb 17, 2026
c3c3b96
latestbuilds uploaded IOS testserver is broken, modifying code to upl…
barkha06 Feb 17, 2026
b2ba414
comment transports since it's not present in 4.0.3
barkha06 Feb 17, 2026
eee6cb4
removed 45291VDJH01660 from topology
barkha06 Feb 17, 2026
32e127b
removed 51131XEKB7DBF1 from topology
barkha06 Feb 17, 2026
0da2aeb
fix merge-dict error
barkha06 Feb 18, 2026
cf8f39d
removed 172.16.150.165 since it's unreachable
barkha06 Feb 18, 2026
523a9d7
rebuilding android testserver
barkha06 Feb 18, 2026
d8753ed
change prebuild job host mac-mini-new
barkha06 Feb 18, 2026
7b7f28a
changed ios jenkins setup
barkha06 Feb 18, 2026
07138ef
Modified ReplicatorManager.java to add additional logging
barkha06 Feb 18, 2026
8d75dc2
Modified ReplicatorManager.java to add additional logging
barkha06 Feb 18, 2026
88248df
Modified ReplicatorManager.java to add additional logging
barkha06 Feb 18, 2026
f139a69
undoing changes
barkha06 Feb 18, 2026
f616c08
Modifying MultipeerReplicatorManager.java and test_multipeer.py
barkha06 Feb 18, 2026
f2b8650
Modifying MultipeerReplicatorManager.java and test_multipeer.py
barkha06 Feb 18, 2026
ce2d261
Modifying MultipeerReplicatorManager.java
barkha06 Feb 18, 2026
937f583
Modifying test_multipeer.py
barkha06 Feb 18, 2026
f8560a4
Modifying default dataset version for test
barkha06 Feb 18, 2026
dcc9a6a
Modifying zip source to testserver's parent directory
barkha06 Feb 19, 2026
93fbcf5
setting download as true for multipeer devices
barkha06 Feb 19, 2026
86203e4
setting retry for each device
barkha06 Feb 19, 2026
06e3ad4
rebased from main
barkha06 Apr 16, 2026
3020ea5
added export UV_VENV_CLEAR=1 flag to shell scripts
barkha06 Feb 16, 2026
29f8cf5
removed disconnected android devices
barkha06 Feb 16, 2026
97d8f94
modified label since mob-e2e-mac is down
barkha06 Feb 17, 2026
5babf74
latestbuilds uploaded IOS testserver is broken, modifying code to upl…
barkha06 Feb 17, 2026
a4a9cb8
latestbuilds uploaded IOS testserver is broken, modifying code to upl…
barkha06 Feb 17, 2026
ed8a6e2
comment transports since it's not present in 4.0.3
barkha06 Feb 17, 2026
b37cc08
removed 45291VDJH01660 from topology
barkha06 Feb 17, 2026
cff129f
removed 51131XEKB7DBF1 from topology
barkha06 Feb 17, 2026
d263379
removed 172.16.150.165 since it's unreachable
barkha06 Feb 18, 2026
48788fd
rebuilding android testserver
barkha06 Feb 18, 2026
bdc6d2c
change prebuild job host mac-mini-new
barkha06 Feb 18, 2026
073e270
changed ios jenkins setup
barkha06 Feb 18, 2026
6a529d8
Modified ReplicatorManager.java to add additional logging
barkha06 Feb 18, 2026
2ddd3e0
undoing changes
barkha06 Feb 18, 2026
89bdc09
Modifying MultipeerReplicatorManager.java and test_multipeer.py
barkha06 Feb 18, 2026
ec6d0dd
Modifying MultipeerReplicatorManager.java and test_multipeer.py
barkha06 Feb 18, 2026
4c41c8e
Modifying MultipeerReplicatorManager.java
barkha06 Feb 18, 2026
7052ac5
Modifying default dataset version for test
barkha06 Feb 18, 2026
c2e6d4a
Modifying zip source to testserver's parent directory
barkha06 Feb 19, 2026
30fc2f3
setting download as true for multipeer devices
barkha06 Feb 19, 2026
e17545c
removing unnecessary changes
barkha06 Apr 16, 2026
969075d
multipeer changes for BT
barkha06 Apr 19, 2026
931608f
temporary fix for android
barkha06 Apr 23, 2026
47d9b96
remove temporary fix
barkha06 Apr 27, 2026
928ac6e
remove temporary fix
barkha06 Apr 27, 2026
afa4e10
remove temporary fix
barkha06 Apr 27, 2026
a3b6698
remove temporary fix
barkha06 Apr 27, 2026
c23e0f6
Modified large_doc test
barkha06 Apr 27, 2026
722824f
Modified large_doc test
barkha06 Apr 27, 2026
6fdea36
fix parametrize
barkha06 May 18, 2026
05fa80d
fix parametrize
barkha06 May 18, 2026
f29b5c8
Modified test retry logic
barkha06 Jun 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions client/src/cbltest/api/multipeer_replicator_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,40 @@ def to_json(self) -> list[str]:
if m.value != 0 and (m.value & (m.value - 1)) == 0 and (self & m) == m
]

@classmethod
def build_group_transports(
cls,
size: int,
transport: str,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This creates a makeshift enum out of a magic string for no reason. MultipeerTransportType is already a flag enum, which means it can be bitwise or together (MultipeerTransportType.BLUETOOTH | MultipeerTransportType.WIFI).

Also this seems like a helper method specific to a test suite and not an API method.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a test helper to help generate a mixed mode set with even distribution of wifi only, BT only and wifi+bluetooth devices. I need it for both test_multipeer.py and test_system_multipeer.py so I assumed it could go in the API to make it easy to import.
I've used strings for ease-of-use since the test parameter could of of type MultipeerTransportType or string to represent mixed-mode making it two different types of parameters.
Do you think there's a better way to do this?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are flag style enums though so they can represent both anyway like I mentioned above. It doesn't seem like it is the class's job to create collections of itself though, that seems like a higher level thing.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where do you recommend I place this function?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it were me, I'd start a collection of test helper functions inside of the tests/QE folder.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As an update, Vipul has now started a shared logic section that you can add this to.

) -> list["MultipeerTransportType"]:
"""
Builds a list of transports for a group of given size.

If transport != "MIXED_MODE", returns a uniform list.
If MIXED_MODE, distributes WIFI, BLUETOOTH, and ALL.
"""

# Non-mixed mode → uniform assignment
if transport != "MIXED_MODE":
return [cls.from_string(transport)] * size

Comment thread
barkha06 marked this conversation as resolved.
if size == 1:
return [cls.ALL]

if size == 2:
return [cls.BLUETOOTH, cls.ALL]

# General distribution
num_wifi = size // 3
num_bt = size // 3
num_dual = size - num_wifi - num_bt

transports_array = (
[cls.WIFI] * num_wifi + [cls.BLUETOOTH] * num_bt + [cls.ALL] * num_dual
)

return transports_array


class MultipeerReplicatorAuthenticator(JSONSerializable):
"""
Expand Down
4 changes: 2 additions & 2 deletions client/src/cbltest/response_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
ReplicatorDocumentEntry,
ReplicatorProgress,
)
from cbltest.jsonhelper import _assert_string_entry, _get_typed
from cbltest.jsonhelper import _assert_string_entry, _get_str_or_default, _get_typed


class PostGetAllDocumentsEntry:
Expand Down Expand Up @@ -251,7 +251,7 @@ def __init__(self, body: dict):

self.__peer_id = _assert_string_entry(body, self.__peer_id_key)
self.__status = ReplicatorStatusBody(body.get(self.__status_key, {}))
transport_str = _assert_string_entry(body, self.__transport_key)
transport_str = _get_str_or_default(body, self.__transport_key, "WIFI")
Comment thread
barkha06 marked this conversation as resolved.
self.__transport = MultipeerTransportType.from_string(transport_str)


Expand Down
Loading
Loading