From 7b85c61bca9b54f91faebad25313d0bc6f5aca92 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Sun, 2 Oct 2016 17:15:31 +0000
Subject: [PATCH] Add a test for MR !15

---
 tests/issues.lisp                        | 26 ++++++++++++++++++++++++
 tests/resources/mr.15/dir/file-in-dir    |  0
 tests/resources/mr.15/file               |  0
 tests/resources/mr.15/link-to-dir        |  1 +
 tests/resources/mr.15/link-to-dir-in-dir |  1 +
 tests/resources/mr.15/link-to-file       |  1 +
 6 files changed, 29 insertions(+)
 create mode 100644 tests/resources/mr.15/dir/file-in-dir
 create mode 100644 tests/resources/mr.15/file
 create mode 120000 tests/resources/mr.15/link-to-dir
 create mode 120000 tests/resources/mr.15/link-to-dir-in-dir
 create mode 120000 tests/resources/mr.15/link-to-file

diff --git a/tests/issues.lisp b/tests/issues.lisp
index d709a7191..6bd341344 100644
--- a/tests/issues.lisp
+++ b/tests/issues.lisp
@@ -12,6 +12,12 @@
   (declare (ignore arg))
   form)
 
+(defparameter *test-path*
+  (merge-pathnames (make-pathname :name :unspecific :type :unspecific
+                                  :version :unspecific)
+                   *load-truename*)
+  "Directory for temporary test files.")
+
 (define-test issue.1.a
     (:tag :issues)
   (assert-equal
@@ -321,3 +327,23 @@
   (assert-error 'kernel:simple-program-error
 		(ext:run-program "cat" nil
 				 :before-execve t)))
+
+(define-test mr.15
+    (:tag :issues)
+  (let (directories files)
+    (dolist (entry (directory (merge-pathnames "resources/mr.15/*.*" *test-path*)
+                              :check-for-subdirs t
+                              :follow-links nil
+                              :truenamep nil))
+      (let ((filename (pathname-name entry))
+            (directory (first (last (pathname-directory entry)))))
+        (if filename
+            (push filename files)
+            (push directory directories))))
+    (assert (null (set-difference files
+                                  '("file" "link-to-dir"
+                                    "link-to-dir-in-dir" "link-to-file")
+                                  :test #'string-equal)))
+    (assert (null (set-difference directories
+                                  '(".dir" "dir")
+                                  :test #'string-equal)))))
diff --git a/tests/resources/mr.15/dir/file-in-dir b/tests/resources/mr.15/dir/file-in-dir
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/resources/mr.15/file b/tests/resources/mr.15/file
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/resources/mr.15/link-to-dir b/tests/resources/mr.15/link-to-dir
new file mode 120000
index 000000000..872451932
--- /dev/null
+++ b/tests/resources/mr.15/link-to-dir
@@ -0,0 +1 @@
+dir
\ No newline at end of file
diff --git a/tests/resources/mr.15/link-to-dir-in-dir b/tests/resources/mr.15/link-to-dir-in-dir
new file mode 120000
index 000000000..bef86c03d
--- /dev/null
+++ b/tests/resources/mr.15/link-to-dir-in-dir
@@ -0,0 +1 @@
+dir/dir-in-dir
\ No newline at end of file
diff --git a/tests/resources/mr.15/link-to-file b/tests/resources/mr.15/link-to-file
new file mode 120000
index 000000000..1a010b1c0
--- /dev/null
+++ b/tests/resources/mr.15/link-to-file
@@ -0,0 +1 @@
+file
\ No newline at end of file
-- 
GitLab