Fix cvs password problems during the CMake.CheckSourceTree test. Make sure cvs has access to the original value of the HOME environment variable and not the 'CMake testing' value of it so that any cvs passwords set up on the machine work to get the list of local modifications using 'cvs up'...

This commit is contained in:
David Cole 2009-12-04 14:50:37 -05:00
parent 700da5f266
commit 8d28ce8029
2 changed files with 15 additions and 0 deletions

View File

@ -50,6 +50,7 @@ if(do_cvs_tests)
"-DCMake_BINARY_DIR:PATH=${CMake_BINARY_DIR}"
"-DCMake_SOURCE_DIR:PATH=${CMake_SOURCE_DIR}"
"-DCVS_EXECUTABLE:STRING=${CVS_EXECUTABLE}"
"-DHOME:STRING=$ENV{HOME}"
)
AddCMakeTest(CheckSourceTree "${CheckSourceTree_PreArgs}")
endif(do_cvs_tests)

View File

@ -6,6 +6,7 @@ message("")
message("CMake_BINARY_DIR='${CMake_BINARY_DIR}'")
message("CMake_SOURCE_DIR='${CMake_SOURCE_DIR}'")
message("CVS_EXECUTABLE='${CVS_EXECUTABLE}'")
message("HOME='${HOME}'")
message("ENV{DASHBOARD_TEST_FROM_CTEST}='$ENV{DASHBOARD_TEST_FROM_CTEST}'")
message("")
@ -47,18 +48,31 @@ message("=======================================================================
message("Copy/paste this command to reproduce:")
message("cd \"${CMake_SOURCE_DIR}\" && \"${CVS_EXECUTABLE}\" -q -n up -dP")
message("")
# Use the HOME value passed in to the script for calling cvs so it can find
# its .cvspass and other file(s)
#
set(original_ENV_HOME "$ENV{HOME}")
set(ENV{HOME} "${HOME}")
execute_process(COMMAND ${CVS_EXECUTABLE} -q -n up -dP
WORKING_DIRECTORY ${CMake_SOURCE_DIR}
OUTPUT_VARIABLE ov
ERROR_VARIABLE ev
RESULT_VARIABLE rv)
set(ENV{HOME} "${original_ENV_HOME}")
message("Results of running '${CVS_EXECUTABLE} -q -n up -dP'")
message("rv='${rv}'")
message("ov='${ov}'")
message("ev='${ev}'")
message("")
if(NOT rv STREQUAL 0)
message(FATAL_ERROR "error: 'cvs -q -n up -dP' attempt failed... (see output above)")
endif()
# Analyze cvs output:
#
set(additions 0)