1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-17 00:30:37 -08:00
Commit graph

4267 commits

Author SHA1 Message Date
Philipp Stephani
1060289f51 Add a helper binary to create a basic Secure Computing filter.
The binary uses the 'seccomp' helper library.  The library isn't
needed to load the generated Secure Computing filter.

* configure.ac: Check for 'seccomp' header and library.

* lib-src/seccomp-filter.c: New helper binary to generate a generic
Secure Computing filter for GNU/Linux.

* lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper
binary if possible.
(all): Add Secure Computing filter file if possible.
(seccomp-filter$(EXEEXT)): Compile helper binary.
(seccomp-filter.bpf seccomp-filter.pfc): Generate filter files.

* test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess): New unit tests.

* test/Makefile.in (src/emacs-tests.log): Add dependency on the helper
binary.
2021-04-10 21:10:16 +02:00
Philipp Stephani
be8328acf9 Add support for --seccomp command-line option.
When passing this option on GNU/Linux, Emacs installs a Secure
Computing kernel system call filter.  See Bug#45198.

* configure.ac: Check for seccomp header.

* src/emacs.c (usage_message): Document --seccomp option.
(emacs_seccomp): New wrapper for 'seccomp' syscall.
(load_seccomp, maybe_load_seccomp): New helper functions.
(main): Potentially load seccomp filters during startup.
(standard_args): Add --seccomp option.

* lisp/startup.el (command-line): Detect and ignore --seccomp option.

* test/src/emacs-tests.el (emacs-tests/seccomp/absent-file)
(emacs-tests/seccomp/empty-file)
(emacs-tests/seccomp/file-too-large)
(emacs-tests/seccomp/invalid-file-size): New unit tests.
(emacs-tests--with-temp-file): New helper macro.

