Kaynağa Gözat

test: test source file properties with case-insensitivity

Some filesystems are case insensitive, so when setting properties on the
files, this should be respected (modulo a policy decision).
Ben Boeckel 11 yıl önce
ebeveyn
işleme
b7d760aea2

+ 1 - 0
Tests/CMakeLists.txt

@@ -291,6 +291,7 @@ if(BUILD_TESTING)
     ADD_TEST_MACRO(ConfigSources ConfigSources)
   endif()
   ADD_TEST_MACRO(SourcesProperty SourcesProperty)
+  ADD_TEST_MACRO(SourceFileProperty SourceFileProperty)
   if(CMAKE_CXX_COMPILER_ID STREQUAL GNU
       AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
     set(runCxxDialectTest 1)

+ 19 - 0
Tests/SourceFileProperty/CMakeLists.txt

@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.0)
+project(SourceFileProperty C)
+
+set(sources)
+
+if (EXISTS icasetest.c)
+  # If a file exists by this name, use it.
+  set_source_files_properties(icasetest.c
+    PROPERTIES
+      COMPILE_FLAGS -DNEEDED_TO_WORK)
+else ()
+  # Work on case-sensitive file systems as well.
+  set_source_files_properties(main.c
+    PROPERTIES
+      COMPILE_FLAGS -DNO_NEED_TO_CALL)
+endif ()
+list(APPEND sources ICaseTest.c)
+
+add_executable(SourceFileProperty main.c ${sources})

+ 7 - 0
Tests/SourceFileProperty/ICaseTest.c

@@ -0,0 +1,7 @@
+
+#ifdef NEEDED_TO_WORK
+int icasetest()
+{
+  return 0;
+}
+#endif

+ 13 - 0
Tests/SourceFileProperty/main.c

@@ -0,0 +1,13 @@
+
+#ifndef NO_NEED_TO_CALL
+extern int icasetest();
+#endif
+
+int main(int argc, char** argv)
+{
+#ifdef NO_NEED_TO_CALL
+  return 0;
+#else
+  return icasetest();
+#endif
+}