Antonio Scandurra
c1c06d81d8
💄
2022-03-02 14:41:40 +01:00
Antonio Scandurra
138721c454
Always run tests and bundle creation in separate runners
...
This is better for caching and, thus, yields faster CI runs.
2022-03-02 14:30:52 +01:00
Antonio Scandurra
acb9d5158a
Fix warnings
2022-03-02 12:45:49 +01:00
Antonio Scandurra
ef7bccfa76
Make dhat optional
2022-03-02 11:02:10 +01:00
Antonio Scandurra
d3607d3117
Merge pull request #499 from zed-industries/project-find
...
Project-wide search
2022-03-02 10:58:50 +01:00
Antonio Scandurra
3ae035a9ad
Advance clock when simulating random delay
2022-03-02 10:39:46 +01:00
Antonio Scandurra
694ea5ca74
Delete timer state when the future that's awaiting it gets dropped
2022-03-02 10:08:38 +01:00
Max Brunsfeld
4a6b77de77
Avoid storing type name string on AnyViewHandle
...
It won't be needed for leak error messages, because the typed
view handle will typically be created first. And this avoids
increasing the size of the handle used in production.
2022-03-01 18:22:09 -08:00
Max Brunsfeld
397149a097
Tear down client's connection states when dropping test clients
2022-03-01 18:17:41 -08:00
Max Brunsfeld
0f8c49c773
Flush effects when dropping test clients in random collaboration test
2022-03-01 18:17:25 -08:00
Max Brunsfeld
497ffb602d
Avoid retaining executor when using Connection::in_memory
2022-03-01 18:02:12 -08:00
Max Brunsfeld and Nathan Sobo
0b1ef30f94
Fix remaining language server hangs on shutdown
...
* Use fork of async-pipe library that handles closed pipes correctly.
* Clear response handlers map when terminating output task, so as
to wake any pending request futures.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 15:54:59 -08:00
Max Brunsfeld
6cdc2f766d
Handle Peer responses using a futures::oneshot instead of postage::mpsc
2022-03-01 13:37:33 -08:00
Max Brunsfeld
42166fbd55
Prevent hangs in lsp requests made while server is shutting down
...
* Avoid postage::oneshot, since receiver is not woken when sender is dropped.
* Clear the response channels when an IO task exits.
2022-03-01 13:36:49 -08:00
Max Brunsfeld
1f98014888
Clean up tasks properly when dropping a FakeLanguageServer
...
* Make sure the fake's IO tasks are stopped
* Ensure that the fake's stdout is closed, so that the corresponding language
server's IO tasks are woken up and halted.
2022-03-01 13:26:59 -08:00
Max Brunsfeld
4f2095a87c
Remove stray printing in db tests
2022-03-01 12:10:35 -08:00
Max Brunsfeld
347d2ec27c
Make integration tests depend only on a few core crates, not all of zed
2022-03-01 12:09:51 -08:00
62610cd4d9
Fix failure in test_unshare_project due to dropping handle outside of an update block
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 10:50:58 -08:00
0171bd43fa
Use simulate_random_delay when polling snapshot only in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-03-01 19:17:38 +01:00
d19e8f03af
Remove debug_elements_callbacks from App
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-03-01 19:16:58 +01:00
Antonio Scandurra
d2041fda05
Fix Presenter leak when removing windows
2022-03-01 18:50:05 +01:00
Antonio Scandurra and Nathan Sobo
657b559d01
Revert "Use async_broadcast to emit fake FS events"
...
This reverts commit 9c733bb29b , because
having a bounded broadcast introduces the possibility of waiting forever
when there isn't yet a receiver processing those events.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 17:14:40 +01:00
Antonio Scandurra and Nathan Sobo
3e3e28a831
Forbid parking in project_panel::tests::test_visible_list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 17:14:18 +01:00
Antonio Scandurra and Nathan Sobo
a7db99230e
Use a weak handle to poll local worktree snapshot
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 17:08:10 +01:00
Antonio Scandurra and Nathan Sobo
9a3147043a
Make TestAppContext and its dependencies available only in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 17:01:52 +01:00
Antonio Scandurra and Nathan Sobo
6c3b6bca75
Detect when view handles are leaked
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 16:11:12 +01:00
Antonio Scandurra and Nathan Sobo
668f791a8b
Enable leak backtraces by setting LEAK_BACKTRACE=1
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 16:00:40 +01:00
Antonio Scandurra and Nathan Sobo
9c733bb29b
Use async_broadcast to emit fake FS events
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-01 15:48:15 +01:00
Antonio Scandurra
87897cd3e8
Capture a weak reference to the Project in fake LSP
2022-03-01 13:34:03 +01:00
Antonio Scandurra
511fdc869f
Don't block when emitting fs events
...
Blocking could happen while processing events, which would cause the
background scanner to never make any further progress.
2022-03-01 13:08:50 +01:00
Antonio Scandurra
6bd783fceb
Remove project from host connection when unregistering it
2022-03-01 12:18:55 +01:00
Antonio Scandurra
79568c471a
Pass a reference to TestAppContext in tests
...
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.
2022-03-01 12:01:02 +01:00
Antonio Scandurra
51f111880b
Allow capturing references in the future passed to Deterministic::run
2022-03-01 11:59:58 +01:00
Antonio Scandurra
bfb04b57ec
Remove all windows on dropping TestAppContext
...
This allows us to remove the dropped entities and flush effects as
necessary.
2022-03-01 10:55:12 +01:00
Antonio Scandurra
6955c5d781
Avoid reference cycle between Client and its models
2022-03-01 10:55:05 +01:00
Max Brunsfeld
45cc78730d
WIP - include dhat for memory profiling tests
2022-02-28 22:52:21 -08:00
Max Brunsfeld and Nathan Sobo
3d5668c383
Try clearing Client's state at the ends of integration tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-28 22:52:21 -08:00
Max Brunsfeld
b64693b4bb
Hold client weakly in UserStore
...
This avoids a reference cycle that is causing some tests
to fail due to leaked handles at the moment. There may be
a better way to fix this though.
2022-02-28 22:47:50 -08:00
Max Brunsfeld
c79f033b5c
Avoid retaining executor in the FakeFs
...
This probably isn't the *root* cause of why an executor is leaked,
but by cutting off this cyclic references, it may make it a bit easier
to track down leaks of an executor.
2022-02-28 22:40:04 -08:00
Max Brunsfeld and Nathan Sobo
29edf2691a
Clean up guest connection states correctly when a collaborator disconnects
...
This bug was caught by running the executor until parked after tests.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-28 22:21:32 -08:00
Max Brunsfeld
45e85d6010
Clear the executor at the end of a test by running until it is parked
2022-02-28 22:20:03 -08:00
Max Brunsfeld
c25017e61f
Flush effects when dropping a TestAppContext
...
This way, at the end of a test, dropped entities will be removed, and will drop
the handles that they hold.
2022-02-28 22:17:20 -08:00
Max Brunsfeld and Nathan Sobo
fe6bc5e188
Start work on detecting leaked handles in tests
...
For now, just track models. Tests fail because we don't
yet clear the app contexts at the right time.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-28 22:02:43 -08:00
Max Brunsfeld and Antonio Scandurra
912613a5a1
Never close buffers when sharing
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-02-28 11:36:43 -08:00
Antonio Scandurra and Nathan Sobo
294165e748
Make SearchProject a Foreground message
...
However, the randomized integration test is still failing:
```
ITERATIONS=100000 SEED=3027 OPERATIONS=200 cargo test --release test_random --package=zed-server -- --nocapture
```
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-28 16:19:34 +01:00
Antonio Scandurra
24970776cf
Don't use a bounded channel for signaling that buffers have been opened
...
Blocking the sender could halt deserialization for no reason if nobody
is consuming the notifications.
2022-02-28 15:26:10 +01:00
Antonio Scandurra
1cc27466f8
Don't delete buffer state when calling get_open_buffer
...
...as we might be in the process of completing a request that could
open a buffer. This was causing a failure in the randomized integration
test.
2022-02-28 14:27:31 +01:00
Antonio Scandurra
145c465796
Add project-wide search to randomized integration test
2022-02-28 14:22:31 +01:00
Antonio Scandurra
77d4c68f87
Include buffer's deferred ops when computing has_buffered_operations
2022-02-28 14:22:24 +01:00
Antonio Scandurra
501f06154f
Add unit test for project search
2022-02-28 11:10:22 +01:00