From 5bf258c5bbafaa7cf20bc44ccf2a98b7697ed56b Mon Sep 17 00:00:00 2001 From: Jonathan Lifflander Date: Tue, 11 Jan 2022 16:20:59 -0800 Subject: [PATCH] #1654: tests: split up LB parameterization to reduce time per test instance --- tests/unit/collection/test_lb.extended.cc | 49 +++++++++++++++-------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/tests/unit/collection/test_lb.extended.cc b/tests/unit/collection/test_lb.extended.cc index 2fe20948bf..e6a56ab857 100644 --- a/tests/unit/collection/test_lb.extended.cc +++ b/tests/unit/collection/test_lb.extended.cc @@ -84,13 +84,10 @@ void colHandler(MyMsg*, MyCol* col) { } } -struct TestLoadBalancer : TestParallelHarnessParam { - void runTest(); -}; - -void TestLoadBalancer::runTest() { - auto lb_name = GetParam(); +struct TestLoadBalancerOther : TestParallelHarnessParam { }; +struct TestLoadBalancerGreedy : TestParallelHarnessParam { }; +void runTest(std::string lb_name) { vt::theConfig()->vt_lb = true; vt::theConfig()->vt_lb_name = lb_name; if (vt::theContext()->getNode() == 0) { @@ -133,18 +130,29 @@ void TestLoadBalancer::runTest() { return; } -TEST_P(TestLoadBalancer, test_load_balancer_1) { - runTest(); +TEST_P(TestLoadBalancerOther, test_load_balancer_other_1) { + runTest(GetParam()); +} + +TEST_P(TestLoadBalancerOther, test_load_balancer_other_keep_last_elm) { + vt::theConfig()->vt_lb_keep_last_elm = true; + runTest(GetParam()); +} + +TEST_P(TestLoadBalancerGreedy, test_load_balancer_greedy_2) { + runTest(GetParam()); } -TEST_P(TestLoadBalancer, test_load_balancer_keep_last_elm) { +TEST_P(TestLoadBalancerGreedy, test_load_balancer_greedy_keep_last_elm) { vt::theConfig()->vt_lb_keep_last_elm = true; - runTest(); + runTest(GetParam()); } struct MyCol2 : vt::Collection {}; -TEST_P(TestLoadBalancer, test_load_balancer_no_work) { +using TestLoadBalancerNoWork = TestParallelHarness; + +TEST_F(TestLoadBalancerNoWork, test_load_balancer_no_work) { auto const num_nodes = theContext()->getNumNodes(); auto const range = Index1D(num_nodes * 8); theCollection()->constructCollective( @@ -164,21 +172,28 @@ TEST_P(TestLoadBalancer, test_load_balancer_no_work) { } } -auto balancers = ::testing::Values( +auto balancers_other = ::testing::Values( "RandomLB", "RotateLB", "HierarchicalLB", - "TemperedLB", - "GreedyLB:strategy=scatter", - "GreedyLB:strategy=pt2pt", - "GreedyLB:strategy=bcast" + "TemperedLB" # if vt_check_enabled(zoltan) , "ZoltanLB" # endif ); +auto balancers_greedy = ::testing::Values( + "GreedyLB:strategy=scatter", + "GreedyLB:strategy=pt2pt", + "GreedyLB:strategy=bcast" +); + +INSTANTIATE_TEST_SUITE_P( + LoadBalancerExplodeOther, TestLoadBalancerOther, balancers_other +); + INSTANTIATE_TEST_SUITE_P( - LoadBalancerExplode, TestLoadBalancer, balancers + LoadBalancerExplodeGreedy, TestLoadBalancerGreedy, balancers_greedy ); struct TestParallelHarnessWithStatsDumping : TestParallelHarnessParam {