cmCTestMemCheckCommand.cxx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmCTestMemCheckCommand.h"
  4. #include "cmCTest.h"
  5. #include "cmCTestGenericHandler.h"
  6. #include "cmCTestMemCheckHandler.h"
  7. #include "cmMakefile.h"
  8. cmCTestMemCheckCommand::cmCTestMemCheckCommand()
  9. {
  10. this->Arguments[ctm_DEFECT_COUNT] = "DEFECT_COUNT";
  11. this->Arguments[ctm_LAST] = CM_NULLPTR;
  12. this->Last = ctm_LAST;
  13. }
  14. cmCTestGenericHandler* cmCTestMemCheckCommand::InitializeActualHandler()
  15. {
  16. cmCTestGenericHandler* handler =
  17. this->CTest->GetInitializedHandler("memcheck");
  18. this->CTest->SetCTestConfigurationFromCMakeVariable(
  19. this->Makefile, "MemoryCheckType", "CTEST_MEMORYCHECK_TYPE", this->Quiet);
  20. this->CTest->SetCTestConfigurationFromCMakeVariable(
  21. this->Makefile, "MemoryCheckSanitizerOptions",
  22. "CTEST_MEMORYCHECK_SANITIZER_OPTIONS", this->Quiet);
  23. this->CTest->SetCTestConfigurationFromCMakeVariable(
  24. this->Makefile, "MemoryCheckCommand", "CTEST_MEMORYCHECK_COMMAND",
  25. this->Quiet);
  26. this->CTest->SetCTestConfigurationFromCMakeVariable(
  27. this->Makefile, "MemoryCheckCommandOptions",
  28. "CTEST_MEMORYCHECK_COMMAND_OPTIONS", this->Quiet);
  29. this->CTest->SetCTestConfigurationFromCMakeVariable(
  30. this->Makefile, "MemoryCheckSuppressionFile",
  31. "CTEST_MEMORYCHECK_SUPPRESSIONS_FILE", this->Quiet);
  32. handler->SetQuiet(this->Quiet);
  33. return handler;
  34. }
  35. void cmCTestMemCheckCommand::ProcessAdditionalValues(
  36. cmCTestGenericHandler* handler)
  37. {
  38. if (this->Values[ctm_DEFECT_COUNT] && *this->Values[ctm_DEFECT_COUNT]) {
  39. std::ostringstream str;
  40. str << static_cast<cmCTestMemCheckHandler*>(handler)->GetDefectCount();
  41. this->Makefile->AddDefinition(this->Values[ctm_DEFECT_COUNT],
  42. str.str().c_str());
  43. }
  44. }