diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2023-08-14 15:18:04 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-08-14 15:18:54 (GMT) |
commit | 2eab65ca828084559e1019bd1263c5ab147bf135 (patch) | |
tree | 3fde898ff573722bbbe2f23cdb3a7c542b30e74a /Source/cmGetTestPropertyCommand.cxx | |
parent | 0d95b68bd807ccc4eee44619da29974caf3a1a1b (diff) | |
parent | 2ccb897d86598daa983f77ce764411c5723b568c (diff) | |
download | CMake-2eab65ca828084559e1019bd1263c5ab147bf135.zip CMake-2eab65ca828084559e1019bd1263c5ab147bf135.tar.gz CMake-2eab65ca828084559e1019bd1263c5ab147bf135.tar.bz2 |
Merge topic 'test-properties-directory'
2ccb897d86 get_test_property(): Add DIRECTORY option
84e76fedb0 get_property(TEST): Add DIRECTORY option
efc8f19cc5 set_tests_properties(): Add DIRECTORY option
753999d4db set_property(TEST): Add DIRECTORY option
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8709
Diffstat (limited to 'Source/cmGetTestPropertyCommand.cxx')
-rw-r--r-- | Source/cmGetTestPropertyCommand.cxx | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/Source/cmGetTestPropertyCommand.cxx b/Source/cmGetTestPropertyCommand.cxx index 36446c9..103471b 100644 --- a/Source/cmGetTestPropertyCommand.cxx +++ b/Source/cmGetTestPropertyCommand.cxx @@ -4,21 +4,42 @@ #include "cmExecutionStatus.h" #include "cmMakefile.h" +#include "cmSetPropertyCommand.h" #include "cmTest.h" #include "cmValue.h" bool cmGetTestPropertyCommand(std::vector<std::string> const& args, cmExecutionStatus& status) { - if (args.size() < 3) { + std::vector<std::string>::size_type args_size = args.size(); + if (args_size != 3 && args_size != 5) { status.SetError("called with incorrect number of arguments"); return false; } + std::string test_directory; + bool test_directory_option_enabled = false; + + int var_arg_index = 2; + if (args[2] == "DIRECTORY" && args_size == 5) { + var_arg_index = 4; + test_directory_option_enabled = true; + test_directory = args[3]; + } + + cmMakefile* test_directory_makefile = &status.GetMakefile(); + bool file_scopes_handled = + SetPropertyCommand::HandleAndValidateTestDirectoryScopes( + status, test_directory_option_enabled, test_directory, + test_directory_makefile); + if (!file_scopes_handled) { + return false; + } + std::string const& testName = args[0]; - std::string const& var = args[2]; + std::string const& var = args[var_arg_index]; cmMakefile& mf = status.GetMakefile(); - cmTest* test = mf.GetTest(testName); + cmTest* test = test_directory_makefile->GetTest(testName); if (test) { cmValue prop; if (!args[1].empty()) { |