Ejemplo n.º 1
0
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))
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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")