Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
1398a54d
Commit
1398a54d
authored
Apr 20, 2013
by
Masatake YAMATO
Browse files
* automated/imenu-tests.el: New file.
parent
4d3268ba
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
91 additions
and
0 deletions
+91
-0
test/ChangeLog
test/ChangeLog
+4
-0
test/automated/imenu-test.el
test/automated/imenu-test.el
+87
-0
No files found.
test/ChangeLog
View file @
1398a54d
2013-04-01 Masatake YAMATO <yamato@redhat.com>
* automated/imenu-tests.el: New file.
2013-04-19 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/python-tests.el (python-imenu-prev-index-position-1):
...
...
test/automated/imenu-test.el
0 → 100644
View file @
1398a54d
;;; imenu-tests.el --- Test suite for imenu.
;; Copyright (C) 2013 Free Software Foundation, Inc.
;; Author: Masatake YAMATO <yamato@redhat.com>
;; Keywords: tools convenience
;; 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 <http://www.gnu.org/licenses/>.
;;; Code:
(
require
'imenu
)
;; (imenu-simple-scan-deftest-gather-strings-from-list
;; '(nil t 'a (0 . "x") ("c" . "d") ("a" 0 "b") ))
;; => ("b" "a" "d" "c" "x")
(
defun
imenu-simple-scan-deftest-gather-strings-from-list
(
input
)
"Gather strings from INPUT, a list."
(
let
((
result
()))
(
while
input
(
cond
((
stringp
input
)
(
setq
result
(
cons
input
result
)
input
nil
))
((
atom
input
)
(
setq
input
nil
))
((
listp
(
car
input
))
(
setq
result
(
append
(
imenu-simple-scan-deftest-gather-strings-from-list
(
car
input
))
result
)
input
(
cdr
input
)))
((
stringp
(
car
input
))
(
setq
result
(
cons
(
car
input
)
result
)
input
(
cdr
input
)))
(
t
(
setq
input
(
cdr
input
)))))
result
))
(
defmacro
imenu-simple-scan-deftest
(
name
doc
major-mode
content
expected-items
)
"Generate an ert test for mode-own imenu expression.
Run `imenu-create-index-function' at the buffer which content is
CONTENT with MAJOR-MODE. A generated test runs `imenu-create-index-function'
at the buffer which content is CONTENT with MAJOR-MODE. Then it compares a list
of strings which are picked up from the result with EXPECTED-ITEMS."
(
let
((
xname
(
intern
(
concat
"imenu-simple-scan-deftest-"
(
symbol-name
name
)))))
`
(
ert-deftest
,
xname
()
,
doc
(
with-temp-buffer
(
insert
,
content
)
(
funcall
',major-mode
)
(
let
((
result-items
(
sort
(
imenu-simple-scan-deftest-gather-strings-from-list
(
funcall
imenu-create-index-function
))
#'
string-lessp
))
(
expected-items
(
sort
(
copy-sequence
,
expected-items
)
#'
string-lessp
)))
(
should
(
equal
result-items
expected-items
))
)))))
(
imenu-simple-scan-deftest
sh
"Test imenu expression for sh-mode."
sh-mode
"a()
{
}
function b
{
}
function c()
{
}
function ABC_D()
{
}
"
'
(
"a"
"b"
"c"
"ABC_D"
))
(
provide
'imenu-tests
)
;;; imenu-tests.el ends here
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment