[cmake-developers] Simple test case needed that follows exactly how ctest sets up stdout
David Cole
dlrdave at aol.com
Thu May 23 14:35:47 EDT 2013
-----Original Message-----
From: Alan W. Irwin <irwin at beluga.phys.uvic.ca>
To: cmake-developers <cmake-developers at cmake.org>
Sent: Thu, May 23, 2013 2:14 pm
Subject: [cmake-developers] Simple test case needed that follows
exactly how ctest sets up stdout
I am trying to track down a recently introduced Wine regression
demonstrated by cmake-2.8.10.2 where MSYS bash.exe redirection of
ctest stdout produces good results for Wine-1.5.19, but an empty file
for Wine-1.5.30. A simplified example of this issue is
ctest --version
produce correct results on the terminal for all wine versions but
ctest --version > ctest_version.out
produces correct file results for Wine-1.5.19, but an empty file for
Wine-1.5.30. The equivalent "cmake --version" tests produce good
results in all cases. So I conclude that stdout is set up slightly
differently for ctest than it is for cmake, and that difference is
enough to trigger a Wine bug that was introduced for some commit
(which I plan to find using git-bisect) between wine-1.5.19 and
wine-1.5.30. The git bisection should work just fine using "ctest
--version >ctest_version.out" for the test, but when I put together
the wine bug report I would like to demonstrate the issue with a lot
simpler test case than the ctest executable.
Would somebody be willing to give me a hand with implementing that
test case? All that needs to be done is to collect the relevant code
for setting up stdout from ctest.cxx, cmCTest.cxx, and anything else
that is relevant in the CTest subdirectory into a single source file
for the simple test case that outputs a test string to stdout.
However, I need a hand with this task because my extremely limited C++
skills and basic unfamiliarity with cmake/ctest coding conventions
aren't up to it. For example, in cmCTest.cxx there are a number of
references to various capitalizations of stdout, but there is no
in-source documentation so it is difficult for me to figure out which
of those are relevant to setting up stdout.
Alan
__________________________
Alan W. Irwin
Astronomical research affiliation with Department of Physics and
Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
What do you intend to write as the test case that's simpler than
running "ctest --version" ...?
You should be able to demonstrate the bug with a minimal subset of the
cmake installation, using the binaries from Kitware as the test case.
(i.e. -- you don't need to build anything from source code to
demonstrate the bug to the Wine folks...)
I copied the bin folder of CMake 2.8.11 to another location just now,
and then eliminated everything from it except these files:
ctest.exe
Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll
Then, when running "ctest --version" I see the output:
CMake Error: CMake executable cannot be found at
C:/dev/tmp8/bin/cmake.exe
ctest version 2.8.11
Or, if I run "ctest --version 2>nul" (in the Windows command prompt),
it suppresses the stderr output, and I see:
ctest version 2.8.11
You should be able to do a similar thing on Wine, in whatever shell you
like, perhaps using a different construct than "2>nul" for different
shells.
Hope this helps,
David C.
More information about the cmake-developers
mailing list