Pass --test_tmpdir and --srcdir to unittests.
authorAndreas Schuh <andreas.schuh.84@gmail.com>
Mon, 17 Mar 2014 21:15:52 +0000 (21:15 +0000)
committerAndreas Schuh <andreas.schuh.84@gmail.com>
Mon, 17 Mar 2014 21:15:52 +0000 (21:15 +0000)
cmake/utils.cmake
test/CMakeLists.txt
test/gflags_unittest.cc

index 0ec17ca..111cd3d 100644 (file)
@@ -70,13 +70,15 @@ endfunction ()
 # expected exit status. Moreover, the execute_test.cmake script
 # sets environment variables needed by the --fromenv/--tryfromenv tests.
 macro (add_gflags_test name expected_rc expected_output unexpected_output cmd)
+  set (args "--test_tmpdir=${PROJECT_BINARY_DIR}/Testing/Temporary"
+            "--srcdir=${PROJECT_SOURCE_DIR}/test")
   add_test (
     NAME    ${name}
-    COMMAND "${CMAKE_COMMAND}" "-DCOMMAND:STRING=$<TARGET_FILE:${cmd}>;${ARGN}"
+    COMMAND "${CMAKE_COMMAND}" "-DCOMMAND:STRING=$<TARGET_FILE:${cmd}>;${args};${ARGN}"
                                "-DEXPECTED_RC:STRING=${expected_rc}"
                                "-DEXPECTED_OUTPUT:STRING=${expected_output}"
                                "-DUNEXPECTED_OUTPUT:STRING=${unexpected_output}"
                                -P "${PROJECT_SOURCE_DIR}/cmake/execute_test.cmake"
-    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/test"
+    WORKING_DIRECTORY "${GFLAGS_FLAGFILES_DIR}"
   )
 endmacro ()
index 73099be..822ab32 100644 (file)
@@ -6,7 +6,8 @@ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Testing/bin")
 set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Testing/lib")
 set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Testing/lib")
 
-set (TEMPDIR "${PROJECT_BINARY_DIR}/Testing/Temporary")
+# set working directory of test commands
+set (GFLAGS_FLAGFILES_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 
 # ----------------------------------------------------------------------------
 # common include directories and link libraries
@@ -112,9 +113,9 @@ add_gflags_test(undefok-5 1 "unknown command line flag 'foo'" "" unittest --unde
 add_gflags_test(undefok-6 1 "unknown command line flag 'foo'" "" unittest --undefok=foot --foo --unused_bool)
 
 # See if we can successfully load our flags from the flagfile
-add_gflags_test(flagfile.1 0 "gflags_unittest" "gflags_unittest.cc" unittest "--flagfile=${CMAKE_CURRENT_LIST_DIR}/flagfile.1")
-add_gflags_test(flagfile.2 0 "PASS" "" unittest "--flagfile=${CMAKE_CURRENT_LIST_DIR}/flagfile.2")
-add_gflags_test(flagfile.3 0 "PASS" "" unittest "--flagfile=${CMAKE_CURRENT_LIST_DIR}/flagfile.3")
+add_gflags_test(flagfile.1 0 "gflags_unittest" "gflags_unittest.cc" unittest "--flagfile=flagfile.1")
+add_gflags_test(flagfile.2 0 "PASS" "" unittest "--flagfile=flagfile.2")
+add_gflags_test(flagfile.3 0 "PASS" "" unittest "--flagfile=flagfile.3")
 
 # Also try to load flags from the environment
 add_gflags_test(fromenv=version      0 "gflags_unittest" "gflags_unittest.cc" unittest --fromenv=version)
index 5604cb1..4990182 100644 (file)
@@ -66,14 +66,8 @@ using GFLAGS_NAMESPACE::RegisterFlagValidator;
 using GFLAGS_NAMESPACE::CommandLineFlagInfo;
 using GFLAGS_NAMESPACE::GetAllFlags;
 
-DEFINE_string(test_tmpdir, "/tmp/gflags_unittest", "Dir we use for temp files");
-#ifdef _MSC_VER  // in MSVC, we run from the vsprojects directory
-DEFINE_string(srcdir, "..\\..",
-              "Source-dir root, needed to find gflags_unittest_flagfile");
-#else
-DEFINE_string(srcdir, StringFromEnv("SRCDIR", "."),
-              "Source-dir root, needed to find gflags_unittest_flagfile");
-#endif
+DEFINE_string(test_tmpdir, "", "Dir we use for temp files");
+DEFINE_string(srcdir, StringFromEnv("SRCDIR", "."), "Source-dir root, needed to find gflags_unittest_flagfile");
 
 DECLARE_string(tryfromenv);   // in gflags.cc