| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
-    file Copyright.txt or https://cmake.org/licensing for details.  */
 
- #include <iostream>
 
- #include <string>
 
- #include <vector>
 
- #include "cmCTestTestHandler.h"
 
- struct ExpectedParseResult
 
- {
 
-   std::string String;
 
-   bool ExpectedReturnValue;
 
-   std::vector<std::vector<cmCTestTestHandler::cmCTestTestResourceRequirement>>
 
-     ExpectedValue;
 
- };
 
- static const std::vector<ExpectedParseResult> expectedResults{
 
-   /* clang-format off */
 
-   { "threads:2", true, {
 
-     { { "threads", 2, 1 } },
 
-   } },
 
-   { "3,threads:2", true, {
 
-     { { "threads", 2, 1 } },
 
-     { { "threads", 2, 1 } },
 
-     { { "threads", 2, 1 } },
 
-   } },
 
-   { "3,threads:2,gpus:4", true, {
 
-     { { "threads", 2, 1 }, { "gpus", 4, 1 } },
 
-     { { "threads", 2, 1 }, { "gpus", 4, 1 } },
 
-     { { "threads", 2, 1 }, { "gpus", 4, 1 } },
 
-   } },
 
-   { "2,threads:2;gpus:4", true, {
 
-     { { "threads", 2, 1 } },
 
-     { { "threads", 2, 1 } },
 
-     { { "gpus", 4, 1 } },
 
-   } },
 
-   { "threads:2;2,gpus:4", true, {
 
-     { { "threads", 2, 1 } },
 
-     { { "gpus", 4, 1 } },
 
-     { { "gpus", 4, 1 } },
 
-   } },
 
-   { "threads:2;gpus:4", true, {
 
-     { { "threads", 2, 1 } },
 
-     { { "gpus", 4, 1 } },
 
-   } },
 
-   { "1,threads:2;0,gpus:4", true, {
 
-     { { "threads", 2, 1 } },
 
-   } },
 
-   { "1,_:1", true, {
 
-     { { "_", 1, 1 } },
 
-   } },
 
-   { "1,a:1", true, {
 
-     { { "a", 1, 1 } },
 
-   } },
 
-   { "2", true, {
 
-     {},
 
-     {},
 
-   } },
 
-   { "1;2,threads:1", true, {
 
-     {},
 
-     { { "threads", 1, 1 } },
 
-     { { "threads", 1, 1 } },
 
-   } },
 
-   { "1,,threads:1", true, {
 
-     { { "threads", 1, 1 } },
 
-   } },
 
-   { ";1,threads:1", true, {
 
-     { { "threads", 1, 1 } },
 
-   } },
 
-   { "1,threads:1;", true, {
 
-     { { "threads", 1, 1 } },
 
-   } },
 
-   { "1,threads:1,", true, {
 
-     { { "threads", 1, 1 } },
 
-   } },
 
-   { "threads:1,threads:1", true, {
 
-     { { "threads", 1, 1 }, { "threads", 1, 1 } },
 
-   } },
 
-   { "threads:1;;threads:2", true, {
 
-     { { "threads", 1, 1 } },
 
-     { { "threads", 2, 1 } },
 
-   } },
 
-   { "1,", true, {
 
-     {},
 
-   } },
 
-   { ";", true, {} },
 
-   { "", true, {} },
 
-   { ",", false, {} },
 
-   { "1,0:1", false, {} },
 
-   { "1,A:1", false, {} },
 
-   { "1,a-b:1", false, {} },
 
-   { "invalid", false, {} },
 
-   { ",1,invalid:1", false, {} },
 
-   { "1,1", false, {} },
 
-   { "-1,invalid:1", false, {} },
 
-   { "1,invalid:*", false, {} },
 
-   { "1,invalid:-1", false, {} },
 
-   { "1,invalid:-", false, {} },
 
-   { "1,invalid:ab2", false, {} },
 
-   { "1,invalid :2", false, {} },
 
-   { "1, invalid:2", false, {} },
 
-   { "1,invalid:ab", false, {} },
 
-   /* clang-format on */
 
- };
 
- static bool TestExpectedParseResult(const ExpectedParseResult& expected)
 
- {
 
-   std::vector<std::vector<cmCTestTestHandler::cmCTestTestResourceRequirement>>
 
-     result;
 
-   bool retval;
 
-   if ((retval = cmCTestTestHandler::ParseResourceGroupsProperty(
 
-          expected.String, result)) != expected.ExpectedReturnValue) {
 
-     std::cout << "ParseResourceGroupsProperty(\"" << expected.String
 
-               << "\") returned " << retval << ", should be "
 
-               << expected.ExpectedReturnValue << std::endl;
 
-     return false;
 
-   }
 
-   if (result != expected.ExpectedValue) {
 
-     std::cout << "ParseResourceGroupsProperty(\"" << expected.String
 
-               << "\") did not yield expected set of resource groups"
 
-               << std::endl;
 
-     return false;
 
-   }
 
-   return true;
 
- }
 
- int testCTestResourceGroups(int /*unused*/, char* /*unused*/[])
 
- {
 
-   int retval = 0;
 
-   for (auto const& expected : expectedResults) {
 
-     if (!TestExpectedParseResult(expected)) {
 
-       retval = 1;
 
-     }
 
-   }
 
-   return retval;
 
- }
 
 
  |