mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Factor out function to check for clang in tests
This also stops a flymake test from failing on my machine. * lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): New function factored out from ... * test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang): * test/lisp/cedet/semantic/bovine/gcc-tests.el (semantic-gcc-test-output-parser-this-machine): ... here. * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types) (included-c-header-files): * test/lisp/cedet/semantic/bovine/gcc-tests.el (semantic-gcc-test-output-parser-this-machine): Use above new function.
This commit is contained in:
parent
d464454f45
commit
9a56b4e686
3 changed files with 13 additions and 15 deletions
|
|
@ -475,6 +475,14 @@ The same keyword arguments are supported as in
|
|||
:directory t
|
||||
,@body))
|
||||
|
||||
(defun ert-gcc-is-clang-p ()
|
||||
"Return non-nil if the `gcc' command actually runs the Clang compiler."
|
||||
;; Some macOS machines run llvm when you type gcc. (!)
|
||||
;; We can't even check if it's a symlink; it's a binary placed in
|
||||
;; "/usr/bin/gcc". So we need to check the output.
|
||||
(string-match "Apple \\(LLVM\\|[Cc]lang\\)\\|Xcode\\.app"
|
||||
(shell-command-to-string "gcc --version")))
|
||||
|
||||
(provide 'ert-x)
|
||||
|
||||
;;; ert-x.el ends here
|
||||
|
|
|
|||
|
|
@ -122,14 +122,9 @@ gcc version 2.95.2 19991024 (release)"
|
|||
|
||||
(ert-deftest semantic-gcc-test-output-parser-this-machine ()
|
||||
"Test the output parser against the machine currently running Emacs."
|
||||
(skip-unless (executable-find "gcc"))
|
||||
(skip-unless (and (executable-find "gcc")
|
||||
(not (ert-gcc-is-clang-p))))
|
||||
(let ((semantic-gcc-test-strings (list (semantic-gcc-query "gcc" "-v"))))
|
||||
;; Some macOS machines run llvm when you type gcc. (!)
|
||||
;; We can't even check if it's a symlink; it's a binary placed in
|
||||
;; "/usr/bin/gcc". So check the output and just skip this test if
|
||||
;; it looks like that's the case.
|
||||
(unless (string-match "Apple \\(LLVM\\|clang\\)\\|Xcode\\.app"
|
||||
(car semantic-gcc-test-strings))
|
||||
(semantic-gcc-test-output-parser))))
|
||||
(semantic-gcc-test-output-parser)))
|
||||
|
||||
;;; gcc-tests.el ends here
|
||||
|
|
|
|||
|
|
@ -140,15 +140,10 @@ SEVERITY-PREDICATE is used to setup
|
|||
(flymake-goto-next-error)
|
||||
(should (eq 'flymake-error (face-at-point)))))))
|
||||
|
||||
(defun flymake-tests--gcc-is-clang ()
|
||||
"Whether the `gcc' command actually runs the Clang compiler."
|
||||
(string-match "[Cc]lang version "
|
||||
(shell-command-to-string "gcc --version")))
|
||||
|
||||
(ert-deftest different-diagnostic-types ()
|
||||
"Test GCC warning via function predicate."
|
||||
(skip-unless (and (executable-find "gcc")
|
||||
(not (flymake-tests--gcc-is-clang))
|
||||
(not (ert-gcc-is-clang-p))
|
||||
(version<=
|
||||
"5" (string-trim
|
||||
(shell-command-to-string "gcc -dumpversion")))
|
||||
|
|
@ -173,7 +168,7 @@ SEVERITY-PREDICATE is used to setup
|
|||
(ert-deftest included-c-header-files ()
|
||||
"Test inclusion of .h header files."
|
||||
(skip-unless (and (executable-find "gcc")
|
||||
(not (flymake-tests--gcc-is-clang))
|
||||
(not (ert-gcc-is-clang-p))
|
||||
(executable-find "make")))
|
||||
(let ((flymake-wrap-around nil))
|
||||
(flymake-tests--with-flymake
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue