summaryrefslogtreecommitdiff
path: root/Tests/Complex
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-12-23 15:34:19 -0500
committerBrad King <brad.king@kitware.com>2011-12-23 16:16:52 -0500
commit49d6dd67f1c2b3d21a47c28f6e0908062f300e4f (patch)
treedad5ebfe6b620f4e166eb1d80a971ff616eaa02d /Tests/Complex
parent76ac88b730f32dcdef80216766b3eaecb6257ed6 (diff)
downloadcmake-49d6dd67f1c2b3d21a47c28f6e0908062f300e4f.tar.gz
complex: Simplify test for single-character exe name
Run the test executable as a custom command instead of depending on cmSystemTools::RunSingleCommand.
Diffstat (limited to 'Tests/Complex')
-rw-r--r--Tests/Complex/Executable/A.cxx4
-rw-r--r--Tests/Complex/Executable/CMakeLists.txt4
-rw-r--r--Tests/Complex/Executable/complex.cxx42
3 files changed, 13 insertions, 37 deletions
diff --git a/Tests/Complex/Executable/A.cxx b/Tests/Complex/Executable/A.cxx
index 0cc995af0d..fb3eb08192 100644
--- a/Tests/Complex/Executable/A.cxx
+++ b/Tests/Complex/Executable/A.cxx
@@ -1,7 +1,9 @@
// Include code from a header that should not be compiled separately.
#include "A.hh"
+#include <stdio.h>
int main()
{
- return A();
+ printf("#define A_VALUE %d\n", A());
+ return 0;
}
diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt
index 1f0b999867..c76944f21b 100644
--- a/Tests/Complex/Executable/CMakeLists.txt
+++ b/Tests/Complex/Executable/CMakeLists.txt
@@ -55,8 +55,10 @@ SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES
SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES
HEADER_FILE_ONLY 1)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt)
-ADD_EXECUTABLE(complex complex testcflags.c )
+ADD_CUSTOM_COMMAND(OUTPUT Aout.h COMMAND A > Aout.h VERBATIM)
+ADD_EXECUTABLE(complex complex testcflags.c Aout.h)
# Sub1/NameConflictTest.c Sub2/NameConflictTest.c)
ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx
complex_nobuild.c)
diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx
index 643b8123a0..77406aadb4 100644
--- a/Tests/Complex/Executable/complex.cxx
+++ b/Tests/Complex/Executable/complex.cxx
@@ -3,6 +3,7 @@
#include "cmTestGeneratedHeader.h"
#include "cmVersion.h"
#include "ExtraSources/file1.h"
+#include "Aout.h"
#include "file2.h"
#include "sharedFile.h"
extern "C" {
@@ -148,42 +149,7 @@ extern "C" int NameConflictTest2();
int main()
{
- std::string exe = BINARY_DIR;
- exe += "/bin/";
-#ifdef CMAKE_INTDIR
- exe += CMAKE_INTDIR;
- exe += "/";
-#endif
-
#ifdef COMPLEX_TEST_CMAKELIB
- // Test a single character executable to test a: in makefiles
- exe += "A";
- exe += cmSystemTools::GetExecutableExtension();
- int ret;
- std::string errorMessage;
- exe = cmSystemTools::ConvertToRunCommandPath(exe.c_str());
- if(cmSystemTools::RunSingleCommand(exe.c_str(), 0, &ret))
- {
- if(ret != 10)
- {
- errorMessage += exe;
- errorMessage += " did not return 10";
- }
- }
- else
- {
- errorMessage += exe;
- errorMessage += ": failed to run.";
- }
- if(errorMessage.size())
- {
- cmFailed(errorMessage.c_str());
- }
- else
- {
- cmPassed("run Single Character executable A returned 10 as expected.");
- }
-
// ----------------------------------------------------------------------
// Test cmSystemTools::UpperCase
std::string str = "abc";
@@ -1064,6 +1030,12 @@ int main()
}
#endif
+#if defined(A_VALUE) && A_VALUE == 10
+ cmPassed("Single-character executable A worked.");
+#else
+ cmFailed("Single-character executable A failed.");
+#endif
+
// ----------------------------------------------------------------------
// Summary