[CMake] Scripting of ctest: pb with update stage and CVSCOMMAND

Andy Cedilnik andy.cedilnik at kitware.com
Wed Jul 12 09:57:35 EDT 2006


Hi Eric,

Also, your CTEST_ENVIRONMENT should be set to:

SET(CTEST_ENVIROMENT
  "CVS_RSH=$ENV{HOME}/cvs_rsh_trick")

The export is a SH thing and is not needed (should not be there).

       Andy

Eric BOIX wrote:
> 	Dear ctest (and cmake) users,
>
> I have set up a ctest script in the way illustrated by the "CTest Scripting"
> section of cmake's wiki i.e.
>   http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest
> (in order to automatize submissions to Dart2).
>
> Because I'm "subverting" an account for dart continuous builds I need to
> authenticate my cvs updates through a "ssh -i $HOME/.ssh/my-cheat-key"
> context (see the "ubertrick" described by the page
>   http://www.liniac.upenn.edu/sysadmin/security/cvs-ssh.html
> for details).
>
> Anyhow, my CTest script contains a line that goes like
>    SET( CTEST_ENVIRONMENT "export CVS_RSH=$ENV{HOME}/cvs_rsh_trick" )
> and I tested my ssh-keys manually and everything looks fine. But, now
> when I launch my ctest script (with the "-VV -debug" options), I get the
> following Update stage:
>      [...]
>      Run ctest command: /home/eboix/local/bin/ctest -D Continuous
>         Site: ble.ens-lyon.fr
>         Build name: Debian-GCC_3.2.5-Batch-MMA-Docs
>      Create new tag: 20060705-1247 - Continuous
>      Start processing tests
>      Updating the repository
>         Updating the repository:
>      /home/eboix/DashboardDiet/cvs/GRAAL/devel/diet/diet
>         Use CVS repository type
>         Gathering version information (each . represents one updated file):
>         Project is up-to-date
> !!!!    Update with command: "/usr/bin/cvs" -z3 update -d -A -P  failed
>      Error(s) when updating the project
>      Output:
>      [...]
>
> Apparently, there is a first "cvs update" since there is the output
> "Project is up-to-date", but then a second cvs seems to be triggered !?
>
> My first question is:
>   what triggers the SECOND "cvs update" command ?
>  [i.e. what triggers the line that I prefixed with "!!!!" in the above log ?]
>
> My second question goes:
>   what are the connexions between the CVSCOMMAND cmake's internal variable
>   and ctest's scripting variable CTEST_CVS_COMMAND. Are these two variables
>   linked or redundant ?
>
>     Thanks for any help or clue,
>     Yours,
>     Eric Boix.
>
> ----------------- Deep down under the hood gory details:
> Context: ctest version 2.4-patch 2
>
> One should notice that this "second pass" of cvs update is NOT triggered
> if I launch ctest manually: from the build directory when I launch
>   ctest -D ExperimentalUpdate
> I get the following clean output
>   Start processing tests
>     Updating the repository
>        Updating the repository:
>     /home/eboix/DashboardDiet/cvs/GRAAL/devel/diet/diet
>        Use CVS repository type
>        Gathering version information (each . represents one updated file):
>        Project is up-to-date
>
> In order to understand what was happening, I went chasing down the
> "/usr/bin/cvs" string. It seems that the "Update with command" comes from
> from the BuildRep/DartConfiguration.tcl script, which has a section that
> goes:
>   # Generic update command
>   UpdateCommand: /usr/bin/cvs
>   UpdateOptions: -d -A -P
>   UpdateType: cvs
> where the UpdateCommand corresponds to the CVSCOMMAND internal variable.
> Since I was suspecting some trouble with the CVS_RSH environment variable
> I tried to alter my original ctest script with an additional CACHE
> COMMAND i.e. something that goes:
>    SET( CTEST_INITIAL_CACHE "
>       CVSCOMMAND:STRING=export CVS_RSH=$ENV{HOME}/cvs_rsh_trick && /usr/bin/cvs
>    )
> and indeed what I nicknamed the "second invocation" changes and I get the
> following output:
>      Updating the repository
>         Updating the repository:
>      /home/eboix/DashboardDiet/cvs/GRAAL/devel/diet/diet
>         Use CVS repository type
> !!!! No such file or directory
>         Gathering version information (each . represents one updated file):
>         Project is up-to-date
>         Update with command: "export CVS_RSH=/home/eboix/DashboardDiet/cvs_rsh_dart && /usr/bin/cvs )" -z3 update -d -A -P  failed
>
> I really wonder what related CVSCOMMAND cmake's internal variable and
> CTEST_CVS_COMMAND ctest's scripting variable. Hummmmm...
>
> Hey, thanks for reading all the above :-)
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>   


-- 
Andy Cedilnik
Kitware Inc.



More information about the CMake mailing list