class CartNoPmixOneNodeTest(Test): """ Runs basic CaRT no_pmix tests :avocado: tags=all,no_pmix,one_node """ def setUp(self): """ Test setup """ print("Running setup\n") self.utils = CartUtils() self.env = self.utils.get_env(self) crt_phy_addr = self.params.get("CRT_PHY_ADDR_STR", '/run/defaultENV/') ofi_interface = self.params.get("OFI_INTERFACE", '/run/defaultENV/') ofi_ctx_num = self.params.get("CRT_CTX_NUM", '/run/defaultENV/') ofi_share_addr = self.params.get("CRT_CTX_SHARE_ADDR", '/run/defaultENV/') self.pass_env = { "CRT_PHY_ADDR_STR": crt_phy_addr, "OFI_INTERFACE": ofi_interface, "CRT_CTX_SHARE_ADDR": ofi_share_addr, "CRT_CTX_NUM": ofi_ctx_num } def tearDown(self): """ Test tear down """ print("Run TearDown\n") def test_cart_no_pmix(self): """ Test CaRT NoPmix :avocado: tags=all,no_pmix,one_node """ cmd = self.params.get("tst_bin", '/run/tests/*/') self.utils.print("\nTest cmd : %s\n" % cmd) test_env = self.pass_env p = subprocess.Popen([cmd], env=test_env, stdout=subprocess.PIPE) rc = self.utils.wait_process(p, 10) if rc != 0: self.utils.print( "Error waiting for process. returning {}".format(rc)) self.fail("Test failed.\n") self.utils.print("Finished waiting for {}".format(p))
class CartNoPmixOneNodeTest(TestWithoutServers): """ Runs basic CaRT no_pmix tests :avocado: recursive """ def setUp(self): """ Test setup """ print("Running setup\n") self.utils = CartUtils() self.env = self.utils.get_env(self) crt_phy_addr = self.params.get("CRT_PHY_ADDR_STR", '/run/defaultENV/') ofi_interface = self.params.get("OFI_INTERFACE", '/run/defaultENV/') ofi_ctx_num = self.params.get("CRT_CTX_NUM", '/run/defaultENV/') ofi_share_addr = self.params.get("CRT_CTX_SHARE_ADDR", '/run/defaultENV/') self.pass_env = { "CRT_PHY_ADDR_STR": crt_phy_addr, "OFI_INTERFACE": ofi_interface, "CRT_CTX_SHARE_ADDR": ofi_share_addr, "CRT_CTX_NUM": ofi_ctx_num } def tearDown(self): """ Tear down """ self.report_timeout() self._teardown_errors.extend(self.utils.cleanup_processes()) super(CartNoPmixOneNodeTest, self).tearDown() def test_cart_no_pmix(self): """ Test CaRT NoPmix :avocado: tags=all,cart,pr,daily_regression,no_pmix,one_node """ cmd = self.params.get("tst_bin", '/run/tests/*/') self.utils.print("\nTest cmd : %s\n" % cmd) test_env = self.pass_env p = subprocess.Popen([cmd], env=test_env, stdout=subprocess.PIPE) rc = self.utils.wait_process(p, 30) if rc != 0: self.utils.print("Error waiting for process.") self.utils.print("returning {}".format(rc)) self.fail("Test failed.\n") self.utils.print("Finished waiting for {}".format(p))
class CartSelfThreeNodeTest(TestWithoutServers): """ Runs basic CaRT self test :avocado: recursive """ def setUp(self): """ Test setup """ print("Running setup\n") self.utils = CartUtils() self.env = self.utils.get_env(self) def tearDown(self): """ Tear down """ self.report_timeout() self._teardown_errors.extend(self.utils.cleanup_processes()) super(CartSelfThreeNodeTest, self).tearDown() def test_cart_selftest(self): """ Test CaRT Self Test :avocado: tags=all,cart,pr,daily_regression,selftest,three_node """ srvcmd = self.utils.build_cmd(self, self.env, "test_servers") try: srv_rtn = self.utils.launch_cmd_bg(self, srvcmd) # pylint: disable=broad-except except Exception as e: self.utils.print("Exception in launching server : {}".format(e)) self.fail("Test failed.\n") # Verify the server is still running. if not self.utils.check_process(srv_rtn): procrtn = self.utils.stop_process(srv_rtn) self.fail("Server did not launch, return code %s" \ % procrtn) for index in range(3): clicmd = self.utils.build_cmd( self, self.env, "test_clients", index=index) self.utils.launch_test(self, clicmd, srv_rtn) # Give few seconds for servers to fully shut down before exiting # from this test. if not self.utils.wait_process(srv_rtn, 5): self.utils.stop_process(srv_rtn)
class CartNoPmixOneNodeTest(Test): """ Runs basic CaRT no_pmix tests on one-node :avocado: tags=all,no_pmix,one_node """ def setUp(self): """ Test setup """ print("Running setup\n") self.utils = CartUtils() self.env = self.utils.get_env(self) crt_phy_addr = self.params.get("CRT_PHY_ADDR_STR", '/run/defaultENV/') ofi_interface = self.params.get("OFI_INTERFACE", '/run/defaultENV/') ofi_ctx_num = self.params.get("CRT_CTX_NUM", '/run/defaultENV/') ofi_share_addr = self.params.get("CRT_CTX_SHARE_ADDR", '/run/defaultENV/') self.pass_env = {"CRT_PHY_ADDR_STR": crt_phy_addr, "OFI_INTERFACE": ofi_interface, "CRT_CTX_SHARE_ADDR": ofi_share_addr, "CRT_CTX_NUM": ofi_ctx_num} def tearDown(self): """ Test tear down """ print("Run TearDown\n") def test_cart_no_pmix(self): """ Test CaRT NoPmix :avocado: tags=all,no_pmix,one_node """ test_bin = self.params.get("tst_bin", '/run/tests/*/') self.utils.print("\nTest cmd : %s\n" % test_bin) ranks = [1, 2, 3, 10, 4] master_rank = 10 for x in ranks: tmp_file = "/tmp/no_pmix_rank{}.uri_info".format(x) if os.path.exists(tmp_file): os.remove(tmp_file) process_other = [] arg_master = ",".join(map(str, ranks)) test_env = self.pass_env p1 = subprocess.Popen([test_bin, '{}'.format(master_rank), '-m {}'.format(arg_master)], env=test_env, stdout=subprocess.PIPE) for rank in ranks: if rank is master_rank: continue p = subprocess.Popen([test_bin, '{}'.format(rank)], env=test_env, stdout=subprocess.PIPE) process_other.append(p) for x in process_other: rc = self.utils.wait_process(x, 10) if rc != 0: self.utils.print("Error waiting for process. returning {}".format(rc)) return rc self.utils.print("Finished waiting for {}".format(x)) rc = self.utils.wait_process(p1, 10) if rc != 0: self.utils.print("error waiting for master process {}".format(rc)) return rc self.utils.print("everything finished successfully")