diff --git a/src/tests/ftest/daos_racer/multi.py b/src/tests/ftest/daos_racer/multi.py index 27a503d1b3a..5017399dbbb 100644 --- a/src/tests/ftest/daos_racer/multi.py +++ b/src/tests/ftest/daos_racer/multi.py @@ -1,11 +1,14 @@ """ (C) Copyright 2020-2023 Intel Corporation. + (C) Copyright 2026 Hewlett Packard Enterprise Development LP SPDX-License-Identifier: BSD-2-Clause-Patent """ from apricot import TestWithServers from daos_racer_utils import DaosRacerCommand +from exception_utils import CommandFailure +from job_manager_utils import get_job_manager class DaosRacerMultiTest(TestWithServers): @@ -33,10 +36,26 @@ def test_daos_racer_multi(self): :avocado: tags=io,daos_racer :avocado: tags=DaosRacerMultiTest,test_daos_racer_multi """ - dmg = self.get_dmg_command() - self.assertGreater( - len(self.hostlist_clients), 0, - "This test requires one client: {}".format(self.hostlist_clients)) - daos_racer = DaosRacerCommand(self.bin, self.hostlist_clients[0], dmg) + self.assertGreater(len(self.hostlist_clients), 0, "This test requires at least one client") + + # Create the daos_racer command + daos_racer = DaosRacerCommand(self.bin, self.hostlist_clients, self.get_dmg_command()) daos_racer.get_params(self) - daos_racer.run() + + # Create the mpi command + job_manager = get_job_manager(self) + job_manager.assign_hosts(self.hostlist_clients, self.workdir, None) + job_manager.assign_processes(ppn=self.params.get('ppn', daos_racer.namespace)) + job_manager.assign_environment(daos_racer.env) + job_manager.job = daos_racer + job_manager.check_results_list = ["", "No MPI found"] + job_manager.timeout = daos_racer.daos_racer_timeout.value + + self.log_step("Run daos_racer") + try: + job_manager.run() + + except CommandFailure as error: + self.fail(f"daos_racer failed: {error}") + + self.log_step("Test passed!") diff --git a/src/tests/ftest/daos_racer/multi.yaml b/src/tests/ftest/daos_racer/multi.yaml index 7a41c455a61..5a320cedebc 100644 --- a/src/tests/ftest/daos_racer/multi.yaml +++ b/src/tests/ftest/daos_racer/multi.yaml @@ -21,6 +21,12 @@ server_config: log_mask: ERR storage: auto +job_manager: + class_name: Orterun + mpi_type: openmpi + manager_timeout: 1000 + daos_racer: + ppn: 4 runtime: 7200 daos_racer_timeout: 10080 diff --git a/src/tests/ftest/daos_racer/parallel.py b/src/tests/ftest/daos_racer/parallel.py deleted file mode 100755 index 1d5d8f4987a..00000000000 --- a/src/tests/ftest/daos_racer/parallel.py +++ /dev/null @@ -1,56 +0,0 @@ -""" -(C) Copyright 2021-2022 Intel Corporation. -(C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP - -SPDX-License-Identifier: BSD-2-Clause-Patent -""" - -from apricot import TestWithServers -from daos_racer_utils import DaosRacerCommand -from exception_utils import CommandFailure -from job_manager_utils import get_job_manager - - -class DaosRacerParallelTest(TestWithServers): - """Test cases that utilize the daos_racer tool. - - :avocado: recursive - """ - - def test_daos_racer_parallel(self): - """JIRA-8445: multi-client daos_racer/consistency checker test. - - Test Description: - The daos_racer test tool generates a bunch of simultaneous, conflicting I/O requests. It - will test both replicated objects and EC objects and verify the data consistency. The - duration will depend on parameters in test yaml configuration file. - - Use Cases: - Running simultaneous, conflicting I/O requests. - - :avocado: tags=all,full_regression - :avocado: tags=hw,large - :avocado: tags=io,daos_racer - :avocado: tags=DaosRacerParallelTest,test_daos_racer_parallel - """ - # Create the daos_racer command - daos_racer = DaosRacerCommand(self.bin, self.hostlist_clients, self.get_dmg_command()) - daos_racer.get_params(self) - - # Create the mpi command - job_manager = get_job_manager(self) - job_manager.assign_hosts(self.hostlist_clients, self.workdir, None) - job_manager.assign_processes(ppn=self.params.get('ppn', daos_racer.namespace)) - job_manager.assign_environment(daos_racer.env) - job_manager.job = daos_racer - job_manager.check_results_list = ["", "No MPI found"] - job_manager.timeout = daos_racer.daos_racer_timeout.value - - self.log_step("Run daos_racer with multiple clients") - try: - job_manager.run() - - except CommandFailure as error: - self.fail(f"daos_racer failed: {error}") - - self.log_step("Test passed!") diff --git a/src/tests/ftest/daos_racer/parallel.yaml b/src/tests/ftest/daos_racer/parallel.yaml deleted file mode 100644 index 0fea739ae8d..00000000000 --- a/src/tests/ftest/daos_racer/parallel.yaml +++ /dev/null @@ -1,32 +0,0 @@ -hosts: - test_servers: 4 - test_clients: 4 - -timeout: 1800 - -server_config: - name: daos_server - engines_per_host: 2 - engines: - 0: - pinned_numa_node: 0 - nr_xs_helpers: 1 - log_file: daos_server0.log - log_mask: "ERR" - storage: auto - 1: - pinned_numa_node: 1 - nr_xs_helpers: 1 - log_file: daos_server1.log - log_mask: "ERR" - storage: auto - -job_manager: - class_name: Orterun - mpi_type: openmpi - manager_timeout: 1000 - -daos_racer: - ppn: 1 - runtime: 600 - daos_racer_timeout: 900