summaryrefslogtreecommitdiff
path: root/test/src
AgeCommit message (Collapse)Author
2026-05-29Merge from origin/emacs-31Sean Whitton
c3babe4b896 Fix lax whitespace highlight during query-replace 2e70b88623e Fix fill-paragraph combining text with preceding comment ea54c33950f ; * etc/PROBLEMS: Link to bug#81124. 02897e208d0 emacsclient quote_argument is void c6181780663 ; Mark process-test-stderr-buffer as :unstable when runni... 2c1b45f5c56 ; Improve documentation of 'vc-dir-auto-hide-up-to-date' 768c8bf0045 Revert "* admin/notes/documentation: Recommend not using ... a7414f18598 native--compile-skip-on-battery-p: Try to fix ?b, ?B cond... 7cee526a8cc Save and restore original local keymap in grep-edit-mode 4d87d203cfb Fix display of inline SVG images in Rmail 4c55d04ebe3 Add treesit-ready-p check back to tree-sitter major modes... 7892ae5eaf4 Fix pathological slowness in flex completion 12eec781ed6 No longer raise error on HTTP 402 (Payment Required) (bug... 1800350b186 Avoid compilation-mode matching rust as gnu
2026-05-28Speed-up cursor motion under 'display-line-numbers-mode'Eli Zaretskii
* src/xfaces.c (Finternal_lisp_face_equal_p): Accept an additional optional argument INHERIT; if non-nil, consider two faces equal if one inherits from the other and doesn't specify any other attributes to be different from it. * src/xdisp.c (try_cursor_movement, try_window_id): Call 'Finternal_lisp_face_equal_p' with non-nil INHERIT argument, to speed up redisplay in the default case when line numbers are shown. (Bug#81133) * test/src/xfaces-tests.el (xfaces-test-face-equality): New test.
2026-05-26Omit useless casts found by GCC 16Paul Eggert
GCC 16’s -Wuseless-cast warning can be useful. Fix the useless casts it identifies, and also fix false positives by using compound literals, which are safer anyway than casts. * src/composite.c (composition_adjust_point) (Ffind_composition_internal): * lwlib/xlwmenu.c (xlwMenuResources, xlwMenuClassRec) (resource_widget_value, XlwMenuDestroy, Select): * src/alloc.c (process_mark_stack): * src/data.c (Faref): * src/emacs-module.c (module_extract_big_integer): * src/fileio.c (Finsert_file_contents): * src/frame.h (FRAME_MESSAGE_BUF_SIZE): * src/gtkutil.c (xg_tool_item_stale_p, update_frame_tool_bar): * src/image.c (pbm_load, png_load_body, jpeg_load_body) (tiff_load, gif_load): * src/pdumper.c (ptrdiff_t_to_dump_off, dump_queue_dequeue) (field_relpos, dump_field_emacs_ptr) (dump_object_start_pseudovector, pdumper_remember_scalar_impl) (pdumper_load, syms_of_pdumper): * src/regex-emacs.c (BUF_PUSH, BUF_PUSH_2, POINTER_TO_OFFSET): * src/xdisp.c (remember_mouse_glyph, pint2str): * src/xterm.c (cvt_string_to_pixel, handle_one_xevent): Omit useless casts. Perhaps they were formerly needed, but they should not be needed now. * src/alloc.c (Fmemory_info): * src/category.c (Fdefine_category, Fmodify_category_entry): * src/data.c (Fash): * src/dispextern.h (GLYPH_CODE_P): * src/emacs.c (load_seccomp): * src/fns.c (Flocale_info, maybe_resize_hash_table): * src/indent.c (check_display_width): * src/json.c (symset_size): * src/lisp.h (XUNTAG, BOOL_VECTOR_LENGTH_MAX, obarray_size) (hash_table_index_size): * src/lread.c (make_obarray, grow_obarray, Fobarray_clear): * src/menu.c (digest_single_submenu, x_popup_menu_1): * src/term.c (init_tty): * src/widget.c (update_wm_hints): * src/xdisp.c (truncate_echo_area): * src/xfns.c (x_set_border_pixel): * src/xfont.c (xfont_match, xfont_open): * src/xmenu.c (set_frame_menubar): * test/src/emacs-module-resources/mod-test.c (emacs_module_init): Use compound literal instead of a cast that is useless in some platforms but not others. * src/dispextern.h, src/haikugui.h, src/w32gui.h: (WINDOW_HANDLE_UINTPTR): New macro. * src/frame.c (gui_report_frame_params): * src/xterm.c (x_try_cr_xlib_drawable): Use it. * src/lisp.h (XUNTAG): And tag with UINTPTR_MAX to pacify gcc warning about a constant out of range. (hash_idx_t): Make it int_least32_t, as it need not be exactly 32 bits. (PRIdHASH_IDX): New macro. * src/pdumper.c (dump_queue_dequeue): Use it. * src/profiler.c (setup_cpu_timer): Make a local EMACS_INT rather than int, to avoid need for casting later. * src/syntax.c (uninitialized_interval): Use 1u rather than 1 so the cast is always useful. A compound literal wouldn’t do here, as this macro needs to be an integer constant expression. * src/xfns.c (XICCallback, XICProc): Remove macros. (Xxic_preedit_start_callback): Use a cleaner way to specify it, avoiding the need for type macros, and for a cast if HAVE_XICCALLBACK_CALLBACK. * src/xterm.c (handle_one_xevent): 2nd arg is now XEvent * on all platforms, as there is no need to diverge, and diverging meant we needed lots of unnecessary casts.
2026-05-25; Mark process-test-stderr-buffer as :unstable when running on embaMichael Albinus
* test/src/process-tests.el (process-test-stderr-buffer): Mark as :unstable when running on emba. (Bug#80166)
2026-05-24Avoid crash in self-insert-command with non-ASCII auto-fillPip Cet
* src/cmds.c (internal_self_insert): If the autofill function changed the newline character we inserted, don't attempt to restore point. * test/src/cmds-tests.el (self-insert-nonascii-autofill): New.
2026-05-24Avoid crash in self-insert-command for peculiar argumentsPip Cet
* src/cmds.c (internal_self_insert): Don't call auto-fill-function after inserting zero newlines. * test/src/cmds-tests.el (self-insert-zero-newlines): New.
2026-05-24Fix 'do_casify_natnum' for events with all flags setPip Cet
* src/casefiddle.c (do_casify_natnum): Extend range a little, to cover character events with all modifier flags set. * test/src/casefiddle-tests.el (casefiddle-allflags): New test.
2026-05-24Fix off-by-one error in 'styled_format'Pip Cet
This would (rarely) result in composition properties being shared across the concatenation of two copies of a string. * src/editfns.c (styled_format): Include the first argument in the range. * test/src/editfns-tests.el (editfns-tests--format-composition-property): New.
2026-05-18; Improve last changeJim Porter
* test/src/process-tests.el (process-tests/broken-pipe): Use CONNECTION-TYPE. (process-tests/broken-pipe/pipe-all) (process-tests/broken-pipe/pipe-stdin): Skip via 'skip-when'. (process-tests/broken-pipe/pty) (process-tests/broken-pipe/pty-stdin): Remove these invalid tests; EPIPE from a PTY doesn't make sense.
2026-05-17Allow child processes to continue after EPIPEJim Porter
This ensures that if the child process closed its stdin and Emacs tries to write to it, the process can still do any remaining work and exit normally. In practice, this can occur with commands like "head(1)" (bug#79079). * src/fileio.c (file_for_stream): New function, extracted from... (Fset_binary_mode): ... here. (Ffile__close_stream): New function. * src/process.c (send_process): When encountering EPIPE, only close the fd for the pipe to the child process's stdin. * lisp/eshell/esh-io.el (eshell-output-object-to-target): Don't check for process liveness anymore. * test/src/process-tests.el (process-tests/broken-pipe): New function. (process-tests/broken-pipe/pipe, process-tests/broken-pipe/pty) (process-tests/broken-pipe/pipe-stdin) (process-tests/broken-pipe/pty-stdin): New tests. * etc/NEWS: Announce this change.
2026-05-17Ensure that process-tests clean up test processesJim Porter
* test/src/process-tests.el (start-process-should-not-modify-arguments): Clean up test process. (process-test--check-pipe-process): New macro... (process-test-make-pipe-process-no-buffer): ... call it.
2026-05-13keyboard-tests.el: Try and fix the failure on EMBAStefan Monnier
* test/src/keyboard-tests.el (keyboard-sigint-to-quit): Fix a small race condition and avoid `sit-for` returning early.
2026-05-07; Revert Eric's commits from February.Sean Whitton
These will be resubmitted as patches for review. Revert "Repair another test bollixed by aggressive optimization." This reverts commit 47735e0243ba15a485e1a6f25be53f6e42dafa24. Revert "Repair ab ecal test by making a variable kexical," This reverts commit ca42055b0ca3bba1b635e314f084239f5a205534. Revert "Complete the test set for floatfns,c." This reverts commit 1b0c8d6b95f0704936e4449270a815abb8865c3d. Revert "Tesrts for the portable primitives in fileio.c." This reverts commit a339c6827c0bb1e80de1cfb9c51b4c4b764046bc. Revert "Tests for primitives in coding.c and charset.c." This reverts commit 5749b2e4f4d11dd646892e70f520700e4f0f16f5. Revert "Tests for primitives from the character.c module." This reverts commit b09f8df206aae1e4b70d8961e6693d574aea6a30. Revert "Tests for the lreaf.c amd print.c primitives." This reverts commit d7a3d442b4cdfd88447eec49339dfa5d69342de9. Revert "Tests for remaining functions iun eval.c." This reverts commit cd038e5617ff940ead880fbc9c1df95e61453246. Revert "Completing test coverage for dataa.c orimitives." This reverts commit a6e19d6179ad608688c6edcc2b1f7368c05dff69. Revert "More correctness tesrs for orinitives from fns.c." This reverts commit 40ff4512ad12fd29a5bea887fe77c3bddfa4caec. Revert "More tests for edit functions, buffers, and markers." This reverts commit 67e8f875627e38450a6c713e810dcea2106c6d9c. Revert "Added more buffer/marker/editing test coverage." This reverts commit 3dda4b85e8a66a0c5592197dcc2895d65c04bc51. Revert "Category/charset/coding + char-table tests." This reverts commit 7a93a7b3345f7ae4e8f487b562b19a4b5fed8496. Revert "More test coverage improvements." This reverts commit fc7339c46dc87d5d7051f976206bb5c4d9efdfb8. Revert "More test coverage improvements." This reverts commit 95329bf445841a763bafa4ea5e853fc1c6f6bf0a. Revert "More test coverage improvements for ERT." This reverts commit e42c579a544d3d254e55db2f6b70e55205987d36. Revert "Crrections to tedt coverrage extensuion after bootstrap build." This reverts commit 90af3295c7fa705381bf680ec8559503ea875683. Revert "Improve test coverage of builtin predicates." This reverts commit 6eb170b007a4ad63fe5666033df191f52d480739. Revert "Tests for 2 marker primitives previously not covered." This reverts commit 6d7f0acf9cc15b388f90363d012aaba3d95be6c8. Revert "Tests for 7 editor primitives previously not covered." This reverts commit bb403e70aec25677393d4f37d544487a9aebab9e.
2026-05-04keyboard.c: Allow SIGINT to `quit` in batch mode, instead of exitStefan Monnier
In terminal sessions, SIGINT is turned into a `quit` ELisp signal, but in batch it has traditionally killed Emacs. It can be very useful to cause a `quit` from outside the process when running in batch (e.g. for "batch" sessions that provide a REPL via stdin/out), so add a new var 'kill-emacs-on-sigint' to control that behavior. (bug#80942) * src/keyboard.c (handle_interrupt_signal): Obey `kill_emacs_on_sigint`. (init_keyboard): Use `deliver_interrupt_signal` for SIGINT also for batch sessions. (syms_of_keyboard): New variable `kill_emacs_on_sigint`. * test/src/keyboard-tests.el (keyboard-sigint-to-quit): New test. * doc/emacs/cmdargs.texi (Initial Options): Mention the effect of `kill-emacs-on-sigint` in batch mode.
2026-05-02; Add a test for sqlite-closeChris Roberts
* test/src/sqlite-tests.el (sqlite-closed-db): Add test. (Bug#80908) Copyright-paperwork-exempt: yes
2026-04-29; Spelling fixes.Paul Eggert
2026-04-29Add ERT coverage for read_key_sequence behaviourVladimir Kazanov
* test/src/keyboard-tests.el (keyboard-tests--rks-fake-posn) (keyboard-tests--rks-observe) (keyboard-tests--rks-execute) (keyboard-tests--rks-with-function-key-bindings) (keyboard-tests--rks-with-event-kinds) (keyboard-tests--rks-call-with-live-window-maps): Test helpers. (keyboard-tests-rks-prefix-then-key) (keyboard-tests-rks-unbound-returns-sequence) (keyboard-tests-rks-bound-sequence-ends-read) (keyboard-tests-rks-decode-fires-without-binding) (keyboard-tests-rks-input-decode-map) (keyboard-tests-rks-function-key-map) (keyboard-tests-rks-function-key-map-on-undefined) (keyboard-tests-rks-key-translation-before-function-key) (keyboard-tests-rks-function-key-skipped-when-bound) (keyboard-tests-rks-input-decode-after-function-key) (keyboard-tests-rks-key-translation-overrides-bound-sequence) (keyboard-tests-rks-upcase-fallback) (keyboard-tests-rks-no-upcase-fallback) (keyboard-tests-rks-dont-downcase-last) (keyboard-tests-rks-shifted-function-key-fallback) (keyboard-tests-rks-switch-frame-delayed) (keyboard-tests-rks-unbound-down-mouse-dropped) (keyboard-tests-rks-mode-line-fake-prefix) (keyboard-tests-rks-mode-line-fake-prefix-continued) (keyboard-tests-rks-clicked-buffer-switch) (keyboard-tests-rks-help-char): Tests covering for read_key_sequence.
2026-04-27Fix tree-sitter embedded parser rangeYuan Fu
If a host parser has some ranges, and an embedded parser also has some ranges, the final range used by the embedded parser should be an intersection of the two. This patch adds this logic. * lisp/treesit.el (treesit--range-verbose): New variable. (treesit--intersect-ranges): (treesit--set-embed-ranges): New function. (treesit--update-ranges-non-local): (treesit--update-ranges-local): Use the new functions. * test/src/treesit-tests.el: (treesit-intersect-ranges): New test.
2026-04-26Support Elisp debugging and backtraces in code called by modulesAaron L. Zeng
* src/lisp.h (handlertype) <CATCHER_ALL_DEBUGGABLE>: New enumeration value. * src/emacs-module.c (MODULE_HANDLE_NONLOCAL_EXIT): * src/eval.c (Fthrow, signal_or_quit): Use it. * test/src/emacs-module-tests.el (mod-test-non-local-exit-funcall-debug-on-error): New test. Bug#80714 Copyright-paperwork-exempt: yes.
2026-04-25Make :range-fn in treesit-range-rules actually workYuan Fu
* lisp/treesit.el (treesit--range-start): (treesit--range-end): (treesit--flatten-ranges): New helpers. (treesit-query-range): (treesit-query-range-by-language): Don't flatten the ranges returned by each range-fn. (treesit--update-ranges-non-local): (treesit--update-ranges-local): Handle the case where the range is a complicated ((START . END)...). * test/src/treesit-tests.el (treesit-range-helper): New test.
2026-04-16Accept marker as position in treesit.c functions (bug#80830)Yuan Fu
* src/treesit.c (treesit_check_positive_integer): Remove. (treesit_check_position): (Ftreesit_node_first_child_for_pos): (Ftreesit_node_descendant_for_range): (Ftreesit_query_capture): (Ftreesit__linecol_at): Use fix_position. * test/src/treesit-tests.el: (treesit-query-marker-position): Test.
2026-04-05; Fix recently-added treesit testEli Zaretskii
* test/src/treesit-tests.el (treesit-query-node-only-and-grouped): Remove unused variables.
2026-04-04Fix treesit-query-capture's NODE-ONLY paramYuan Fu
Before the fix, if user uses the NODE-ONLY option, we don't keep the capture names in the results, then predicates won't work because they can't reference capture names. * src/treesit.c (query_capture_remove_capture_name): New function. (Ftreesit_query_capture): Use the new function to remove capture names AFTER running the predicate. * test/src/treesit-tests.el: (treesit-query-node-only-and-grouped): New test.
2026-03-26Add predicate for initial_terminalBasil L. Contovounesios
This introduces the predicate frame-initial-p, which uses struct frame.output_method or struct terminal.type to detect initial_terminal without relying on its name (bug#80629). For some prior discussion, see: https://lists.gnu.org/r/emacs-devel/2019-12/msg00480.html https://lists.gnu.org/r/emacs-devel/2020-01/msg00120.html * doc/lispref/frames.texi (Frames): Document frame-initial-p. (Finding All Frames): Fix grammar. * etc/NEWS (Lisp Changes in Emacs 31.1): Announce frame-initial-p. * lisp/desktop.el (desktop--check-dont-save): * lisp/emacs-lisp/debug.el (debug): * lisp/frameset.el (frameset-restore): * lisp/menu-bar.el (menu-bar-update-buffers): * lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal): Use frame-initial-p instead of checking the "initial_terminal" name. * lisp/emacs-lisp/byte-opt.el: Mark frame-initial-p as error-free. * src/pgtkterm.c (pgtk_focus_changed): Use IS_DAEMON in place of Fdaemonp, thus also accepting a named daemon session. * src/terminal.c (decode_tty_terminal): Clarify commentary. (Fframe_initial_p): New function. (syms_of_terminal): Expose it. (init_initial_terminal): Update commentary now that menu-bar-update-buffers uses frame-initial-p (bug#53740). * test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Simulate the lack of an initial terminal by overriding frame-initial-p now that turn-on-xterm-mouse-tracking-on-terminal uses it. * test/src/terminal-tests.el: New file.
2026-03-21* test/src/charset-tests.el (charset-tests-define-charset): New.Helmut Eller
2026-03-15Merge remote-tracking branch 'origin/scratch/error-API'Stefan Monnier
2026-03-12Fix 'comp--func-unique-in-cu-p' to match docstringJulian Scheid
* lisp/emacs-lisp/comp.el (comp--func-unique-in-cu-p): Check only the callee name instead of requiring global uniqueness. * test/src/comp-resources/comp-test-direct-call.el: New file. * test/src/comp-resources/comp-test-direct-call-dup.el: New file. * test/src/comp-tests.el (comp-tests-has-direct-call-p) (comp-tests-direct-call-with-lambdas) (comp-tests-direct-call-with-duplicate-names): New tests.
2026-03-11Fix negated equality assumptions (bug#80327)Andrea Corallo
* lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Skip negated equality assumptions only for relational non-immediate operands. Keep immediate false-branch constraints. * test/src/comp-resources/comp-test-funcs.el (comp-test-80327-hash, comp-test-80327-f): Add reproducer. * test/src/comp-tests.el (comp-tests-bug-80327): Add regression test.
2026-03-10test subdirectory: Use new error-APIStefan Monnier
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--run-maybe-unsupported-function): Remove dummy branch in `condition-case`. * test/lisp/arc-mode-tests.el (define-arc-mode-test-on-type): Use `error-slot-value`. * test/src/process-tests.el (process-tests--ignore-EMFILE): * test/src/filelock-tests.el (filelock-tests-unlock-spoiled) (filelock-tests-kill-buffer-spoiled): * test/lisp/vc/vc-git-tests.el (vc-git-test--run): * test/lisp/proced-tests.el (proced--assert-process-valid-cpu-refinement): * test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env) (edebug-tests-post-command): * test/lisp/autorevert-tests.el (auto-revert--deftest-remote): * test/infra/android/test-controller.el (ats-connect):
2026-03-10Fix `signal` calls where the data argument is not a listStefan Monnier
* test/src/thread-tests.el (threads-join-error): * test/src/emacs-module-resources/mod-test.c (Fmod_test_signal): * src/print.c (print_bind_overrides): * lisp/url/url-future.el (url-future-finish, url-future-errored) (url-future-call, url-future-cancel): Make sure signal's data is a list. * test/src/emacs-module-tests.el (mod-test-non-local-exit-signal-test): Adjust accordingly.
2026-03-04Revert "Repair serious breakage in the batch tests."Michael Albinus
This reverts commit feac53141577161c32a7a6dfe75399a5ae98a7c1. This patch has deactivated 253 test cases without a sufficient reasoning. Instead it speaks about a shotgun in its commite message. The patch is reverted because - It hasn't been discussed on emacs-devel. It should have, because it is a serious change in our infrastructure (new official tag :nobatch). Any documentation of this change, for example in test/README, is missing. - The proper way to deactivate such tests would have been (skip-when noninteractive) Even better to skip for the respective reasons. - There is no fault report. There is no information about how these tests have failed. Since it hasn't been a problem so far for us, nobody will work on a fix forever.
2026-02-27; * test/src/data-tests.el (data-tests-native-comp-unit): Fix test.Eli Zaretskii
2026-02-25Repair another test bollixed by aggressive optimization.Eric S. Raymond
2026-02-25Repair ab ecal test by making a variable kexical,Eric S. Raymond
2026-02-25Complete the test set for floatfns,c.Eric S. Raymond
2026-02-25Tesrts for the portable primitives in fileio.c.Eric S. Raymond
2026-02-25Tests for primitives in coding.c and charset.c.Eric S. Raymond
2026-02-25Tests for primitives from the character.c module.Eric S. Raymond
2026-02-25Tests for the lreaf.c amd print.c primitives.Eric S. Raymond
2026-02-25Tests for remaining functions iun eval.c.Eric S. Raymond
2026-02-25Completing test coverage for dataa.c orimitives.Eric S. Raymond
2026-02-25More correctness tesrs for orinitives from fns.c.Eric S. Raymond
2026-02-25More tests for edit functions, buffers, and markers.Eric S. Raymond
2026-02-25Added more buffer/marker/editing test coverage.Eric S. Raymond
2026-02-25Category/charset/coding + char-table tests.Eric S. Raymond
2026-02-25More test coverage improvements.Eric S. Raymond
2026-02-25Repair serious breakage in the batch tests.Eric S. Raymond
There were a bunch of tests that were breaking make check and should never be run in batch mode, because they do things like assuming there is a controlling tty or assuming we can access network services when we can't (e/g. in a CI/CD environment). I have shotgunned this problem by tagging all the failing tests with :nobatch and then changing the default and expensive selectors so make check won't barf all over its shoes. As many of these :nobatch should be individually removed as possible, after upgrading the test harness to mock the environmental stuff they need. Investigate these failures with "make check-nobatch".
2026-02-25More test coverage improvements.Eric S. Raymond
Bignum corner-case tests in data-tests.el. More buffer-primitive tests in editfns-test.el Some condition-case tesrs in eval-tests.el. And another marker-primitive test in marker-tests.el.
2026-02-25More test coverage improvements for ERT.Eric S. Raymond
In marker-tests.el, editfbs-tests.el, and data-tests.el.
2026-02-25; Fix emacs-module-tests on MS-WindowsEli Zaretskii
* test/src/emacs-module-resources/mod-test.c [WINDOWSNT]: Undef fprintf to prevent link error.