]> git.eshelyaron.com Git - emacs.git/commitdiff
Add some tests for align.el
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 29 Dec 2020 07:38:17 +0000 (08:38 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 29 Dec 2020 07:38:25 +0000 (08:38 +0100)
test/lisp/align-resources/align-post.c [new file with mode: 0644]
test/lisp/align-resources/align-post.java [new file with mode: 0644]
test/lisp/align-resources/align-pre.c [new file with mode: 0644]
test/lisp/align-resources/align-pre.java [new file with mode: 0644]
test/lisp/align-tests.el [new file with mode: 0644]

diff --git a/test/lisp/align-resources/align-post.c b/test/lisp/align-resources/align-post.c
new file mode 100644 (file)
index 0000000..157e1d6
--- /dev/null
@@ -0,0 +1,3 @@
+int
+main (int       argc,
+      char     *argv[]);
diff --git a/test/lisp/align-resources/align-post.java b/test/lisp/align-resources/align-post.java
new file mode 100644 (file)
index 0000000..e0ea8e7
--- /dev/null
@@ -0,0 +1,9 @@
+class X
+{
+    String     field1;
+    String[]   field2;
+    int                field3;
+    int[]      field4;
+    X          field5;
+    X[]                field6;
+}
diff --git a/test/lisp/align-resources/align-pre.c b/test/lisp/align-resources/align-pre.c
new file mode 100644 (file)
index 0000000..b177418
--- /dev/null
@@ -0,0 +1,3 @@
+int
+main (int argc,
+      char *argv[]);
diff --git a/test/lisp/align-resources/align-pre.java b/test/lisp/align-resources/align-pre.java
new file mode 100644 (file)
index 0000000..fe7a87a
--- /dev/null
@@ -0,0 +1,9 @@
+class X
+{
+    String     field1;
+    String[] field2;
+    int                field3;
+    int[] field4;
+    X          field5;
+    X[] field6;
+}
diff --git a/test/lisp/align-tests.el b/test/lisp/align-tests.el
new file mode 100644 (file)
index 0000000..b66ebb8
--- /dev/null
@@ -0,0 +1,47 @@
+;;; align-tests.el --- Test suite for aligns  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'ert-x)
+(require 'align)
+
+(defun test-align-compare (file function)
+  (should (equal
+           (with-temp-buffer
+             (insert-file-contents (ert-resource-file (format file "pre")))
+             (funcall function)
+             (align (point-min) (point-max))
+             (buffer-substring-no-properties (point-min) (point-max)))
+           (with-temp-buffer
+             (insert-file-contents (ert-resource-file (format file "post")))
+             (buffer-string)))))
+
+(ert-deftest align-java ()
+  (test-align-compare "align-%s.java" #'java-mode))
+
+(ert-deftest align-c ()
+  (test-align-compare "align-%s.c" #'c-mode))
+
+(provide 'align-tests)
+
+;;; align-tests.el ends here