diff --git a/test/gtest/uct/test_md.cc b/test/gtest/uct/test_md.cc index 421176940c7..4348c4bc737 100644 --- a/test/gtest/uct/test_md.cc +++ b/test/gtest/uct/test_md.cc @@ -153,11 +153,14 @@ void test_md::test_reg_mem(unsigned access_mask, std::vector test_md::enum_mds(const std::string& cmpt_name) { std::vector md_resources = enum_md_resources(); + static const char *str = getenv("GTEST_UCT_MD_NAME"); + std::string md_name = (str != NULL) ? str : ""; std::vector result; for (std::vector::iterator iter = md_resources.begin(); iter != md_resources.end(); ++iter) { - if (iter->cmpt_attr.name == cmpt_name) { + if ((iter->cmpt_attr.name == cmpt_name) && + ((md_name == "") || (md_name == iter->rsc_desc.md_name))) { result.push_back(test_md_param()); result.back().component = iter->cmpt; result.back().md_name = iter->rsc_desc.md_name; diff --git a/test/gtest/uct/uct_test.cc b/test/gtest/uct/uct_test.cc index 35cc5b01eb0..e8204cae7be 100644 --- a/test/gtest/uct/uct_test.cc +++ b/test/gtest/uct/uct_test.cc @@ -385,6 +385,8 @@ void uct_test::set_cm_resources(std::vector& all_resources) std::vector uct_test::enum_resources(const std::string& tl_name) { static bool tcp_fastest_dev = (getenv("GTEST_UCT_TCP_FASTEST_DEV") != NULL); + static const char *str = getenv("GTEST_UCT_RSC_NAME"); + std::string dev_name = (str != NULL) ? str : ""; static std::vector all_resources; if (all_resources.empty()) { @@ -429,6 +431,11 @@ std::vector uct_test::enum_resources(const std::string& tl_name resource_speed tcp_fastest_rsc; for (unsigned j = 0; j < num_tl_resources; ++j) { + if ((dev_name != "") && + (tl_resources[j].dev_name != dev_name)) { + continue; + } + if (tcp_fastest_dev && (std::string("tcp") == tl_resources[j].tl_name)) { resource_speed rsc(iter->cmpt, iter->cmpt_attr, worker, md, @@ -461,6 +468,10 @@ std::vector uct_test::enum_resources(const std::string& tl_name ucs_async_context_destroy(async); } + if (all_resources.size() == 0) { + UCS_TEST_ABORT("Could not add any resource"); + } + return filter_resources(all_resources, resource::is_equal_tl_name, tl_name); }