From 4108ab4be2307ef161467de46e4c35e8b086ce02 Mon Sep 17 00:00:00 2001
From: Kyle Edwards <kyle.edwards@kitware.com>
Date: Thu, 12 Jul 2018 10:04:37 -0400
Subject: Tests: Add test for install(DIRECTORY) with PATTERN and REGEX

---
 .../install/DIRECTORY-PATTERN-all-check.cmake      |  1 +
 Tests/RunCMake/install/DIRECTORY-PATTERN.cmake     | 36 ++++++++++++++++++++++
 Tests/RunCMake/install/RunCMakeTest.cmake          |  1 +
 Tests/RunCMake/install/pattern/empty.c             |  0
 Tests/RunCMake/install/pattern/empty.h             |  0
 Tests/RunCMake/install/pattern/empty.txt           |  0
 6 files changed, 38 insertions(+)
 create mode 100644 Tests/RunCMake/install/DIRECTORY-PATTERN-all-check.cmake
 create mode 100644 Tests/RunCMake/install/DIRECTORY-PATTERN.cmake
 create mode 100644 Tests/RunCMake/install/pattern/empty.c
 create mode 100644 Tests/RunCMake/install/pattern/empty.h
 create mode 100644 Tests/RunCMake/install/pattern/empty.txt

diff --git a/Tests/RunCMake/install/DIRECTORY-PATTERN-all-check.cmake b/Tests/RunCMake/install/DIRECTORY-PATTERN-all-check.cmake
new file mode 100644
index 0000000..7a20edc
--- /dev/null
+++ b/Tests/RunCMake/install/DIRECTORY-PATTERN-all-check.cmake
@@ -0,0 +1 @@
+check_installed([[^dir1;dir1/empty\.c;dir1/empty\.h;dir2;dir2/pattern;dir2/pattern/empty\.txt;dir3;dir3/empty\.c;dir3/empty\.h;dir3/empty\.txt;dir4;dir4/empty\.c;dir4/empty\.h;dir4/empty\.txt;empty$]])
diff --git a/Tests/RunCMake/install/DIRECTORY-PATTERN.cmake b/Tests/RunCMake/install/DIRECTORY-PATTERN.cmake
new file mode 100644
index 0000000..74d8043
--- /dev/null
+++ b/Tests/RunCMake/install/DIRECTORY-PATTERN.cmake
@@ -0,0 +1,36 @@
+install(
+  DIRECTORY pattern/
+  DESTINATION dir1
+  FILES_MATCHING
+  PATTERN "*.h"
+  REGEX "\\.c$"
+  )
+
+# FIXME: If/when CMake gains a good way to read file permissions, we should
+# check that these permissions were set correctly.
+install(
+  DIRECTORY pattern
+  DESTINATION dir2
+  FILE_PERMISSIONS OWNER_READ OWNER_WRITE
+  DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+  PATTERN "*.h" EXCLUDE
+  REGEX "\\.c$" EXCLUDE
+  )
+
+install(
+  DIRECTORY pattern/
+  DESTINATION dir3
+  PATTERN "*.h"
+  PERMISSIONS OWNER_READ OWNER_WRITE
+  )
+
+install(
+  DIRECTORY pattern/
+  DESTINATION dir4
+  USE_SOURCE_PERMISSIONS
+  )
+
+install(
+  DIRECTORY
+  DESTINATION empty
+  )
diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake
index 31287c8..e05a1c0 100644
--- a/Tests/RunCMake/install/RunCMakeTest.cmake
+++ b/Tests/RunCMake/install/RunCMakeTest.cmake
@@ -85,6 +85,7 @@ run_install_test(Deprecated)
 run_install_test(PRE_POST_INSTALL_SCRIPT)
 run_install_test(SCRIPT)
 run_install_test(TARGETS-CONFIGURATIONS)
+run_install_test(DIRECTORY-PATTERN)
 
 set(run_install_test_components 1)
 run_install_test(FILES-EXCLUDE_FROM_ALL)
diff --git a/Tests/RunCMake/install/pattern/empty.c b/Tests/RunCMake/install/pattern/empty.c
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/install/pattern/empty.h b/Tests/RunCMake/install/pattern/empty.h
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/install/pattern/empty.txt b/Tests/RunCMake/install/pattern/empty.txt
new file mode 100644
index 0000000..e69de29
-- 
cgit v0.12