I have this test failure on PCRE regex tests (emacs-master, mingw64) :
$ cat test/src/regex-tests.log
Running 22 tests (2017-08-01 22:21:34+0200)
passed 1/22 regex-tests-BOOST
Test regex-tests-PCRE backtrace:
Test regex-tests-PCRE condition:
(wrong-type-argument stringp nil)
FAILED 2/22 regex-tests-PCRE
The failure occurs here in PCRE.tests :
caterpillar caterpillar23
0: caterpillar caterpillar23
1: caterpillar
2: erpillar
3: <unset>
4:
5: 3
The variable which is nil instead of being a string is `pattern'
in (if (string-match pattern string) nil 'search-failed)`' :
(defun regex-tests-PCRE ()
(let (failures
pattern icase string what-failed matches-observed)
(regex-tests-generic-line
?# "PCRE.tests" regex-tests-PCRE-whitelist
(cond
;; pattern
((save-excursion (re-search-forward "^/\\(.*\\)/\\(.*i?\\)$" nil t))
(setq icase (string= "i" (match-string 2))
pattern (regex-tests-unextend (match-string 1))))
;; string. read it in, match against pattern, and save all the results
((save-excursion (re-search-forward "^ \\(.*\\)" nil t))
(let ((case-fold-search icase))
(setq string (match-string 1)
;; the regex match under test
what-failed
(condition-case nil
(if (string-match pattern string) nil 'search-failed)
('invalid-regexp 'compilation-failed))
matches-observed
(cl-loop for x from 0 to 20
collect (and (not what-failed)
(or (match-string x string) "<unset>")))))
nil)
But I have no idea why pattern is losing its value ?
Any clue ?
Regards,
Fabrice