cmCTestSubmitCommand.cxx 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*=========================================================================
  2. Program: CMake - Cross-Platform Makefile Generator
  3. Module: $RCSfile$
  4. Language: C++
  5. Date: $Date$
  6. Version: $Revision$
  7. Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
  8. See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
  9. This software is distributed WITHOUT ANY WARRANTY; without even
  10. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  11. PURPOSE. See the above copyright notices for more information.
  12. =========================================================================*/
  13. #include "cmCTestSubmitCommand.h"
  14. #include "cmCTest.h"
  15. #include "cmCTestGenericHandler.h"
  16. cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
  17. {
  18. const char* ctestDropMethod
  19. = this->Makefile->GetDefinition("CTEST_DROP_METHOD");
  20. const char* ctestDropSite
  21. = this->Makefile->GetDefinition("CTEST_DROP_SITE");
  22. const char* ctestDropLocation
  23. = this->Makefile->GetDefinition("CTEST_DROP_LOCATION");
  24. const char* ctestTriggerSite
  25. = this->Makefile->GetDefinition("CTEST_TRIGGER_SITE");
  26. if ( !ctestDropMethod )
  27. {
  28. ctestDropMethod = "http";
  29. }
  30. if ( !ctestDropSite )
  31. {
  32. ctestDropSite = "public.kitware.com";
  33. }
  34. if ( !ctestDropLocation )
  35. {
  36. ctestDropLocation = "/cgi-bin/HTTPUploadDartFile.cgi";
  37. }
  38. if ( !ctestTriggerSite )
  39. {
  40. ctestTriggerSite
  41. = "http://public.kitware.com/cgi-bin/Submit-Random-TestingResults.cgi";
  42. cmCTestLog(this->CTest, HANDLER_OUTPUT, "* Use default trigger site: "
  43. << ctestTriggerSite << std::endl;);
  44. }
  45. this->CTest->SetCTestConfiguration("DropMethod", ctestDropMethod);
  46. this->CTest->SetCTestConfiguration("DropSite", ctestDropSite);
  47. this->CTest->SetCTestConfiguration("DropLocation", ctestDropLocation);
  48. this->CTest->SetCTestConfiguration("TriggerSite", ctestTriggerSite);
  49. this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile,
  50. "DropSiteUser", "CTEST_DROP_SITE_USER");
  51. this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile,
  52. "DropSitePassword", "CTEST_DROP_SITE_PASSWORD");
  53. this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile,
  54. "ScpCommand", "CTEST_SCP_COMMAND");
  55. const char* notesFilesVariable
  56. = this->Makefile->GetDefinition("CTEST_NOTES_FILES");
  57. if (notesFilesVariable)
  58. {
  59. std::vector<std::string> notesFiles;
  60. std::vector<cmStdString> newNotesFiles;
  61. cmSystemTools::ExpandListArgument(notesFilesVariable,notesFiles);
  62. std::vector<std::string>::iterator it;
  63. for ( it = notesFiles.begin();
  64. it != notesFiles.end();
  65. ++ it )
  66. {
  67. newNotesFiles.push_back(*it);
  68. }
  69. this->CTest->GenerateNotesFile(newNotesFiles);
  70. }
  71. const char* extraFilesVariable
  72. = this->Makefile->GetDefinition("CTEST_EXTRA_SUBMIT_FILES");
  73. if (extraFilesVariable)
  74. {
  75. std::vector<std::string> extraFiles;
  76. std::vector<cmStdString> newExtraFiles;
  77. cmSystemTools::ExpandListArgument(extraFilesVariable,extraFiles);
  78. std::vector<std::string>::iterator it;
  79. for ( it = extraFiles.begin();
  80. it != extraFiles.end();
  81. ++ it )
  82. {
  83. newExtraFiles.push_back(*it);
  84. }
  85. if ( !this->CTest->SubmitExtraFiles(newExtraFiles))
  86. {
  87. this->SetError("problem submitting extra files.");
  88. return 0;
  89. }
  90. }
  91. cmCTestGenericHandler* handler
  92. = this->CTest->GetInitializedHandler("submit");
  93. if ( !handler )
  94. {
  95. this->SetError("internal CTest error. Cannot instantiate submit handler");
  96. return 0;
  97. }
  98. return handler;
  99. }