* etc/NEWS: Document new --seccomp option.
2021-04-10 18:47:26 +02:00
Philipp Stephani
53dfd85a7f Edebug: Disable backtracking when hitting a &define keyword.
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Disable
backtracking when hitting a &define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&define): New unit test.
(edebug-tests--duplicate-&define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
2021-04-10 18:19:49 +02:00
Mattias Engdegård
59342f689e Fix condition-case optimiser bug
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't
perform incorrect optimisations when a condition-case variable shadows
another lexical variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
New test case.
2021-04-09 19:20:55 +02:00
Mattias Engdegård
b7a7e879d0 Better compiler warning tests
These changes allow all bytecomp-tests to be run interactively.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test)
(bytecomp--define-warning-file-test): Interpret any space in the
pattern as arbitrary whitespace to tolerate line breaks.
Don't abuse the expected-failure mechanism when checking
for the expected absense of a warning.
(bytecomp/*.el): Rewrite patterns to work with line breaks
in the middle.
2021-04-09 19:20:55 +02:00
Mattias Engdegård
a2a7cfde29 Clean up bytecomp-tests.el
Now all test cases are run with both lexical and dynamic binding
where applicable, comparing interpreted against compiled results.
Previously, almost all tests were only run with dynamic binding
which was definitely not intended.

* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Rename to bytecomp-tests--test-cases.
(bytecomp-check-1, bytecomp-explain-1, bytecomp-tests)
(bytecomp-lexbind-tests, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1): Remove.
(bytecomp-tests--eval-interpreted, bytecomp-tests--eval-compiled)
(bytecomp-tests-lexbind, bytecomp-tests-dynbind)
(bytecomp-tests--test-cases-lexbind-only): New.
2021-04-09 19:20:54 +02:00
Stefan Kangas
841dcfa7c3 Use lexical-binding in loadhist.el and add tests
* lisp/loadhist.el: Use lexical-binding.
* test/lisp/loadhist-tests.el: New file.
2021-04-09 13:44:44 +02:00
Mattias Engdegård
612d731676 Self-TCO in condition-case error handlers
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Recognise
`condition-case` handlers as being in the tail position.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Extend test.
2021-04-09 10:55:37 +02:00
Stefan Monnier
dfdec267ae * test/lisp/shadowfile-tests.el: Fix recent test failures
(shadow--tests-cleanup): `shadow-hashtable` is now a hash table (duh!).
2021-04-08 22:55:20 -04:00
Mattias Engdegård
55f0576ebd Fix mistakes in bytecomp-tests
* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Fix typos and avoid errors that made
the tests less powerful than intended.
2021-04-07 13:11:43 +02:00
Michael Albinus
6060d53b3e * test/infra/Dockerfile.emba (emacs-gnustep): Do not run parallel make. 2021-04-05 12:45:10 +02:00
Michael Albinus
6a80632c3f * test/lisp/filenotify-tests.el (file-notify--test-timeout):
Change timing on emba.
2021-04-04 14:06:40 +02:00
Stefan Kangas
4865ded551 Remove redundant #' before lambda in tests
* test/lisp/electric-tests.el (save-electric-modes)
(inhibit-in-mismatched-string-inside-ruby-comments)
(inhibit-in-mismatched-string-inside-c-comments, js-mode-braces)
(js-mode-braces-with-layout)
(js-mode-braces-with-layout-and-indent, autowrapping-1)
(autowrapping-2, autowrapping-3, autowrapping-4, autowrapping-5)
(autowrapping-6, autowrapping-7):
* test/lisp/progmodes/xref-tests.el
(xref--xref-file-name-display-is-relative-to-project-root):
* test/src/thread-tests.el (threads-signal-early)
(threads-signal-main-thread): Remove redundant #' before lambda.
2021-04-04 13:06:33 +02:00
Michael Albinus
860bc0db1c * test/lisp/filenotify-tests.el (file-notify--test-timeout): Change timing.
; * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter):
; Remove test message.
2021-04-03 12:26:14 +02:00
Stefan Kangas
a5125f98b8 ; Remove spurious comment in last commit 2021-04-01 19:57:05 +02:00
Stefan Kangas
33f00364cf Use lexical-binding in executable.el and add tests
* lisp/progmodes/executable.el: Use lexical-binding.
* test/lisp/progmodes/executable-tests.el: New file.
2021-04-01 19:55:32 +02:00
Stefan Kangas
4582c96828 Use lexical-binding in epg-config.el and add tests
* lisp/epg-config.el: Use lexical-binding.
(epg-find-configuration): Improve error message.
* test/lisp/epg-config-tests.el: New file.
2021-04-01 11:07:06 +02:00
Stefan Kangas
d3aac3b34c Use lexical-binding in lpr.el and add rudimentary tests
* lisp/lpr.el: Use lexical-binding.  Remove redundant :group args.
(print-region-function): Declare MS-Windows specific function.
* test/lisp/lpr-tests.el: New file.
2021-03-30 23:11:24 +02:00
Glenn Morris
309635af69 Merge from origin/emacs-27
8a92030f6a (origin/emacs-27) Fix hang in autorevert-tests.el

# Conflicts:
#	test/lisp/autorevert-tests.el
2021-03-29 08:31:15 -07:00
Michael Albinus
afc214f139 ; Fix last change 2021-03-29 12:12:33 +02:00
Michael Albinus
e1177f0258 Optimize test jobs for emba
* test/infra/gitlab-ci.yml (.test-template): Do not run fast and
normal test jobs when scheduled.
2021-03-29 11:33:36 +02:00
Michael Albinus
0057caa53c * test/infra/gitlab-ci.yml (test-filenotify-gio): Use *.log for make_params. 2021-03-29 10:15:45 +02:00
Michael Albinus
8a92030f6a Fix hang in autorevert-tests.el
* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert):
Apply more robust check, whether file notification is used.
2021-03-28 21:06:24 +02:00
Michael Albinus
96a4593598 Make artifacts working on emba (hopefully)
* test/infra/gitlab-ci.yml (.job-template): Use proper docker name.
(.test-template): Adapt artifacts path.
2021-03-28 10:08:00 +02:00
Michael Albinus
669e30c0a3 ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 21:27:35 +01:00
Michael Albinus
56081645cc ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 20:19:27 +01:00
Michael Albinus
c52cf64adb ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 20:14:22 +01:00
Michael Albinus
526220c53d ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 17:47:43 +01:00
Michael Albinus
6d943f682c ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 16:49:09 +01:00
Michael Albinus
e26d0e611a ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 14:57:32 +01:00
Michael Albinus
47ec253a5d ; Adapt recent change in test/infra/gitlab-ci.yml 2021-03-27 12:49:00 +01:00
Michael Albinus
d6344b2e9a Keep *.log files on emba
* test/infra/gitlab-ci.yml (.test-template): New template.
(test-fast-inotify, test-lisp-inotify, test-lisp-net-inotify)
(test-filenotify-gio, test-gnustep, test-all-inotify): Use it.
2021-03-27 11:43:15 +01:00
Eli Zaretskii
a25a5a68b4 Fix lisp/files-tests on MS-Windows
* test/lisp/files-tests.el (files-colon-path)
(files-tests-bug-21454): Adapt to MS-DOS/Windows, where
parse-colon-path needs and absolute file name with a drive letter.
(files-tests-file-name-non-special-get-file-buffer): Forcefully
delete the file's buffer if it happens to exist.
2021-03-27 13:24:58 +03:00
Matt Armstrong
c4ab173df3 File unlock errors now issue warnings (Bug#46397)
The primary idea is to allow `kill-buffer' and `kill-emacs' to
complete even if Emacs has trouble unlocking the buffer's file.

* lisp/userlock.el (userlock--handle-unlock-error): New function, call
`display-error'.
* src/filelock.c (unlock_file_body): New function, do what
'unlock_file' used to.
(unlock_file_handle_error): New function, call
`userlock--handle-unlock-error' with the captured error.
(unlock_file): Handle `file-error' conditions by calling the handler
defined above.
* test/src/filelock-tests.el (filelock-tests-kill-buffer-spoiled):
(filelock-tests-unlock-spoiled): Modify to test new behavior.
2021-03-27 12:17:31 +03:00
Matt Armstrong
a443a379c5 Add test coverage for src/filelock.c (Bug#46397)
* test/src/filelock-tests.el: New file.
2021-03-27 12:16:03 +03:00
Michael Albinus
c2e72610d2 Improve remote file notifications
* lisp/net/tramp-sh.el (tramp-get-remote-gio-file-monitor): Remove it.
(tramp-sh-handle-file-notify-add-watch): Do not call it.
(tramp-sh-gio-monitor-process-filter): Read monitor name.

* test/lisp/filenotify-tests.el (file-notify--test-read-event)
(file-notify--test-timeout): Change timings.
(file-notify--test-monitor): Read remote monitor name more reliably.
(file-notify-test02-rm-watch): Retrieve remote monitor name in time.
(file-notify--test-event-actions): New defun.
(file-notify--test-with-actions-explainer): Use it.
(file-notify--test-with-actions-check): Use it.  Dump traces in
case of debug.
(file-notify--test-with-actions): Don't stop while debugging.
(file-notify-test03-events, file-notify-test04-autorevert)
(file-notify-test05-file-validity)
(file-notify-test07-many-events, file-notify-test08-backup)
(file-notify-test09-watched-file-in-watched-dir): Adapt tests.
2021-03-26 19:30:05 +01:00
Spencer Baugh
c24766c4d5 Assert not local-variable-p after setq in let_default binding
Breaking this is a likely way to break this test, so this saves a bit
of time in debugging.

* test/src/data-tests.el (data-tests--let-buffer-local):
Add assertion to test.
2021-03-25 12:39:26 -04:00
Spencer Baugh
b29bf8181f Add a test for let-binding unwinding
Bindings in other buffers are not un-set when we unwind a let-binding
which set the default value.  There doesn't seem to be an existing
test which covers this, so here's one.

* test/src/data-tests.el (data-tests--let-buffer-local-no-unwind-other-buffers):
  Add test for let-binding unwinding behavior
2021-03-25 12:38:50 -04:00
Michael Albinus
720a8b17f8 Fix filenotify-tests.el for Solaris (bug#47262), do not merge
* test/lisp/filenotify-tests.el (file-notify--test-read-event):
Check also for GFamDirectoryMonitor.
(file-notify--test-timeout): Increase cygwin timeout.
(file-notify--test-monitor): Use `alist-get'.
(file-notify--test-event-actions): New defun.
(file-notify--test-with-actions-explainer): Use it.
(file-notify--test-with-actions-check): Use it.  If
file-notify-debug is non-nil, trace received events instead of
checking them.
(file-notify-test03-events, file-notify-test05-file-validity)
(file-notify-test07-many-events, file-notify-test08-backup)
(file-notify-test09-watched-file-in-watched-dir):
Handle GFamFileMonitor and GFamDirectoryMonitor.
2021-03-25 15:36:33 +01:00
Alan Mackenzie
d20a4a50d3 Improve failure reporting in test/lisp/electric-tests.el
In particular, on a failure, output the test's doc string to
electric-tests.log, along with all the other failure information.
Fixes bug #47320.

* electric-tests.el (electric-pair-test-for) New parameter doc-string.  On a
test failure, output the doc-string parameter with message.
(electric-pair-define-test-form): Set the new variable doc-string to the
generated doc string, and pass this as argument to both ert-deftest and
electric-pair-test-for.
2021-03-24 19:01:31 +00:00
Harald Jörg
1ac8cd3ef6 perl-mode: Fix regexps for fontification
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-fontify-declarations): New test to ensure consistency
between perl-mode.el and cperl-mode.el (bug#47345).
* lisp/progmodes/perl-mode.el (perl-font-lock-keywords-1): pick
correct capture groups for "use Pack::Age;"
Fontify all components of "Pack::Age", not just "Pack"
(perl-font-lock-keywords-2): Use keyword-face for declarators
2021-03-24 17:06:21 +01:00
Stefan Kangas
cb5d1fe1aa Remove unnecessary requires of rx
* lisp/cedet/semantic/wisent/python.el (rx):
* test/src/process-tests.el (rx): Remove unnecessary requires.
2021-03-22 01:06:32 +01:00
Toby Cubitt
e33c2bfbf3 Fix cl-progv binding order
* lisp/emacs-lisp/cl-macs.el (cl-progv): Bind variables in the
correct order (bug#47272).
2021-03-20 10:01:19 +01:00
Stefan Kangas
7607d1c4e8 Use lexical-binding in thumbs.el
* lisp/thumbs.el: Use lexical-binding.  Remove redundant :group args.
* test/lisp/thumbs-tests.el: New file.
2021-03-20 01:11:47 +01:00
Stefan Monnier
b815445cea Fix copyright lines mistakenly treated as outline headers
* lisp/emacs-lisp/generator.el:
* test/lisp/cedet/semantic-utest.el:
* test/lisp/cedet/semantic/format-tests.el:
* test/lisp/cedet/semantic/fw-tests.el:
* test/lisp/cedet/semantic/bovine/gcc-tests.el:
* test/lisp/cedet/semantic/format-resources/test-fmt.el:
* test/manual/cedet/semantic-tests.el:
* lisp/obsolete/inversion.el: Use only 2 semi-colons before "Copyright".
2021-03-18 23:32:57 -04:00
Stefan Kangas
0a305dffb8 Fix a warning due to not preloading facemenu.el
* test/src/undo-tests.el (facemenu): Require.
2021-03-19 02:12:01 +01:00
Stefan Monnier
a9a4af6ff1 * test/lisp/progmodes/cperl-mode-tests.el: Silence warnings
(cperl-test-bug-47112): Actually obey the major-mode for the test.
2021-03-18 14:32:36 -04:00
Mattias Engdegård
52270aa0dc Optimise tail calls in and and or forms in cl-labels functions
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Handle `and` and `or`.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Add test cases.
2021-03-18 13:35:55 +01:00
Stefan Kangas
4d5ad8a16e Add comint-password-prompt-regexp test for "zip -e ..."
* test/lisp/comint-tests.el (comint-testsuite-password-strings):
Add test for "zip -e ...".  (Bug#47209)
2021-03-18 11:26:37 +01:00
Lars Ingebrigtsen
869b3efe1e Fix breaking undo-test 2021-03-18 09:22:28 +01:00