unix-conf/.emacs.d/elpa/irony-20160203.1207/server/test/elisp/irony.el
2016-02-18 14:53:30 +01:00

118 lines
4.4 KiB
EmacsLisp

;; -*-no-byte-compile: t; -*-
(load (concat (file-name-directory (or load-file-name
buffer-file-name))
"test-config"))
(ert-deftest irony/buffer-size-in-bytes ()
(with-temp-buffer
;; this smiley takes 3 bytes apparently
(insert "")
(should (equal 3 (irony--buffer-size-in-bytes)))
(erase-buffer)
(insert "\n")
(should (equal 4 (irony--buffer-size-in-bytes)))
(erase-buffer)
(insert "\t")
(should (equal 1 (irony--buffer-size-in-bytes)))))
(ert-deftest irony/split-command-line/just-spaces ()
(let ((cmd-line "clang -Wall -Wextra"))
(should (equal
'("clang" "-Wall" "-Wextra")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/start-with-space ()
(let ((cmd-line " clang -Wall -Wextra"))
(should (equal
'("clang" "-Wall" "-Wextra")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/end-with-space ()
(let ((cmd-line "clang -Wall -Wextra "))
(should (equal
'("clang" "-Wall" "-Wextra")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/space-everywhere ()
(let ((cmd-line " \t clang \t -Wall \t -Wextra\t"))
(should (equal
'("clang" "-Wall" "-Wextra")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/with-quotes ()
(let ((cmd-line "clang -Wall -Wextra \"-I/tmp/dir with spaces\""))
(should (equal
'("clang" "-Wall" "-Wextra" "-I/tmp/dir with spaces")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/with-quotes ()
"Test if files are removed from the arguments list.
https://github.com/Sarcasm/irony-mode/issues/101"
(let ((cmd-line "g++ -DFOO=\\\"\\\""))
(should (equal
'("g++" "-DFOO=\"\"")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/start-with-quotes ()
(let ((cmd-line "\"cl ang\" -Wall -Wextra \"-I/tmp/dir with spaces\""))
(should (equal
'("cl ang" "-Wall" "-Wextra" "-I/tmp/dir with spaces")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/quotes-in-word ()
(let ((cmd-line "clang -Wall -Wextra -I\"/tmp/dir with spaces\""))
(should (equal
'("clang" "-Wall" "-Wextra" "-I/tmp/dir with spaces")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/ill-end-quote ()
:expected-result :failed
(let ((cmd-line "clang -Wall -Wextra\""))
(should (equal
'("clang" "-Wall" "-Wextra" "-I/tmp/dir with spaces")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/backslash-1 ()
(let ((cmd-line "clang\\ -Wall"))
(should (equal
'("clang -Wall")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/split-command-line/backslash-2 ()
(let ((cmd-line "\\\\\\ clang\\ -Wall\\"))
(should (equal
'("\\ clang -Wall\\")
(irony--split-command-line cmd-line)))))
(ert-deftest irony/extract-working-directory-option/not-specified ()
(let ((compile-flags '("-Wall")))
(should
(not (irony--extract-working-directory-option compile-flags)))))
(ert-deftest irony/extract-working-directory-option/specified-1 ()
(let ((compile-flags '("-working-directory" "/tmp/lol")))
(should (equal "/tmp/lol"
(irony--extract-working-directory-option compile-flags)))))
(ert-deftest irony/extract-working-directory-option/specified-2 ()
(let ((compile-flags '("-Wall" "-working-directory=/tmp/lol" "-Wshadow")))
(should (equal "/tmp/lol"
(irony--extract-working-directory-option compile-flags)))))
;; TODO: restore functionality
;; (ert-deftest irony/include-directories-1 ()
;; (let ((irony-compile-flags '("-Iinclude" "-I/tmp/foo"))
;; (irony-compile-flags-work-dir "/tmp/blah/"))
;; (should (equal
;; '("/tmp/blah/include" "/tmp/foo")
;; (irony-user-search-paths)))))
;; (ert-deftest irony/include-directories-2 ()
;; (let ((irony-compile-flags '("-Wextra" "-Iinclude" "-I" "foo" "-Wall"))
;; (irony-compile-flags-work-dir "/tmp/blah/"))
;; (should (equal
;; '("/tmp/blah/include"
;; "/tmp/blah/foo")
;; (irony-user-search-paths)))))