1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-21 03:52:16 -08:00
Commit graph

1904 commits

Author SHA1 Message Date
Noam Postavsky
05c5e4d818 ; Merge: Update and optimize UCS normalization tests 2017-07-08 14:32:07 -04:00
Noam Postavsky
06ff34cd2a Optimize UCS normalization tests
Brings the the time for `ucs-normalize-part1' from 200s down to 130s.
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--parse-column): Use character instead of string
of length 1 for terminator.  Convert return value into string since
all callers need that form anyway.
(ucs-normalize-tests--normalization-equal-p): Rename from
ucs-normalize-tests--normalize.  Use dedicated buffer instead of
messing with narrowing.  Take string to compare against and insert it
into buffer so that compare-buffer-substrings can be used instead of
allocating a new string from buffer contents.
(ucs-normalize-tests--normalization-chareq-p): New macro, specialized
for comparing single character.
(ucs-normalize-tests--rule1-holds-p)
(ucs-normalize-tests--rule2-holds-p): Turn into defsubst.
(ucs-normalize-tests--rule1-failing-for-partX): Use `eq' instead of
`='.
2017-07-08 14:31:27 -04:00
Noam Postavsky
a163391845 Update failing lines for UCS normalize tests
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--failing-lines-part2): Update for new
admin/unidata/NormalizationTest.txt version.
2017-07-08 14:31:27 -04:00
Noam Postavsky
4e3b9c5444 Semi-automate the procedure for updating UCS normalize test bad lines
* test/lisp/international/ucs-normalize-tests.el: Remove incorrect
commentary describing a manual procedure for producing the updated
failing lines, it did not actually work.  Replace it with pointer to
new function which prints the updated values.
(ucs-normalize-tests--rule1-holds-p): Renamed from
ucs-normalize-tests--invariants-hold-p.
(ucs-normalize-tests--rule2-holds-p): Renamed from
ucs-normalize-tests--invariants-rule2-hold-p.
(ucs-normalize-tests--rule1-failing-for-partX): Renamed from
ucs-normalize-tests--invariants-failing-for-part.
(ucs-normalize-tests--rule1-failing-for-lines): Renamed from
ucs-normalize-tests--invariants-failing-for-lines.
(ucs-normalize-tests--part2-rule1-failed-lines): New variable.
(ucs-normalize-part2): Set it.
(ucs-normalize-part1): Always run through to end of test before
checking for failures.
(ucs-normalize-tests--insert-failing-lines)
(ucs-normalize-check-failing-lines): New functions, used to update
the *--failing-lines-part* variables.
2017-07-08 14:28:17 -04:00
Philipp Stephani
b7dab24b79 Module assertions: check for garbage collections
It's technically possible to write a user pointer finalizer that calls
into Emacs module functions.  This would be disastrous because it
would allow arbitrary Lisp code to run during garbage collection.
Therefore extend the module assertions to check for this case.

* src/emacs-module.c (module_assert_thread): Also check whether a
garbage collection is in progress.

* test/data/emacs-module/mod-test.c (invalid_finalizer)
(Fmod_test_invalid_finalizer): New test module functions.
(emacs_module_init): Register new test function.

* test/src/emacs-module-tests.el (module--test-assertion)
(module--with-temp-directory): New helper macros.
(module--test-assertions--load-non-live-object): Rename existing
unit test, use helper macros.
(module--test-assertions--call-emacs-from-gc): New unit test.
2017-07-08 15:25:01 +02:00
Eli Zaretskii
fd3bcfa36e Update Unicode data and files to Unicode 10.0
* admin/notes/unicode:
* admin/unidata/README:
* admin/unidata/BidiBrackets.txt:
* admin/unidata/BidiMirroring.txt:
* admin/unidata/Blocks.txt:
* admin/unidata/IVD_Sequences.txt:
* admin/unidata/NormalizationTest.txt:
* admin/unidata/SpecialCasing.txt:
* admin/unidata/UnicodeData.txt:
* lisp/international/characters.el:
* lisp/international/fontset.el (script-representative-chars):
* lisp/international/mule-cmds.el (ucs-names): Update per Unicode 10.0.
2017-07-08 13:02:47 +03:00
Alexander Gramiak
42cdb68649 Support '=' in Scheme and Lisp tags in 'etags'
* lib-src/etags.c (get_lispy_tag): New function.
(L_getit, Scheme_functions): Use get_lispy_tag (Bug#5624).
* test/manual/etags/CTAGS.good:
* test/manual/etags/ETAGS.good_1:
* test/manual/etags/ETAGS.good_2:
* test/manual/etags/ETAGS.good_3:
* test/manual/etags/ETAGS.good_4:
* test/manual/etags/ETAGS.good_5:
* test/manual/etags/ETAGS.good_6:
* test/manual/etags/Makefile:
* test/manual/etags/el-src/TAGTEST.EL: Update tests.
* test/manual/etags/scm-src/test.scm: New tests for Scheme.
2017-07-08 11:25:53 +03:00
Stephen Berman
c24748ada0 Add new todo-mode.el tests
* test/lisp/calendar/todo-mode-tests.el (with-todo-test):
Declare an Edebug spec.  Restore pre-test-run state of test files.
(todo-test--show, todo-test--move-item)
(todo-test--insert-item): New functions.
(todo-test-get-archive): Remove, as subsumed by
todo-test--show.  Adjust all callers.
(todo-test--is-current-buffer): Rename from
todo-test-is-current-buffer and adjust uses.
(todo-test-item-highlighting): Use todo-test--show.
(todo-test-revert-buffer01, todo-test-revert-buffer02)
(todo-test-raise-lower-priority)
(todo-test-todo-mark-unmark-category, todo-test-move-item01)
(todo-test-move-item02, todo-test-move-item03)
(todo-test-move-item04, todo-test-move-item05)
(todo-test-toggle-item-header01)
(todo-test-toggle-item-header02)
(todo-test-toggle-item-header03)
(todo-test-toggle-item-header04)
(todo-test-toggle-item-header05)
(todo-test-toggle-item-header06)
(todo-test-toggle-item-header07): New tests.

* test/lisp/calendar/todo-mode-resources/todo-test-1.toda:
* test/lisp/calendar/todo-mode-resources/todo-test-1.todo:
Modify to accommodate new tests.
2017-07-07 22:03:21 +02:00
Noam Postavsky
1eefada3f2 Don't skip epg tests (Bug#23561)
* test/lisp/epg-tests.el (with-epg-tests): Ignore REQUIRE-PASSPHRASE
parameter, since we supply the passphrase via pinentry-program for all
GPG versions (as of 2017-02-28 "Fix epg-tests with dummy-pinentry
program (Bug#23619)").
(epg-tests-program-alist-for-passphrase-callback): Remove.
2017-07-06 19:54:07 -04:00
Noam Postavsky
386918f0b8 Fix lisp-comment-indent for single-semicolon case
* lisp/emacs-lisp/lisp-mode.el (lisp-comment-indent): Only check for
open paren if we're looking at multiple comment characters.
* test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-comment-indent-1)
(lisp-comment-indent-2): New tests.
2017-07-06 08:59:32 -04:00
Paul Eggert
20e9a00fb5 Spelling fixes
* lisp/org/org-table.el (org-table-sort-lines):
Fix misspelling in prompt.
* lisp/org/ox-ascii.el (org-ascii--describe-datum):
Fix misspelling in call to org-element-lineage.
2017-07-06 00:24:56 -07:00
Michael Albinus
17efc48000 Suppress timers in Tramp
* lisp/net/tramp.el (tramp-file-name-handler): Don't trigger timers.

* test/lisp/net/tramp-tests.el
(tramp-test36-asynchronous-requests): Trigger timers.
(tramp-test37-recursive-load, tramp-test38-remote-load-path):
Set `default-directory' to a trustworthy value.
2017-07-05 17:03:42 +02:00
Philipp Stephani
903c874d10 ; Remove unused text properties in test
* test/lisp/electric-tests.el (electric-quote-markdown-in-code):
Remove now-unused text properties.
2017-07-03 23:26:08 +02:00
Philipp Stephani
4cd0db3d6e Use hook instead of face list to inhibit electric quoting
This is more flexible and doesn't couple electric quoting to font
locking.
Give that 'electric-quote-code-faces' was just introduced, remove it
without formal deprecation.

* lisp/electric.el (electric-quote-inhibit-functions): New abnormal
hook variable.
(electric-quote-post-self-insert-function): Run the hook.  Remove
use of old 'electric-quote-code-faces' variable.

* test/lisp/electric-tests.el (electric-quote-markdown-in-text)
(electric-quote-markdown-in-code): Adapt unit tests.
2017-07-03 20:59:31 +02:00
Ingo Lohmar
9ac7dccc51 Offer non-aligned indentation in lists in js-mode (Bug#27503)
* lisp/progmodes/js.el (js--proper-indentation):
New customization option 'js-indent-align-list-continuation'.
Affects argument lists as well as arrays and object properties.
* test/manual/indent/js-indent-align-list-continuation-nil.js:
Test the change.
2017-07-03 20:06:27 +02:00
Michael Albinus
caf9244980 (Re-)activate remote tests of filenotify-tests.el
* test/lisp/filenotify-tests.el
(file-notify-test-remote-temporary-file-directory):
Declare default host for mock method.  Offer home directory
for mock method if it doesn't exist.
(file-notify-test09-watched-file-in-watched-dir-remote):
Remove, it doesn't work reliably.
2017-07-03 16:12:10 +02:00
Damien Cassou
a7754a250b Add absolute optional parameter to line-number-at-pos (Bug#26417)
* lisp/simple.el (line-number-at-pos): Add a second optional
  argument 'absolute'.
* test/list/simple-tests.el: Add tests for 'line-number-at-pos'.
2017-07-03 14:43:02 +02:00
Michael Albinus
62504a9f5d Fix tramp-tests.el for hydra
* test/Makefile.in: Remove instrumentation for tramp-tests.

* test/lisp/net/tramp-tests.el (tramp-test36-asynchronous-requests):
Remove instrumentation.  Wrap with a timeout.  Give hydra
another timer value.  Set `default-directory' in timer.
2017-07-03 13:21:39 +02:00
Michael Albinus
71169d5185 ; Instrument tramp-tests.el 2017-07-03 09:21:32 +02:00
Tino Calancha
bc3dcd524d dired-do-shell-command: Fix check for wildcards
* lisp/dired-aux.el (dired-do-shell-command): Replace just '?', '*'
and '`?' i.e., keep the whitespaces.
* test/lisp/dired-aux-tests.el (dired-test-bug27496): Add test.
2017-07-03 12:55:06 +09:00
Philipp Stephani
34d4720f83 Electric quotes: Improve support for Markdown mode (Bug#24709)
Introduce a new user option 'electric-quote-context-sensitive'.  If
non-nil, have ' insert an opening quote if sensible.

Also introduce a new variable 'electric-quote-code-faces'.  Major
modes such as 'markdown-mode' can add faces to this list to treat text
as inline code and disable electric quoting.

* lisp/electric.el (electric-quote-context-sensitive): New user
option.
(electric-quote-code-faces): New variable.
(electric-quote-post-self-insert-function): Treat ' as ` if
desired and applicable; disable electric quoting for given faces.

* test/lisp/electric-tests.el (electric-quote-opening-single)
(electric-quote-closing-single, electric-quote-opening-double)
(electric-quote-closing-double)
(electric-quote-context-sensitive-backtick)
(electric-quote-context-sensitive-bob-single)
(electric-quote-context-sensitive-bob-double)
(electric-quote-context-sensitive-bol-single)
(electric-quote-context-sensitive-bol-double)
(electric-quote-context-sensitive-after-space-single)
(electric-quote-context-sensitive-after-space-double)
(electric-quote-context-sensitive-after-letter-single)
(electric-quote-context-sensitive-after-letter-double)
(electric-quote-context-sensitive-after-paren-single)
(electric-quote-context-sensitive-after-paren-double)
(electric-quote-markdown-in-text)
(electric-quote-markdown-in-code): New unit tests.
2017-07-02 17:48:23 +02:00
Michael Albinus
4383ff87a1 ; Instrument tramp-tests.el 2017-07-02 12:16:33 +02:00
Michael Albinus
3269a585c4 ; Instrument tramp-tests.el 2017-07-02 10:06:09 +02:00
Michael Albinus
98cbba868c ; Fix last commit 2017-07-01 10:32:27 +02:00
Michael Albinus
a75380f21d ; Instrument test/Makefile.in for tramp-tests output on hydra 2017-07-01 10:30:34 +02:00
Michael Albinus
ceedd86ed4 Release Tramp 2.3.2
* doc/misc/tramp.texi (Android shell setup): Show default file name.
Structure section.

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.3.2".

* test/lisp/net/tramp-tests.el (tramp-test-temporary-file-directory):
Offer home directory for mock method if it doesn't exist.
2017-06-30 18:38:32 +02:00
Noam Postavsky
b567c48869 Don't redundantly cl-print arglist in function docstring again
* lisp/emacs-lisp/cl-print.el (cl-print-object): Don't print arglist
part of docstring.
* test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Update
test accordingly.
2017-06-29 19:40:23 -04:00
Noam Postavsky
ead545824e Improve ert backtrace recording
Change ert to use the new `backtrace-frames' function instead of
collecting frames one by one with `backtrace-frame'.  Additionally,
collect frames starting from `signal' instead the somewhat arbitrary
"6 from the bottom".  Skipping 6 frames would skip the expression that
actually caused the signal that triggered the debugger.  Possibly 6
was chosen because in the case of a failed test, the triggering frame
is an `ert-fail' call, which is not so interesting.  But in case of a
test throwing an error, this drops the `error' call which is too much.

* lisp/emacs-lisp/debug.el (debugger-make-xrefs): Remove.
* lisp/emacs-lisp/ert.el (ert--make-xrefs-region): Bring in relevant
code from `debugger-make-xrefs'.
(ert--print-backtrace): Add DO-XREFS parameter, delegate to
`debugger-insert-backtrace'.
(ert--run-test-debugger): Record the backtrace frames starting from
the instigating `signal' call.
(ert-run-tests-batch): Pass nil for `ert--print-backtrace's new
DO-XREFS parameter.
(ert-results-pop-to-backtrace-for-test-at-point): Pass t as DO-XREFS
to `ert--print-backtrace' and remove call to `debugger-make-xrefs'.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Check
the backtrace list instead of comparing its string representation.
Expect `signal' to be the first frame.
2017-06-29 19:37:25 -04:00
Michael Albinus
138447c3ab Improve timer handling when Tramp accepts output
* lisp/net/tramp-compat.el: Avoid compiler warning.

* lisp/net/tramp-sh.el (tramp-sh-file-name-handler):
Remove lock machinery.

* lisp/net/tramp.el (tramp-locked, tramp-locker): Move up.
(tramp-file-name-handler): Add lock machinery from
`tramp-sh-file-name-handler'.  Allow timers to run.
(tramp-accept-process-output): Remove nasty workaround.
Suppress timers.

* test/lisp/net/tramp-tests.el (shell-command-sentinel):
Suppress run in tests.
(tramp--instrument-test-case-p): New defvar.
(tramp--instrument-test-case): Use it in order to allow nested calls.
(tramp--test-message, tramp--test-backtrace): New defsubst,
will be used for occasional test instrumentation.
(tramp-test00-availability, tramp-test31-vc-registered): Use them.
(tramp-test28-shell-command)
(tramp--test-shell-command-to-string-asynchronously): Suppress
nasty messages.  Don't overwrite sentinel.
(tramp-test36-asynchronous-requests): Rewrite major parts.
Expect :passed.
2017-06-29 18:22:38 +02:00
Nicolas Petton
b2fcba4484 Revert "Add current-line in simple.el"
This reverts commit ae98cdf943.
2017-06-19 14:43:39 +02:00
Damien Cassou
ae98cdf943 Add current-line in simple.el
* lisp/simple.el (current-line): New function.
* test/list/simple-tests.el: Add tests for current-line.
2017-06-19 11:17:56 +02:00
Noam Postavsky
4caa8d4de4 * test/Makefile.in: Don't suppress test failure for single tests. 2017-06-17 17:45:17 -04:00
Philipp Stephani
c3813b2aa8 Allow local variables section to begin with a square bracket
Fixes Bug#27391.

* lisp/international/mule.el (find-auto-coding): Fix regular
expression for "Local Variables" section.

* test/lisp/international/mule-tests.el (find-auto-coding--bug27391):
Add unit test.
2017-06-17 16:10:51 +02:00
Philipp Stephani
d682f0daa3 Add command to replace buffer contents
Add a new command 'replace-buffer-contents' that uses the Myers diff
algorithm to non-destructively replace the accessible portion of the
current buffer.  The Myers algorithm is implemented in Gnulib.

* src/editfns.c (Freplace_buffer_contents): New command.
(set_bit, bit_is_set, buffer_chars_equal): New helper functions.
(syms_of_editfns): Define new command.

* test/src/editfns-tests.el (replace-buffer-contents-1)
(replace-buffer-contents-2): New unit tests.

* src/buffer.h (BUF_FETCH_CHAR_AS_MULTIBYTE): New helper macro.

* admin/merge-gnulib (GNULIB_MODULES): Add diffseq.h and minmax.h.
2017-06-17 15:40:58 +02:00
Simen Heggestøyl
8960f6aa36 Complete CSS property values less eagerly (Bug#27392)
* lisp/textmodes/css-mode.el (css--complete-property-value): Be less
eager by looking for a colon after the property which values are being
completed for.

* test/lisp/textmodes/css-mode-tests.el (css-test-complete-property):
Add a test case ensuring that properties that are prefixes of other
properties don't hinder further completion.
2017-06-17 10:38:29 +02:00
Dmitry Gutov
32b0f15365 Add test for the fix in the parent commit
* test/src/undo-tests.el (undo-test-skip-invalidated-markers):
New test, for the fix in the parent commit.
2017-06-17 03:55:49 +03:00
Philipp Stephani
3b6e01cccf Correctly detect URLs surrounded by parentheses in comments
* lisp/thingatpt.el (thing-at-point--bounds-of-well-formed-url):
Make parentheses match work inside comments.

* test/lisp/thingatpt-tests.el (thing-at-point-url-in-comment): Add
unit test.
2017-06-16 18:06:28 +02:00
Michael Albinus
ea196ebb93 Fix load-path issue when it contains remote directories
* lisp/net/tramp.el (tramp-file-name-handler): Use `autoloadp'.
(tramp-use-absolute-autoload-file-names): New defun.  Call it
after loading tramp.el.

* test/lisp/net/tramp-tests.el (tramp-test38-remote-load-path):
New test.
(tramp-test39-unload): Rename.
2017-06-16 14:46:25 +02:00
Michael Albinus
164fcc6f26 Fix Bug#27315
* lisp/net/tramp-cache.el (tramp-cache-read-persistent-data):
New defvar.
(top): Use it.

* lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
Check for connected, not for connectable.  (Bug#27315)
(tramp-process-actions):
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
Use `tramp-cache-read-persistent-data'.

* test/lisp/net/tramp-tests.el (top): Set also
`tramp-cache-read-persistent-data'.
2017-06-14 14:17:22 +02:00
Philipp Stephani
ac649dc4b4 Use --module-assertions if modules are available
Using --module-assertions helps us find bugs in the test module.  But
we can use it only if Emacs was compiled with module support.

* test/Makefile.in (MODULES_EMACSOPT): New variable.
(emacs): Use it.
2017-06-14 12:24:11 +02:00
Glenn Morris
510a674280 Fix running tests in without-modules builds
* test/Makefile.in (EMACSOPT): Remove option that is only defined
with-modules.  emacs-module-tests.el passes it where needed.
2017-06-13 18:53:38 -04:00
Glenn Morris
863b333543 * test/Makefile.in (src/emacs-module-tests.log): Out-of-tree fix. 2017-06-13 15:41:56 -04:00
Philipp Stephani
58b9b098a4 Inline test module Makefile into main test Makefile
The test/data/emacs-module/Makefile only built a single target, and
inlining it into test/Makefile simplifies dependency tracking and
reduces code duplication.

* configure.ac: Don't build test/data/emacs-module/Makefile.

* Makefile.in ($(test_module)): Inline compilation.
(clean): Also clean test module outputs.
2017-06-13 20:48:15 +02:00
Noam Postavsky
cc8aa484cd Fix wrong indentation after string literal (Bug#27306)
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-state)
(lisp-indent-calc-next): Remove `depth' field, use (car ppss) instead.
* test/lisp/emacs-lisp/lisp-mode-tests.el
(lisp-indent-region-after-string-literal): New test.
2017-06-13 07:19:12 -04:00
Philipp Stephani
52c846d45d Print module structure sizes when initializing test module
* test/data/emacs-module/mod-test.c (emacs_module_init): Print
compile-time and runtime sizes of module structures to ease debugging
2017-06-12 23:46:02 +02:00
Glenn Morris
73b50a1073 Give a more informative failure in module assertion test
* test/src/emacs-module-tests.el (module--test-assertions):
Rephrase final check to give a more informative failure.
2017-06-12 17:37:55 -04:00
Philipp Stephani
1da7bc7e46 Fix off-by-one error
* test/data/emacs-module/mod-test.c (emacs_module_init): Fix
off-by-one error.
2017-06-12 23:36:10 +02:00
Glenn Morris
ab2116c9a9 Clean up after module assertion tests
* test/src/emacs-module-tests.el (module--test-assertions):
Use a temporary directory to contain any core dumps.
2017-06-12 17:31:25 -04:00
Glenn Morris
1612d3dd78 Small improvement for module assertion test
* test/src/emacs-module-tests.el (module--test-assertions):
Don't rely on the precise form of an "Abort" message.
2017-06-12 17:17:20 -04:00
Glenn Morris
6096f81151 Improve previous test/data/emacs-module/Makefile change
* test/data/emacs-module/Makefile.in (clean):
Avoid doing unpleasant things if run in a build without modules.
2017-06-12 16:52:49 -04:00