cmCTestMemCheckCommand.cxx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 <sstream>
  5. #include <vector>
  6. #include "cmCTest.h"
  7. #include "cmCTestMemCheckHandler.h"
  8. #include "cmMakefile.h"
  9. cmCTestMemCheckCommand::cmCTestMemCheckCommand()
  10. {
  11. this->Arguments[ctm_DEFECT_COUNT] = "DEFECT_COUNT";
  12. this->Arguments[ctm_LAST] = nullptr;
  13. this->Last = ctm_LAST;
  14. }
  15. cmCTestGenericHandler* cmCTestMemCheckCommand::InitializeActualHandler()
  16. {
  17. cmCTestMemCheckHandler* handler = this->CTest->GetMemCheckHandler();
  18. handler->Initialize();
  19. this->CTest->SetCTestConfigurationFromCMakeVariable(
  20. this->Makefile, "MemoryCheckType", "CTEST_MEMORYCHECK_TYPE", this->Quiet);
  21. this->CTest->SetCTestConfigurationFromCMakeVariable(
  22. this->Makefile, "MemoryCheckSanitizerOptions",
  23. "CTEST_MEMORYCHECK_SANITIZER_OPTIONS", this->Quiet);
  24. this->CTest->SetCTestConfigurationFromCMakeVariable(
  25. this->Makefile, "MemoryCheckCommand", "CTEST_MEMORYCHECK_COMMAND",
  26. this->Quiet);
  27. this->CTest->SetCTestConfigurationFromCMakeVariable(
  28. this->Makefile, "MemoryCheckCommandOptions",
  29. "CTEST_MEMORYCHECK_COMMAND_OPTIONS", this->Quiet);
  30. this->CTest->SetCTestConfigurationFromCMakeVariable(
  31. this->Makefile, "MemoryCheckSuppressionFile",
  32. "CTEST_MEMORYCHECK_SUPPRESSIONS_FILE", this->Quiet);
  33. handler->SetQuiet(this->Quiet);
  34. return handler;
  35. }
  36. void cmCTestMemCheckCommand::ProcessAdditionalValues(
  37. cmCTestGenericHandler* handler)
  38. {
  39. if (this->Values[ctm_DEFECT_COUNT] && *this->Values[ctm_DEFECT_COUNT]) {
  40. std::ostringstream str;
  41. str << static_cast<cmCTestMemCheckHandler*>(handler)->GetDefectCount();
  42. this->Makefile->AddDefinition(this->Values[ctm_DEFECT_COUNT], str.str());
  43. }
  44. }