blob: 4867751f6a116d76fce95f0c6285d435a66940a4 [file]
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#include "cmTestPropertyHelper.h"
#include "cmExecutionStatus.h"
#include "cmMakefile.h"
#include "cmSetPropertyCommand.h"
#include "cmTest.h"
#include "cmValue.h"
cmGetTestPropertyResult cmGetTestProperty(std::string const& testName,
std::string const& propertyName,
cmExecutionStatus& status,
bool testDirectoryOptionEnabled,
std::string& testDirectory,
cmValue& propertyValue)
{
cmMakefile* testDirectoryMakefile = &status.GetMakefile();
if (!SetPropertyCommand::HandleAndValidateTestDirectoryScopes(
status, testDirectoryOptionEnabled, testDirectory,
testDirectoryMakefile)) {
return cmGetTestPropertyResult::ScopeError;
}
cmTest* test = testDirectoryMakefile->GetTest(testName);
if (!test) {
return cmGetTestPropertyResult::TestNotFound;
}
propertyValue = test->GetProperty(propertyName);
return cmGetTestPropertyResult::Success;
}