From: Philipp Stephani Date: Thu, 20 Oct 2016 18:22:40 +0000 (+0200) Subject: Minor fixes to cc-mode-tests.el X-Git-Tag: emacs-26.0.90~1460 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=56f8384bb3f20d55693a3a1db8aa2cf490e6d18e;p=emacs.git Minor fixes to cc-mode-tests.el See Bug#24747. * progmodes/cc-mode-tests.el: Rename from cc-mode.el; fix typo in file-local variable; add comments to make checkdoc happy. --- diff --git a/test/lisp/progmodes/cc-mode-tests.el b/test/lisp/progmodes/cc-mode-tests.el new file mode 100644 index 00000000000..62e0a738fbd --- /dev/null +++ b/test/lisp/progmodes/cc-mode-tests.el @@ -0,0 +1,72 @@ +;;; cc-mode-tests.el --- Test suite for cc-mode. -*- lexical-binding: t; -*- + +;; Copyright (C) 2016 Free Software Foundation, Inc. + +;; Author: Michal Nazarewicz +;; Keywords: internal +;; Human-Keywords: internal + +;; 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 . + + +;;; Commentary: + +;; Unit tests for cc-mode.el. + +;;; Code: + +(require 'ert) +(require 'ert-x) +(require 'cc-mode) + +(ert-deftest c-or-c++-mode () + "Test c-or-c++-mode language detection." + (cl-letf* ((mode nil) + (do-test (lambda (content expected) + (delete-region (point-min) (point-max)) + (insert content) + (setq mode nil) + (c-or-c++-mode) + (unless(eq expected mode) + (ert-fail + (format "expected %s but got %s when testing '%s'" + expected mode content))))) + ((symbol-function 'c-mode) (lambda () (setq mode 'c-mode))) + ((symbol-function 'c++-mode) (lambda () (setq mode 'c++-mode)))) + (with-temp-buffer + (mapc (lambda (content) + (funcall do-test content 'c++-mode) + (funcall do-test (concat "// " content) 'c-mode) + (funcall do-test (concat " * " content) 'c-mode)) + '("using \t namespace \t std;" + "using \t std::string;" + "namespace \t {" + "namespace \t foo \t {" + "class \t Blah_42 \t {" + "class \t Blah_42 \t \n" + "class \t _42_Blah:public Foo {" + "template \t < class T >" + "template< class T >" + "#include " + "#include" + "#include \t ")) + + (mapc (lambda (content) (funcall do-test content 'c-mode)) + '("struct \t Blah_42 \t {" + "struct template {" + "#include "))))) + +;;; cc-mode-tests.el ends here diff --git a/test/lisp/progmodes/cc-mode.el b/test/lisp/progmodes/cc-mode.el deleted file mode 100644 index 6cd9fa4bad5..00000000000 --- a/test/lisp/progmodes/cc-mode.el +++ /dev/null @@ -1,65 +0,0 @@ -;;; cc-mode-tests.el --- Test suite for cc-mode. -*- lexical-binning: t -*- - -;; Copyright (C) 2016 Free Software Foundation, Inc. - -;; Author: Michal Nazarewicz -;; Keywords: internal -;; Human-Keywords: internal - -;; 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 . - -;;; Code: - -(require 'ert) -(require 'ert-x) -(require 'cc-mode) - -(ert-deftest c-or-c++-mode () - "Test c-or-c++-mode language detection." - (cl-letf* ((mode nil) - (do-test (lambda (content expected) - (delete-region (point-min) (point-max)) - (insert content) - (setq mode nil) - (c-or-c++-mode) - (unless(eq expected mode) - (ert-fail - (format "expected %s but got %s when testing '%s'" - expected mode content))))) - ((symbol-function 'c-mode) (lambda () (setq mode 'c-mode))) - ((symbol-function 'c++-mode) (lambda () (setq mode 'c++-mode)))) - (with-temp-buffer - (mapc (lambda (content) - (funcall do-test content 'c++-mode) - (funcall do-test (concat "// " content) 'c-mode) - (funcall do-test (concat " * " content) 'c-mode)) - '("using \t namespace \t std;" - "using \t std::string;" - "namespace \t {" - "namespace \t foo \t {" - "class \t Blah_42 \t {" - "class \t Blah_42 \t \n" - "class \t _42_Blah:public Foo {" - "template \t < class T >" - "template< class T >" - "#include " - "#include" - "#include \t ")) - - (mapc (lambda (content) (funcall do-test content 'c-mode)) - '("struct \t Blah_42 \t {" - "struct template {" - "#include ")))))