Max Brunsfeld
1a9ff2420e
Clean up how applications are marked as inapplicable
2023-01-12 22:09:36 -08:00
Max Brunsfeld
e04d0be853
Remove unneeded log messages in randomized test
2023-01-12 14:30:53 -08:00
Max Brunsfeld
00e8625037
Simplify management of entity ids for different app contexts in randomized test
2023-01-12 14:30:10 -08:00
Max Brunsfeld
a3c7416218
Don't include user ids with MutateClients ops in serialized test plans
2023-01-12 14:28:31 -08:00
Max Brunsfeld
576a9bb92c
Drop project's buffers when closing a remote project
2023-01-09 14:49:36 -08:00
Max Brunsfeld
5a4fa4b11e
Merge branch 'main' into randomized-tests-operation-script
2023-01-09 12:26:11 -08:00
Max Brunsfeld
3e3a703b60
Skip inapplicable operations when running an edited test plan
2023-01-09 11:36:53 -08:00
Antonio Scandurra
529ccbda3a
Introduce git index mutations to randomized collaboration test
...
The test now fails at the following seed:
```bash
SEED=850 ITERATIONS=1 OPERATIONS=131 cargo test --package=collab random
```
2023-01-08 08:52:16 -07:00
Max Brunsfeld
c503ba00b6
Add env vars to store and load test plan from JSON files
2023-01-06 17:51:25 -08:00
Nathan Sobo
213658f1e9
Fix tests that failed due to defaulting the grouping interval to zero in tests
2023-01-06 17:56:21 -07:00
Max Brunsfeld
2351f2bd0c
Tolerate failure to join remote projects in randomized test
2023-01-06 15:40:42 -08:00
Max Brunsfeld
99390a7237
Represent all randomized test actions as operations
2023-01-06 15:32:11 -08:00
Max Brunsfeld
210286da48
Make operations for all buffer manipulations
2023-01-06 15:32:11 -08:00
Max Brunsfeld
f1b3692a35
Tweak operation rates
2023-01-06 15:32:11 -08:00
Max Brunsfeld
f243633f3e
Set up flow for mutating clients via explicit operation values
2023-01-06 15:32:11 -08:00
Max Brunsfeld
ce8dd5a286
wip
2023-01-06 15:32:11 -08:00
Max Brunsfeld
a74c5073a4
Start work on allowing random collab test to be minimized
...
Represent operations as an explicit enum.
2023-01-06 15:32:11 -08:00
Antonio Scandurra
8487ae77e7
Share new worktrees when resharing project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-01-06 12:58:19 -07:00
Nathan Sobo
1006ada458
Update scan_id on worktree entries when there is a conflict
...
Forgetting to do this meant we were unable to sync changes with reconnecting
guests in some cases.
2023-01-04 13:59:16 -07:00
Nathan Sobo
789bbf15b7
Update buffer files when synchronizing buffers
...
It's possible that the host was disconnected when attempting to notify
guests of a file save, so we need to transmit this in order to correctly
update the file's mtime.
Next failing seed OPERATIONS=200 SEED=6894
2023-01-04 12:33:48 -07:00
Nathan Sobo
1dd085fc92
Introduce completed_scan_id to worktree
...
We need to know the most recent scan id we have actually completed. This is to
handle the case where a guest disconnects when we're in the middle of streaming
worktree entries to them. When they reconnect, they need to report a scan_id
from before we started streaming the entries, because we have no record of when
the stream was interrupted.
Next failure:
SEED=5051 ITERATIONS=1 OPERATIONS=200 cargo test --release --package=collab random -- --nocapture
2023-01-03 18:26:57 -07:00
Nathan Sobo
90fb9b53ad
WIP
2023-01-03 13:30:14 -07:00
Nathan Sobo
8d70a22fa3
Record failing seed
2023-01-02 21:12:39 -07:00
Nathan Sobo
273988b8d5
Set transaction group interval to ZERO by default in tests
...
We were seeing non-deterministic behavior in randomized tests when
generating backtraces took enough time to cause transactions to group
in some cases, but not group in others.
Tests will need to explicitly opt into grouping if they want it by
setting the interval explicitly. We have tests in the text module that
currently test the history grouping explicitly, but I'm not sure
it's needed elsewhere.
2022-12-27 16:47:28 -07:00
Max Brunsfeld
599acf0daa
WIP - Panic immediately when detecting non-determinism via a change to the execution trace
2022-12-23 17:34:13 -08:00
Max Brunsfeld
42e74e7eef
Excluded deleted entries when initially sending worktrees to guests
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-22 11:18:10 -08:00
Antonio Scandurra
738e161bc6
WIP: failing test
...
SEED=882 RUST_LOG=collab::tests::randomized_integration_tests=info MAX_PEERS=2 ITERATIONS=1 OPERATIONS=49 cargo test --package=collab random -- --nocapture
2022-12-22 18:32:21 +01:00
Antonio Scandurra
559e14799c
Restructure randomized test to be a bit clearer and test more stuff
2022-12-22 17:54:25 +01:00
Max Brunsfeld
c321f5d94a
Assert that buffers' file state matches in randomized collab test
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 15:38:44 -08:00
Max Brunsfeld
89da738fae
In randomized test, open remote projects via the room
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 14:13:43 -08:00
Max Brunsfeld
8cd94060bb
💄 Avoid referring to all clients as guests in random integration test
2022-12-21 11:37:18 -08:00
Max Brunsfeld
d8ccdff9fc
Move randomized integration test into its own file
2022-12-21 11:26:24 -08:00
Antonio Scandurra
47348542ef
Synchronize buffers when either the host or a guest reconnects
2022-12-21 14:20:56 +01:00
Antonio Scandurra
b0336cd27e
Add failing test for buffer synchronization after disconnecting
2022-12-21 11:56:15 +01:00
Antonio Scandurra
ecd80c553c
Verify removing worktrees while host is offline
2022-12-21 11:47:01 +01:00
Max Brunsfeld
15f666a50a
Refresh project collaborator connection id for rejoined projects
2022-12-20 18:03:33 -08:00
Max Brunsfeld
213be3d6bd
Delete stale projects after cleanup interval, via server foreign key cascade
2022-12-20 17:27:42 -08:00
Max Brunsfeld
55800fc696
💄 Avoid repeated sql condition in rejoin_room
2022-12-20 17:23:52 -08:00
Max Brunsfeld
6a2066af6c
💄 Reduce indentation in Database::rejoin_room
2022-12-20 17:16:56 -08:00
Max Brunsfeld
cb8962691a
Remove unnecessary UnshareProject message sent to clients leaving a project
2022-12-20 16:58:44 -08:00
Max Brunsfeld
bb00134f5f
Clean up projects when leaving a room
2022-12-20 16:44:57 -08:00
Max Brunsfeld
21d6665c37
Merge branch 'main' into project-reconnection
2022-12-20 15:50:09 -08:00
Max Brunsfeld
6542b30d1f
Implement rejoining projects as guest when rejoining a room
...
Co-authored-by: Julia Risley <julia@zed.dev>
2022-12-20 15:02:26 -08:00
Max Brunsfeld
55ebfe8321
Handle unshared projects when rejoining a room
...
Also, construct remote projects via the room, to guarantee
that the room can manage the projects' sharing lifecycle.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-20 11:10:46 -08:00
Antonio Scandurra
d31fd9bbf2
Support adding worktrees to project while host is offline
2022-12-20 17:42:08 +01:00
Antonio Scandurra
52babc51a0
Make host reconnection test pass when mutating worktree while offline
2022-12-20 17:30:58 +01:00
Antonio Scandurra
1a3940a12e
Fix project reconnection test to ensure rooms actually reconnects
2022-12-20 14:51:46 +01:00
Antonio Scandurra
1aec691b35
Sketch out project reconnection routine on the server
2022-12-20 12:03:43 +01:00
Max Brunsfeld
af85db9ea5
WIP - Retain hosts' project state when they disconnect
2022-12-19 11:38:08 -08:00
Max Brunsfeld
67b265b3d5
Add failing integration test for resharing projects on reconnect
2022-12-19 11:37:28 -08:00