Qi Xiao
4f63beab17
pkg/daemon: Let killDaemon wait until the socket file is removed.
...
There is a race condition where the old daemon may remove the socket file
created by the new daemon.
2021-10-02 18:41:50 +01:00
Qi Xiao
56b2598284
pkg/daemon: Add util for testing the termination of server.
2021-10-02 16:02:05 +01:00
Qi Xiao
b801a99d2a
pkg/daemon: Test Activate killing outdated daemon.
2021-10-02 15:47:18 +01:00
Qi Xiao
ba3dccb625
pkg/sys: Clarify package godocs.
2021-10-02 13:45:47 +01:00
Qi Xiao
67369b6284
pkg/sys/unix: Simplify the handling of Termios differences a bit.
2021-10-02 13:42:27 +01:00
Qi Xiao
f9103bef1a
pkg/sys/unix: Remove utilities that are no longer needed.
2021-10-02 13:25:21 +01:00
Qi Xiao
7a72b6346a
Reorganize pkg/sys into portable and non-portable system utilities.
...
Non-portable ones are moved into new packages pkg/sys/e{unix windows}. The "e"
prefix is needed to avoid conflict with packages under golang.org/x/sys/ and can
mean "extra".
2021-10-02 13:14:00 +01:00
Qi Xiao
93f530b39d
pkg/daemon: Fix test when run as root.
2021-10-02 01:29:17 +01:00
Qi Xiao
bd285bd25c
pkg/daemon: Slightly improve the coverage of activate.go.
2021-10-02 01:21:21 +01:00
Qi Xiao
101576471b
pkg/daemon: Fix the handling of hanging sockets.
...
Also enable the test.
The implementation incorrectly assumed that trying to connect to a hanging
socket will return rpc.ErrShutdown; this is not actually the case.
Also change error wrapping in activate.go to use %w instead of %v to preserve
the wrapped error.
2021-10-01 23:56:57 +01:00
Qi Xiao
371695f07b
Merge the SourceGraph LSIF workflow into the CI workflow.
2021-10-01 22:24:51 +01:00
Qi Xiao
821a204fef
pkg/daemon: Test that Activate can remove hanging socket.
...
The test is currently skipped since the corresponding behavior has not been
implemented correctly.
2021-10-01 22:19:23 +01:00
Qi Xiao
fe0a8602d3
pkg/daemon: Test daemon spawning.
...
Also do some minor cleanup.
2021-10-01 21:54:15 +01:00
Qi Xiao
6e4296db2b
Make TestActivate_FailsIfCannotStatSock work on Windows.
2021-10-01 19:14:50 +01:00
Qi Xiao
e60fd50737
Only skip the test on Windows.
2021-10-01 00:38:06 +01:00
Qi Xiao
7f8ab450a5
Disable test that may have inadvertently triggered daemon spawning.
2021-10-01 00:32:32 +01:00
Qi Xiao
09e5ffe9d9
pkg/daemon: Improve the coverage of activate.go slightly.
...
Also remove an unused code branch.
2021-10-01 00:03:22 +01:00
Qi Xiao
7995cc5f6f
pkg/daemon: Add basic test for Activate.
2021-09-30 23:45:38 +01:00
Qi Xiao
8e117a2875
Merge pkg/daemon/client into pkg/daemon.
...
Also merge and rename files to make the client/server separation clearer.
2021-09-30 23:37:36 +01:00
Qi Xiao
025728b35d
pkg/daemon: Don't test any system signal behavior on Windows.
...
(*os.Process).Signal doesn't support sending SIGINT on Windows either.
2021-09-29 23:50:45 +01:00
Qi Xiao
fdd65538c6
pkg/daemon: Don't test SIGTERM on Windows.
...
Also don't block test indefinitely if server doesn't terminate.
2021-09-29 23:44:34 +01:00
Qi Xiao
3eedcf3c85
pkg/daemon: Increase coverage of serve.go.
2021-09-29 23:30:13 +01:00
Qi Xiao
cff34107da
pkg/daemon: Rewrite the main loop and make it easier to test.
2021-09-23 20:54:12 +01:00
Qi Xiao
1d62b0d68b
Add a security policy doc.
2021-09-22 00:24:03 +01:00
Qi Xiao
ccc2750037
Remove the experimental web UI.
...
It has not been actively developed for a long time and has a vulnerability:
https://github.com/elves/elvish/security/advisories/GHSA-fpv6-f8jw-rc3r
2021-09-21 23:45:09 +01:00
Qi Xiao
a9f28832c4
pkg/parse: Improve coverage of quote.go.
2021-09-17 20:24:20 +01:00
Qi Xiao
9344aa9659
pkg/daemon/daemon_test.go: Disable TestProgram_StillServesIfCannotOpenDB now.
2021-09-15 21:37:28 +01:00
Qi Xiao
e046315d28
pkg/daemon/daemon_test.go: Return more detailed error from startClient.
2021-09-15 21:31:51 +01:00
Qi Xiao
7d5175e082
pkg/daemon: In tests, print error to stdout if server fails to start.
2021-09-15 21:12:26 +01:00
Qi Xiao
11d36554fe
pkg/daemon: Test that the daemon still serves if failing to open DB.
...
Also change Serve to not use the default server of net/rpc (which made it
impossible to call Serve multiple times), and return the exit code instead of
using os.Exit.
Also change service.Version to always succeed; this is necessary since
client.Activate uses this method to determine connection health.
2021-09-15 20:59:37 +01:00
Qi Xiao
418ae40ea9
pkg/eval/evaltest: Update godoc (TestCase -> Case).
2021-09-15 20:19:25 +01:00
Qi Xiao
73c269b98f
pkg/daemon: Do not use client.Activate in test to connect to server.
...
client.Active will try to spawn a new server if it cannot connect; this
is not desirable.
2021-09-12 23:53:08 +01:00
Qi Xiao
aa7e958704
pkg/daemon: Terminate test correctly if server did not come up.
2021-09-12 23:45:23 +01:00
Qi Xiao
3bd132b53e
pkg/daemon: Rewrite test to exercise the Program.
2021-09-12 23:18:37 +01:00
Qi Xiao
c9930a8ddf
pkg/store/storetest: Add test against CmdsWithSeq.
2021-09-12 22:23:22 +01:00
Qi Xiao
90d5d01cc5
pkg/eval/evaltest: Fix package godoc.
...
There was an empty line between the godoc and the package line by mistake.
2021-09-12 18:04:24 +01:00
Qi Xiao
be56f72729
pkg/testutil: Add utility for setting umask during tests.
2021-09-12 14:42:06 +01:00
Qi Xiao
e0b824bbdf
Improve coverage for "no suitable subprogram" error.
2021-09-12 14:23:29 +01:00
Qi Xiao
7ef7cb9f1b
pkg/eval/evaltest: Clean up godoc and some minor API details.
2021-09-12 14:13:18 +01:00
Qi Xiao
b6d69d0b30
pkg/prog/progtest: Rewrite the progtest API.
...
The progtest package now provides a declarative framework, modelled after
pkg/eval/evaltest. Tests that use progtest are now much more concise.
2021-09-12 14:06:05 +01:00
Qi Xiao
46276d6b70
Update godoc of cmd/nodaemon/elvish.
2021-09-12 00:41:27 +01:00
Qi Xiao
be3431bbbf
pkg/prog: Simplify the Program interface.
...
Instead of a separate ShouldRun method, use a special error value to signify
that a Program should not be run.
2021-09-12 00:40:35 +01:00
Qi Xiao
05a3251cd8
pkg/daemon: Use UNIX socket on Windows.
...
Windows 10 has supported UNIX sockets for a pretty long time
(https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/ ).
Interestingly, os.Stat calls on UNIX socket files fail on Windows; only
os.Lstat calls work.
2021-09-11 22:05:06 +01:00
Qi Xiao
315a8b77e1
pkg/eval: Improve coverage of builtin_fn_container.go.
2021-09-11 14:51:26 +01:00
Qi Xiao
c07c26b4c7
pkg/eval/vals: Remove a duplicate test.
2021-09-11 13:57:53 +01:00
Qi Xiao
8c8a80ff52
Fix staticcheck error.
2021-09-11 02:58:54 +01:00
Qi Xiao
b36c9bf513
pkg/eval/vals: Improve coverage.
2021-09-11 02:54:34 +01:00
Qi Xiao
9ade639b38
pkg/cli/term: Improve coverage of reader_unix.go.
...
Also change error messages to start with lower case letters.
2021-09-10 20:53:02 +01:00
Qi Xiao
492ff19077
pkg/eval: Improve coverage of compile_lvalue.go.
2021-09-10 20:09:04 +01:00
Qi Xiao
276fe85bc3
pkg/eval: Improve coverage for builtin_fn_styled.go.
2021-09-10 19:39:20 +01:00