1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-06 09:01:13 +02:00
Commit graph

1024 commits

Author SHA1 Message Date
Chris Down
69c247de2f 45463: test: kill: Document why we use SIGURG
See discussion in workers/45460.
2020-02-18 19:35:18 +00:00
Chris Down
5c55b3fb50 45453: builtins: kill: Do not signal current process group when pid is empty
The following case was encountered in the wild:

    % zsh; echo "$?"
    % trap 'exit 5' TERM
    % kill ''
    5

This behaviour seems more likely to be the result of bugs in programs
(e.g. `kill -9 "$unsetvar") rather than being desirable
behaviour to me.  It also seems unintentional judging by the code and
documentation, since it comes about as a result of the fact that:

- `isanum` returns true for empty strings (since an empty string
  technically only consists of digits and minuses...);
- `atoi`, when passed a pointer to an invalid number, returns 0;
- `kill(0, signal)` sends the signal in question to all processes in the
  current process group.

There are (at least) two ways to solve this issue:

1. Add special handling to `kill` to avoid this case. See this patch[0]
   for a version that does that.
2. Change how isanum behaves. Since the only two call sites that use it
   both seem like they should handle the case where the input char array
   is empty, that seems like a reasonable overall change to me.[1]

After this patch:

    % trap 'exit 5' TERM
    % kill ''
    kill: illegal pid:

The regression test for `kill` without a sigspec is also included in
this commit, as previously it's not possible to test it trivially as it
would still kill the test runner in expected-to-fail mode; see
discussion in workers/45449.

0: workers/45426: https://www.zsh.org/mla/workers/2020/msg00251.html
1: The other call site using isanum() is the fg builtin, but in that
   case we just fail later since we can't find any job named '', so no
   big deal either way. It's the kill case which is more concerning.
2020-02-18 12:59:53 +00:00
Chris Down
59258252b5 45452: builtins: kill: Add kill '' regression test with explicit sigspec
The version without a sigspec can't be added yet because it would still
kill the test runner even in expected-to-fail mode; see workers/45449
for discussion. For the same reason, we use a signal which is non-fatal
by default and unlikely to be sent by someone else, SIGURG, to do the
expected-to-fail case prior to the fix.
2020-02-18 12:59:52 +00:00
Chris Down
cb5d8bfe86 45451: builtins: kill: Add basic test suite
This is not totally comprehensive, but at least it's a start for the
core functionality. In the next commits, we'll also use this base to add
some regression tests.
2020-02-18 12:59:51 +00:00
dana
b15bd4aa59 Add unsetopt/PRIVILEGED tests 2020-02-14 16:06:58 -06:00
Daniel Shahaf
8250c5c168 Improve PRIVILEGED fixes
- Fix retval handling in bin_setopt()

- Don't skip_setuid / skip_setgid.  It's not our place to optimize away noops
  (that might not even _be_ noops; they might change the saved uid…).

- Remove HAVE_* guard checks around functions that are used unguarded elsewhere.

- Use bsd-setres_id.c from OpenSSH to provide setresuid() / setresgid()
  everywhere, and thus simplify the ifdef soup.  Fix some preëxisting
  bugs in the macro definitions of setuid() (do we still need that one?).

- Fix zwarning() format codes for variadic arguments type safety

- Restored a comment from HEAD

- Fix failure modes around initgroups()

- Compared privilege restoration code with OpenSSH's permanently_drop_uid() and
  updated as needed

- Add E01 PRIVILEGED sanity checks
2020-02-14 16:06:57 -06:00
dana
e89060a377 unposted: V01zmodload: Fix failing test from workers/45385 2020-02-14 15:55:52 -06:00
Daniel Shahaf
699dfdd0ea 45385: Add a test for 'zmodload -Fa' preemptively disabling ("blacklisting"?) features. 2020-02-07 12:44:53 +00:00
Daniel Shahaf
3bcf9641eb 45368: Add tests for workers/45367's issue about double slashes in 'cd -P' and /home/daniel/in/zsh. 2020-02-03 07:09:30 +00:00
Peter Stephenson
e01223a26c 45373: Fix ERR_EXIT bug in else branch of if.
The flags need resetting for this branch otherwise e.g. command
substitution with non-zero status doesn't cause exit.
2020-02-02 18:05:47 +00:00
Daniel Shahaf
28e11ac60b 45305: Add an XFail test: The exec-last-command optimization is applied to try/always. 2020-01-16 18:21:11 +00:00
dana
62a1e37ccc 45296: D02glob: Clean up after test from users/24633 2020-01-13 17:43:51 -06:00
Daniel Shahaf
9f8c369ccd 45290: New helper script for listing XFail tests. 2020-01-13 22:48:55 +00:00
Daniel Shahaf
0681be600c users/24633: Add an xfail test for users/24619. 2020-01-12 22:14:10 +00:00
Jens Schleusener
11dbe4c286 45269: Fix misspellings in completions and elsewhere. 2020-01-09 13:42:02 +00:00
Daniel Shahaf
379d7088d6 unposted: internal: Remove Vim modeline that interferes with ztst.vim.
As an alternative, one can use:

    autocmd BufRead,BufNewFile **/*.ztst setfiletype zsh

(But see Util/ztst-syntax.vim and Util/ztst-ftplugin.vim for an alternative.)
2020-01-07 19:37:41 +00:00
Daniel Shahaf
b591d43113 45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match. 2020-01-02 16:00:11 +00:00
Daniel Shahaf
ac964897f4 unposted: Add some tests for ${(S)}, including a regression test for workers/45164. 2020-01-01 13:56:04 +00:00
Daniel Shahaf
9432d9b1cf 45169/0002 (tweaked for trailing newlines): Add an expected-to-fail test for workers/44007. 2020-01-01 13:55:39 +00:00
Daniel Shahaf
7e2c80fcd5 45169/0001: In the test suite, allow test cases to be marked as expected to fail.
See next commit for a use-case.
2020-01-01 13:55:39 +00:00
Daniel Shahaf
6a67d38e96 users/24582 + users/24583: Add regression tests for the previous commit. 2019-12-31 18:43:26 +00:00
Daniel Shahaf
4a2a15d8dc unposted: internal: Vim ztst support: Add an ftplugin in addition to the syntax highlighter. 2019-12-27 06:11:28 +00:00
Daniel Shahaf
5c5ac5efdb unposted: Fix broken build: 45109 (!) broke Test/Y01completion.ztst. 2019-12-22 04:14:58 +00:00
Daniel Shahaf
a0c0aa41d2 45111: zshmisc(1): Clarify the documentation of 'return' and 'exit' in conjunction with try/always
Having reviewed 20076, 20084, 21734, and 21735, my understanding is that
the original intention was:

- A 'return' in a function does run always-list
- An 'exit' outside a function does not run always-list
- A 'return' outside a function is treated as an 'exit'

All of which are the case today.  The remaining case, of 'exit' used
inside a function, was not specified by the referenced -workers@ posts;
does, as implemented, run the always-list; and furthermore, based in
21734 it's fair to assume that the original documentation was assuming
that 'exit' would be used outside of any function, just like it assumed
'return' would be used inside a function.

Therefore, have the documentation specify only the behaviour of 'exit'
outside any function, and leave the behaviour of 'exit' inside
a function unspecified.  Anyone who relied on the documentation of 'exit'
as documented until this commit would have run into the
documentation/implementation discrepancy described in 45075.
2019-12-22 03:21:09 +00:00
Daniel Shahaf
fa7e3146fa 45107: ztst.vim: Highlight some more special variables 2019-12-22 03:20:58 +00:00
Daniel Shahaf
f906ba9d37 45108: ztst.vim: Conceal the '>' or '?' on pattern expected output / expected errput lines.
This aligns the expectations given by '*>' and '>' lines.
2019-12-22 03:20:57 +00:00
Daniel Shahaf
43761827f9 45109: Add Vim highlighting file for Test/*.ztst files. 2019-12-22 03:20:55 +00:00
Daniel Shahaf
26ec82730d unposted: Group related tests. No functional change. 2019-12-21 11:37:21 +00:00
Peter Stephenson
273d669a56 45001: Fix zero-length matches with ${...%...}
As the shortest match is preferred, zero-length matches beat any other.
2019-12-12 10:23:47 +00:00
Martijn Dekker
c578f0a08b 45004: Fix typos in comments 2019-12-11 02:37:39 +00:00
Daniel Shahaf
2acbae3bad unposted: zstyle: Add a unit test and some comments. 2019-12-01 04:00:17 +00:00
Daniel Shahaf
030440d5b7 unposted: Add smoke test for :P history modifier. 2019-11-19 17:57:13 +00:00
Peter Stephenson
d946f22a4c 44664: Fix problem with temporary assignment.
"foo=bar builtin" inside a function lost any variable from
enclosing scope.
2019-08-14 15:16:59 +01:00
Peter Stephenson
4fae525726 Copy functions using functions -c old new.
Documentation and test.
2019-08-03 19:53:51 +01:00
Peter Stephenson
ede3e4e61e 44523: Add ZTST_handler capability.
Defaults to runtests.zsh but can be something else for alternative
test management.
2019-07-16 10:57:35 +01:00
Martijn Dekker
700ec49581 44469: correct error on missing option argument 2019-07-01 09:42:22 +01:00
Peter Stephenson
4384fdc7f0 44446: Fix here document with file descriptor declarator.
Add unit test.
2019-06-24 20:19:19 +01:00
Peter Stephenson
b8dc5a7f6d 44435: Handling digita arguments for :h and :t.
Pick number of leading or trailing path components to substitute.
Active in history, brace parameters, glob qualifiers.

Add tests for all three environments.
2019-06-20 11:13:05 +01:00
Oliver Kiddle
a531a1ec2d 44345: fix wordcode traversal where ! without a following command could result in a crash 2019-05-23 01:05:01 +02:00
Peter Stephenson
30e356eb1a 44296: "typeset Q= {X}" crashed the shell. 2019-05-14 12:10:10 +01:00
dana
cebec8926a unposted: Fix bad encoding in previous Y01 test patch 2019-05-08 18:23:33 -05:00
Oliver Kiddle
ffacb17886 unposted: Add compset tests related to workers/44275
(Provided off-list by Oliver)
2019-05-08 16:38:12 -05:00
Oliver Kiddle
cd6fd2b0a3 44274: allow finer control of completion match soring with compadd's -o option 2019-05-07 23:24:49 +02:00
dana
6f202377c7 44267: sort: Restore option to ignore backslashes
Fix regression introduced by workers/41242
2019-05-03 20:13:48 -05:00
Peter Stephenson
588bb77cb6 44271: Fix breaks propagated from until or return.
If the until or return test caused continuation but there was
a pending return, breaks didn't get cancelled causing enclosing
scope to skip commands.
2019-05-03 20:34:53 +01:00
dana
632023acc2 44100: zparseopts: Add -F option, completion, tests; improve documentation
* Enable zparseopts to perform basic usage validation (aborting on an
  unrecognised option-like parameter)

* Officially document the resolution of ambiguous option specs
2019-03-12 19:03:56 -05:00
Jun-ichi Takimoto
2055ee92e7 unposted: ztst.zsh: fix a typo 2019-03-01 14:57:55 +09:00
dana
ed4c8f3d5e 44030: prompt: Return error for unrecognised colour name 2019-02-03 11:55:40 -06:00
dana
e3cab52ca2 44012: X04zlehighlight: Fix spurious test failures on OpenBSD 2019-01-23 20:35:38 -06:00
Mikael Magnusson
d683d278c7 44011: Only use fg_start_code for non-truecolor
The sequence for truecolor uses a different prefix from palette colors
2019-01-23 11:51:42 +01:00