View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0013844CMakeCTestpublic2013-01-10 07:292016-06-10 14:31
ReporterIngmar Voigt 
Assigned ToKitware Robot 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionmoved 
PlatformOSWindowsOS VersionXP SP1
Product VersionCMake 2.8.3 
Target VersionFixed in Version 
Summary0013844: PurifyPlus 7.0.1-003 cannot properly interpret SAVETEXTDATA command line switch due to quotation marks
DescriptionPROBLEM:
----------------------------

This started with PurifyPlus 7.0.1-003 - PurifyPlus 7.0.0 did not show such behaviour. The solution should however work for both

CTest 2.8.3 memchecker produces on Windows the following command line to execute Purify (extracted from my logs):

C:\Progra~1\IBM\RationalPurifyPlus\purify.exe "/SAVETEXTDATA=D:/MyBinDir/Testing/Temporary/MemoryChecker.log" "D:/MyBinDir/bin/Debug/MyTest.exe"

When executing this Purify 7.0.1-003 complains the following way:

Unable to find file /SAVETEXTDATA=D:/MyBinDir/Testing/Temporary/MemoryChecker.log.


The reason is the command line /SAVETEXTDATA=... is wrapped in quotation marks

"/SAVETEXTDATA=D:/MyBinFolder/Testing/Temporary/MemoryChecker.log"

the problem does not occur when changing the command line by shift the quotation mark after the equal sign:

/SAVETEXTDATA="D:/MyBinFolder/Testing/Temporary/MemoryChecker.log"

SOLUTION:
----------------------------
use

/SAVETEXTDATA="D:/MyBinFolder/Testing/Temporary/MemoryChecker.log"

instead of

"/SAVETEXTDATA=D:/MyBinFolder/Testing/Temporary/MemoryChecker.log"

i.e.

C:\Progra~1\IBM\RationalPurifyPlus\purify.exe /SAVETEXTDATA="D:/MyBinFolder/Testing/Temporary/MemoryChecker.log" "D:/MyBinFolder/bin/Debug/MyTest.exe"
Steps To ReproduceExecute PurifyPlus 7.0.1-003

C:\Progra~1\IBM\RationalPurifyPlus\purify.exe "/SAVETEXTDATA=D:/MyBinFolder/Testing/Temporary/MemoryChecker.log" "D:/MyBinFolder/bin/Debug/MyTest.exe"

and try again with

C:\Progra~1\IBM\RationalPurifyPlus\purify.exe /SAVETEXTDATA="D:/MyBinFolder/Testing/Temporary/MemoryChecker.log" "D:/MyBinFolder/bin/Debug/MyTest.exe"
Additional InformationFrom the CTest logs:


Memory check command: C:\Progra~1\IBM\RationalPurifyPlus\purify.exe "/SAVETEXTDATA=D:/MyBinDir/Testing/Temporary/MemoryChecker.log"

149: MemCheck command: C:\Progra~1\IBM\RationalPurifyPlus\purify.exe "/SAVETEXTDATA=D:/MyBinDir/Testing/Temporary/MemoryChecker.log" "D:/MyBinDir/bin/Debug/MyTest.exe"
TagsNo tags attached.
Attached Files? file icon purify.bat [^] (288 bytes) 2013-01-24 16:50

 Relationships

  Notes
(0032163)
Ingmar Voigt (reporter)
2013-01-24 16:52

I was able to workaround the problem with the following batch file (also attached) - pointing CTEST_MEMORYCHECK_COMMAND to this instead made it work in the end



@echo off
@setlocal

rem strip quotes from /SAVETEXTDATA argment
REM set str="%1=%2"
REM for /f "useback tokens=*" %%a in ('%str%') do set str=%%~a

set PURIFY_PATH="C:\Program Files\IBM\RationalPurifyPlus\purify.exe"
echo calling %PURIFY_PATH% %*
%PURIFY_PATH% %*

@endlocal
(0042198)
Kitware Robot (administrator)
2016-06-10 14:28

Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.

 Issue History
Date Modified Username Field Change
2013-01-10 07:29 Ingmar Voigt New Issue
2013-01-24 16:50 Ingmar Voigt File Added: purify.bat
2013-01-24 16:52 Ingmar Voigt Note Added: 0032163
2016-06-10 14:28 Kitware Robot Note Added: 0042198
2016-06-10 14:28 Kitware Robot Status new => resolved
2016-06-10 14:28 Kitware Robot Resolution open => moved
2016-06-10 14:28 Kitware Robot Assigned To => Kitware Robot
2016-06-10 14:31 Kitware Robot Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team