1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-05 22:20:24 -08:00
emacs/test
Po Lu 7c8d4e96ba Merge from savannah/emacs-30
64851d101a Improve Android "adaptive icon"
9b294059d7 Fix documentation for Emacs 30
f50167ab95 ; Update NEWS and corresponding manuals
4e22ef870c Add D-Bus test
f784d946d4 ; Repair corruption in etc/DEBUG
c750fbb539 ; * etc/DEBUG: Advice for debugging Emacs on OpenBSD (bug...
38179f85f8 Merge remote-tracking branch 'savannah/scratch/windows-98...
72cf9964f3 Inaccuracy in efaq.texi
fc48e9e8ed ; Fix typos in DOS Makefile scripts
9b8d754579 ; * etc/NEWS: Explain Nextstep.
8819e5a45d Fix treesit crash (bug#71681)
eaf2dc96c1 ; Fix SHR test on MS-Windows
57880f597c Delete redundant mention of `with-eval-after-load'
ea8ce98434 * doc/misc/efaq.texi (New in Emacs 30): Fix typos.
45a20d781a ; Fix typos in symbols
d95f039af4 Document security fixes in FAQ
d063af203c Add "New in Emacs 30" to FAQ
ca6b484162 ; * etc/NEWS: Move "Minibuffer and Completions"
35c46663e4 ; * etc/NEWS: Move item to "Lisp Changes".
0515b38d28 ; * etc/NEWS: Move keyboard macro items closer together.
22af3a7103 ; * etc/NEWS: More copy-edits.
000ef8876a ; * etc/NEWS: Move items to "Incompatible Lisp Changes".
4088dc8e4c ; * etc/NEWS: Rearrange "Incompatible Lisp Changes".
179800f36b ; * lisp/epg.el (epg--start): Add commentary about encoding.
73898f0214 Fix non-ASCII filename operatiion on EasyPG (bug#71500)
a65b6aac6b Silence warning with global minor mode :predicate
f5f7343ac4 ; * etc/NEWS: Move an item to "Startup Changes"
c95066bf18 ; * etc/NEWS: Move some Lisp items to better place.
bf7db88ce1 ; * etc/NEWS: Rearrange "Editing Changes in Emacs 30.1"
000424eb9e ; * etc/NEWS: Make touch screen support more prominent.
5b5671587f ; * etc/NEWS: Rearrange "Changes in Emacs 30.1".
31124abdef ; * lisp/thingatpt.el (sexp-at-point): Doc fix (bug#71777).
44f269d6e6 Fix: make 'xwidget-webkit-scroll-backward' scroll backwards
358085997c Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
736b7cad40 Add jsdoc support to php-ts-mode in <script> element
5f3d964e39 Update to Transient v0.7.2-4-gf75bc48d
2d8881d526 Fix typo incurring leaks of face structures
219501dd62 ; Fix use of @footnote in cc-mode.texi
c7be2dcac4 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ...
f0a4879975 Sync with Tramp 2.7.1
53dcf2b949 ; * etc/NEWS: Move the mwheel entry to a better place.
a5726782d0 ; Sort tree-sitter modes in NEWS
daa89dc939 ; * etc/NEWS: Rearrange "New Modes and Packages in Emacs ...
4ddbf4f70e ; * etc/NEWS: Move many items.
437b1ced26 ; * etc/NEWS: Copy-edits.
7372b2eb30 Expand docstring of which-key-mode
df0eb5be1e Improve documentation of 'remove-overlays' in ELisp manual
73c1252bb6 Fix link to major mode variable in docstring
c4ad54812a Make `shell-mode' more robust
c4ec905c9a Correct ommissions in rmc.el
bf862fc277 * lisp/hi-lock.el: More fixes related to revert-buffer.
6cc8ffae9a Update to Org 9.7.5-9-ga091ca
c477443ab8 ; Fix typo in lua-ts-mode.el
6e5e4d6193 ; Add 'eglot-ensure' option to 'lua-ts-mode-hook'
58a2f36a8b ; * etc/NEWS: Copy edit.
df53ef176a Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
039e6ffd86 Write Antinews for Emacs 30 ELisp Reference
bf8c9f702b (eval-last-sexp): Fix bug#71774
6d94090cad * lisp/hi-lock.el: More fixes for revert-buffer (bug#57534)
280c91782a * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Im...
339310d020 * lisp/tab-bar.el (tab-bar-select-restore-windows): Impro...
c1e7569a92 Write Antinews for Emacs 30 user manual
233f683da8 ; * lisp/erc/erc-backend.el (erc-server-reconnect-timeout...
20a672b3b2 Change ERC version for Emacs 30 to 5.6.0.30.1
cbede3d43d * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): ...
6f9f9a2155 Fix two tests for --without-all build
98daa10f06 ; * etc/PROBLEMS (PGTK): Remove redundant 2nd PGTK section.
ced33bc239 Fix handling of non-nil 'dired-movement-style'
b1e9b6fd67 ; * lisp/gnus/message.el (message-idna-to-ascii-rhs): Doc...
5eb9a0d2c7 ; * etc/NEWS: Fix last change (bug#71720).
6ec77f580d Do not prematurely truncate python eldoc string
f475a1a254 ; Fix simple-tests as fallout of last change
aa10d0c5ac Add tests for `kill-whole-line' (bug#65734)
058bb4ca25 kill-whole-line: Honor visibility; fix kill-ring when rea...
e45173d114 * lisp/hi-lock.el (hi-lock-file-patterns-policy): Add val...
d6afb017de * lisp/progmodes/xref.el (xref-revert-buffer-restore-poin...
8d55b38e2a Fix Cygwin build
82125b1a66 Use 'revert-function' in *xref* buffer
860840621a Prevent crashes and related issues if initial activity is...
d5c6eb1f96 Doc fix in 'php-ts-mode'
fb15affde8 Avoid compiler warnings in the Cygwin-w32 build
8d354925dd Add new face 'widget-unselected' to wid-edit.el
1809f6a93e Always perform Eshell process cleanup runs in the Eshell ...
8b1841021c Avert crash in store_mode_line_string on Android 5.0 and ...
e7c85f9235 Use HarfBuzz in Cygwin-w32 build
8e3e206bd3 ; * src/buffer.c (syms_of_buffer) <mode-line-format>: ASC...
fe0d9dfb3b ; * lisp/treesit.el (treesit--syntax-propertize-start): F...
2f18929319 Fix tabbing between widgets (bug#70594)
6ad6507532 ; * lisp/which-key.el (which-key-dont-use-unicode): Add :...
60b38c317b * lisp/touch-screen.el (touch-screen-inhibit-drag): Anoth...
a4ca30ac2e Fix rescaling of images via 'text-scale-mode' in EWW
0e43606b20 * lisp/touch-screen.el (touch-screen-inhibit-drag): Fix t...
1b4c562721 Fix latent side-effects of respecting field boundaries in...
e4046f33ab ; * lisp/simple.el (undo-auto--boundaries): Doc fix (bug#...
008eeb21fd ; * lisp/language/cyrillic.el: Delete obsolete commentary...
680155d3f0 Add missing builtin package declarations
ce4f56caf7 Extend treesitter tests on emba
7e8a97ac78 Show entries from key-translation-map in which-key mode
4a0958642d * lisp/tab-bar.el (tab-bar-tab-group-face-function): Impr...
a769f171e7 ; Fix flymake tests with GCC 14.
96e27c2ecf Don't show char name for multi-char translations
0715abfa86 Reset ls-lisp-use-string-collate when ls-lisp-emulation c...
4fcc38966b Update to Transient v0.7.2-1-gf273c0c8
b7d5ca3a8f * doc/misc/calc.texi (Musical Notes): Fix typo.
164f75822b ; Fix typos
768e92b9c0 Update options that depend on 'which-key-dont-use-unicode'
4b2682b17c ; Remove debugging message in Completion Preview test
73a58329a6 Fix omission of updates to child frames on Android
0edacf2aa7 Add jsdoc support to js-ts-mode
cace0cbee9 ; Restore inadvertently removed line.
2b04effb13 ; * test/lisp/net/shr-tests.el (shr-test--rendering-check...
6619aec6bc ; Don't run new 'shr-test/zoom-image' when built without ...
5d19bfda32 ; * admin/release-branch.txt: Update and fix typo.
fb11294d41 ; Fix typos
d9bd1718f9 Backport: Minor changes in tramp-tests.el
1728de5a77 Backport: Tramp: Fix bug#71709, and other minor changes
dd0fc6aff6 New branch emacs-30
bc72c33ac3 * admin/admin.el: (set-version): Fix regexp for configure...
60475a73d1 Disable Ffile_system_info for Android special directories
18e7a9f3d0 Restore functionality on Windows 98
5f8a9cd4b6 Fix a bug in 'switch-to-buffer'
5f9b5803be Fix zooming images in SHR
6f2036243f ; Doc fix in 'php-ts-mode'.
2f1c882a16 Colorize CSS property value like `css--fontify-region'
dd0994aa36 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
486ea8ef5a * configure.ac: Disable kqueue on Haiku.
737fa7c529 Fix 'Customize' menu entry for 'php-ts-mode'
cb7be6035e Fix compilation on prerelease versions of Haiku
2b848a4e50 Fix FIXME in comment
77e3a56507 Update SKK-JISYO.L from upstream
e5bae78861 Update publicsuffix.txt from upstream
bf5f74288b Add assignment form as `etc/copyright-assign.txt`
fcd3798804 ; Merge from origin/emacs-29
0f01cb0ebd Bump Emacs version to 29.4.50
014aab9847 Fix for grammar change of keyword "virtual" in tree-sitte...
fa364a0d46 Revert "; * etc/HISTORY: Delete never-released Emacs 28.3."
a81417e576 Update Tramp version (don't merge to master)
ff389163ee Manually merge NEWS.29 from emacs-29
ea05713122 ; * etc/HISTORY: Delete never-released Emacs 28.3.
d3469978b8 Merge from origin/emacs-29
3739342a4e ; Merge from origin/emacs-29
38e738a35e Merge from origin/emacs-29
4c4c94fa10 ; Merge from origin/emacs-29
1313b8966a Merge from origin/emacs-29
4a76af51bb Replace literal whitespace with `\s`
e41dd2241f ; Merge from origin/emacs-29
8520ec829d ; * lisp/editorconfig.el (editorconfig-indentation-alist)...
99161fb714 Fix non-existing `editorconfig-set-indentation-python-mode`
fd15d89ec5 Merge remote-tracking branch 'origin/emacs-29' into emacs-29
6a299b3cac Release Emacs 29.4
3f3c08bcc7 Add before-save-hook to man page files
7b0e6cb3ff Use UTC when generating man page timestamps
a7cb642a9f Merge from origin/emacs-29
6491d11b53 ; Merge from origin/emacs-29
2f39a4b28a Merge from origin/emacs-29
150e2b979c ; * src/xfns.c (unwind_create_frame): Add missing definit...
75fdeef7b4 Allow to expand truncated long lines in *Compilation* buf...
fb1b188e1a Eglot: Fix command execution (bug#71642)
155cc89de0 Support for indentation of PHP alternative syntax control...
7f7b28a250 ; Wayland SECONDARY selection problem
11fb3510f4 Prevent auto-revert when deleting entry (bug#71264)
a4fe4ca93c Fix font lock regex for user defined constant in PHP
e1ba4ebb49 Make Compilation mode recognize non-legacy Kotlin/Gradle ...
4f03083499 ; Improve documentation of EditorConfig support
c0bfe42948 List Andrea Corallo as co-maintainer in ack.texi
b3d6880512 * admin/MAINTAINERS: Add myself in (co-)maintainers.
7cc939bf27 ; * lisp/ldefs-boot.el: Regenerated for Emacs 29.4
959eacc2a7 Bump Emacs version to 29.4
9a02fce714 Update files for Emacs 29.4
d96c54d388 * admin/authors.el: Update for Emacs 29.4
fd207432e5 * etc/NEWS: Update for Emacs 29.4
c645e1d820 org-link-expand-abbrev: Do not evaluate arbitrary unsafe ...
50a237c468 Update Tramp version (don't merge to master)
f3e80dd0f7 * admin/emacs-shell-lib: Backport to Bash 4.4 or older.
ce85d3811d Fix bug#49289 also for other auth-source backends

# Conflicts:
#	etc/NEWS
2024-06-30 23:12:09 +08:00
..
data New tests for nested archives (bug#70987) 2024-05-20 09:22:41 +03:00
infra Extend treesitter tests on emba 2024-06-24 20:02:07 +02:00
lib-src ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
lisp Merge from savannah/emacs-30 2024-06-30 23:12:09 +08:00
manual sh-script.el: Add support for case FOO {...} (bug#55764) 2024-01-11 22:12:34 -05:00
misc Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
src ; Fix typos in symbols 2024-06-29 17:29:38 +02:00
ChangeLog.1 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
file-organization.org
Makefile.in Make tree-sitter tests work installed in .emacs.d/tree-sitter 2024-02-26 18:47:02 +01:00
README * test/README (EMACS_EXTRAOPT): Add environment variable. 2024-04-30 09:25:07 +02:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2008-2024 Free Software Foundation, Inc.
See the end of the file for license conditions.

This directory contains files intended to test various aspects of
Emacs's functionality.  Please help add tests!

See the file file-organization.org for the details of the directory
structure and file-naming conventions.

For tests in the manual/ subdirectory, look there for separate README
files, or look for instructions in the test files themselves.

Emacs uses ERT, Emacs Lisp Regression Testing, for testing.  See (info
"(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/
for more information on writing and running tests.

Tests could be tagged by the developer.  In this test directory, the
following tags are recognized:

* :expensive-test
  The test needs a serious amount of time to run.  It is not intended
  to run on a regular basis by users.  Instead, it runs on demand
  only, or during regression tests.

* :nativecomp
  The test runs only if Emacs is configured with Lisp native compiler
  support.

* :unstable
  The test is under development.  It shall run on demand only.

The Makefile sets the environment variable $EMACS_TEST_DIRECTORY,
which points to this directory.  This environment variable does not
exist when the tests are run outside make.  The Makefile supports the
following targets:

* make check
  Run all tests as defined in the directory.  Expensive and unstable
  tests are suppressed.  The result of the tests for <filename>.el is
  stored in <filename>.log.

* make check-maybe
  Like "make check", but run only the tests for files which have
  unresolved prerequisites.

* make check-expensive
  Like "make check", but run also the tests marked as expensive.

* make check-all
  Like "make check", but run all tests.

* make check-<dirname>
  Like "make check", but run only the tests in test/<dirname>/*.el.
  <dirname> is a relative directory path, which has replaced "/" by "-",
  like in "check-src" or "check-lisp-net".

* make <filename>  -or-  make <filename>.log
  Run all tests declared in <filename>.el.  This includes expensive
  tests.  In the former case the output is shown on the terminal, in
  the latter case the output is written to <filename>.log.

<filename> could be either a relative file name like
"lisp/files-tests", or a package name like "files-tests".

ERT offers selectors, which make it possible to filter out which test
cases shall run.  The make variable $(SELECTOR) gives you a simple
mean to use your own selectors.  The ERT manual describes how
selectors are constructed, see (info "(ert)Test Selectors") or
https://www.gnu.org/software/emacs/manual/html_node/ert/Test-Selectors.html

You could use predefined selectors of the Makefile.  "make <filename>
SELECTOR='$(SELECTOR_DEFAULT)'" runs all tests for <filename>.el
except the tests tagged as expensive or unstable.  Other predefined
selectors are $(SELECTOR_EXPENSIVE) (run all tests except unstable
ones) and $(SELECTOR_ALL) (run all tests).

If your test file contains the tests "test-foo", "test2-foo" and
"test-foo-remote", and you want to run only the former two tests, you
could use a selector regexp (note that the "$" needs to be doubled to
protect against "make" variable expansion):

    make <filename> SELECTOR='"foo$$"'

In case you want to use the symbol name of a test as selector, you can
use it directly:

    make <filename> SELECTOR='test-foo-remote'

Note that although the test files are always compiled (unless they set
no-byte-compile), the source files will be run when expensive or
unstable tests are involved, to give nicer backtraces.  To run the
compiled version of a test use

    make TEST_LOAD_EL=no ...

Some tests might take long time to run.  In order to summarize the
<nn> tests with the longest duration, call

    make SUMMARIZE_TESTS=<nn> ...

The backtrace of failing tests are truncated to the default value of
'ert-batch-backtrace-right-margin'.  To see more of the backtrace, use

    make TEST_BACKTRACE_LINE_LENGTH=<nn> ...

The tests are run in batch mode by default; sometimes it's useful to
get precisely the same environment but run in interactive mode for
debugging.  To do that, use

    make TEST_INTERACTIVE=yes ...

Sometimes, some further settings are needed in order to run the batch
test.  This can be indicated by the $EMACS_EXTRAOPT environment
variable, like

    make ... EMACS_EXTRAOPT="--eval '(setopt ert-batch-print-length nil ert-batch-print-level nil)'"

By default, ERT test failure summaries are quite brief in batch
mode--only the names of the failed tests are listed.  If the
$EMACS_TEST_VERBOSE environment variable is set and non-empty, the
failure summaries will also include the data from the failing test.

If the $EMACS_TEST_JUNIT_REPORT environment variable is set to a file
name, a JUnit test report is generated under this name.

Some of the tests require a remote temporary directory
(autorevert-tests.el, dnd-tests.el, eglot-tests.el, filenotify-tests.el,
shadowfile-tests.el and tramp-tests.el).  Per default, a mock-up
connection method is used (this might not be possible when running on
MS Windows).  If you want to test a real remote connection, set
$REMOTE_TEMPORARY_FILE_DIRECTORY to a suitable value in order to
overwrite the default value:

    env REMOTE_TEMPORARY_FILE_DIRECTORY=/ssh:host:/tmp make ...


There are also continuous integration tests on
<https://hydra.nixos.org/jobset/gnu/emacs-trunk> (see
admin/notes/hydra) and <https://emba.gnu.org/emacs/emacs> (see
admin/notes/emba).  Both environments provide an environment variable,
which could be used to determine, whether the tests run in one of
these test environments.

$EMACS_HYDRA_CI indicates the hydra environment, and $EMACS_EMBA_CI
indicates the emba environment, respectively.

If tests on these premises take too long, and it is needed to create a
core dump for further analysis, the environment variable
$EMACS_TEST_TIMEOUT could set a limit (in seconds) when this shall
happen.


(Also, see etc/compilation.txt for compilation mode font lock tests
and etc/grep.txt for grep mode font lock tests.)


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.