** Description changed:

- In src:rocm we have a `run-tests` script that runs the tests for all (ideally)
- packages in rocm stack. See the logic we have as of today in src:rocm
- ```
- my @pkgs = qw(
-   libhipblas3-tests
-   libhipcub-tests
-   libhipfft0-tests
-   libhiprand1-tests
-   libhipsolver1-tests
-   libhipsparse4-tests
-   libmiopen1-tests
-   librccl1-tests
-   librocblas5-tests
-   librocfft0-tests
-   librocprim-tests
-   librocrand1-tests
-   librocsolver0-tests
-   librocsparse1-tests
-   librocthrust-tests
- );
+ [ Impact ]
  
- my $result = 0;
- foreach my $pkg (@pkgs) {
-   my $test = "/usr/libexec/rocm/$pkg/run-tests";
-   if (-x $test) {
-     my $options = '';
-     print("--- Starting $pkg ---\n");
-     my $status = system("$test$options");
-     my $msg = ($status == 0) ? 'PASS' : 'FAIL';
-     print("--- Finished $pkg: $msg ---\n");
-     $result += $status;
-   } else {
-     warn("WARNING: Skipping $pkg - test binary not found at $test\n");
-   }
- }
- exit $result;
- ```
+ * It is standard in the ROCm stack for each test package to provide a 
`/usr/libexec/rocm/<package>/run-tests` entry point. The `librccl1-tests` 
package does not follow this convention.
+ As a result, when the ROCm stack's main test runner 
(`/usr/libexec/rocm/rocm-tests/run-tests` from `src:rocm`) iterates through all 
ROCm packages to execute their tests, it skips RCCL and reports:
  
- The lack of standard in test files causing us to create exceptional `if` 
blocks which
- makes things look a bit ugly in my opinion. So lets follow the standard set 
by other
- packages in the stack to make our life easier.
+ > WARNING: Skipping librccl1-tests - test binary not found at
+ /usr/libexec/rocm/librccl1-tests/run-tests
  
- See the example run of `run-tests` in bin:rocm-tests
- ```
- root@fit-mole:~# /usr/libexec/rocm/rocm-tests/run-tests
- --- Starting libhipblas3-tests ---
- --- Finished libhipblas3-tests: PASS ---
- WARNING: Skipping libhipcub-tests - test binary not found at 
/usr/libexec/rocm/libhipcub-tests/run-tests
- --- Starting libhipfft0-tests ---
- --- Finished libhipfft0-tests: PASS ---
- --- Starting libhiprand1-tests ---
- --- Finished libhiprand1-tests: PASS ---
- --- Starting libhipsolver1-tests ---
- --- Finished libhipsolver1-tests: PASS ---
- --- Starting libhipsparse4-tests ---
- --- Finished libhipsparse4-tests: PASS ---
- WARNING: Skipping libmiopen1-tests - test binary not found at 
/usr/libexec/rocm/libmiopen1-tests/run-tests
- WARNING: Skipping librccl1-tests - test binary not found at 
/usr/libexec/rocm/librccl1-tests/run-tests
- --- Starting librocblas5-tests ---
- --- Finished librocblas5-tests: PASS ---
- --- Starting librocfft0-tests ---
- --- Finished librocfft0-tests: PASS ---
- --- Starting librocprim-tests ---
- --- Finished librocprim-tests: PASS ---
- --- Starting librocrand1-tests ---
- --- Finished librocrand1-tests: PASS ---
- --- Starting librocsolver0-tests ---
- --- Finished librocsolver0-tests: PASS ---
- --- Starting librocsparse1-tests ---
- --- Finished librocsparse1-tests: PASS ---
- WARNING: Skipping librocthrust-tests - test binary not found at 
/usr/libexec/rocm/librocthrust-tests/run-tests
- --- Starting libhsa-runtime64-tests ---
- --- Finished libhsa-runtime64-tests: PASS ---
- ```
+ * The update adds the standard `run-tests` entry point to
+ `librccl1-tests`, accounting for RCCL-specific test requirements. It
+ also updates autopkgtest to use this entry point and the `rocm-test-
+ launcher` provided by `pkg-rocm-tools`, replacing the package-specific
+ `upstream-binaries` script.
+ 
+ * This change ensures RCCL tests are included in stack-wide test
+ execution, both through autopkgtest and through the ROCm stack test
+ runner, bringing `librccl1-tests` into compliance with ROCm stack
+ conventions.
+ 
+ [ Test Plan ]
+ 
+ * Reproduce the issue with the current release package.
+   - Install `librccl1-tests` and `rocm-tests` (from `src:rocm`).
+   - Confirm that `/usr/libexec/rocm/librccl1-tests/run-tests` is absent.
+   - Run `/usr/libexec/rocm/rocm-tests/run-tests`.
+   - Confirm that the output includes the warning that `librccl1-tests` is 
skipped because its `run-tests` entry point is missing (as shown in the example 
output provided).
+ 
+ * Verify the updated package directly.
+   - Install the candidate `librccl1-tests` package.
+   - Confirm that `/usr/libexec/rocm/librccl1-tests/run-tests` exists and is 
executable.
+   - Run `/usr/libexec/rocm/librccl1-tests/run-tests`.
+   - Confirm that the RCCL tests are actually executed, rather than merely 
that the wrapper exits successfully (for this a system with at lest 2 AMD 
supported GPUs is needed)
+ 
+ * Verify integration with the ROCm stack test runner.
+   - Run `/usr/libexec/rocm/rocm-tests/run-tests` (from `src:rocm`).
+   - Confirm that it now includes `librccl1-tests` in the test iteration, 
starts it and executes its tests.
+   - Confirm that the missing-entry-point warning for `librccl1-tests` no 
longer appears.
+   - Check that the other installed ROCm test packages continue to execute as 
before.
+ 
+ * Run autopkgtest for the updated source package.
+   - Run the package's autopkgtest in a GPU-enabled environment with the 
candidate packages available.
+   - Confirm that the updated test definition installs `pkg-rocm-tools` and 
invokes the packaged `run-tests` entry point.
+   - Confirm that the RCCL tests execute successfully through 
`rocm-test-launcher`.
+ 
+ * The successful test runs have been confirmed with the SRU: New
+ upstream version 7.2.4 -
+ https://bugs.launchpad.net/ubuntu/+source/rccl/+bug/2154290 bug
+ 
+ [ Where problems could occur ]
+ 
+ * The new entry point could be installed at the wrong location or
+ without executable permissions, causing the ROCm stack runner to
+ continue skipping RCCL.
+ 
+ * Incorrect handling of RCCL test requirements could prevent tests from
+ starting, omit tests, or change their execution environment.
+ 
+ * Replacing `upstream-binaries` with `rocm-test-launcher` could change
+ test discovery or failure reporting. In particular, a wrapper that
+ succeeds without executing tests, or fails to propagate test failures,
+ could produce misleading results.
+ 
+ Testing should therefore verify actual test execution and results, not
+ only the presence of the new entry point or a successful wrapper exit
+ status.
+ 
+ [ Other Info ]
+ 
+ * This update addresses LP: #2148387 and brings `librccl1-tests` into
+ compliance with the standard ROCm stack test packaging convention.
+ 
+ * The packaging changes are:
+   - d/bin/run-tests: introduce the new binary with the special rccl
+     circumstances taken in account; Drop fixed ManagedMem gtest filter
+   - d/librccl1-tests.install: add run-tests
+   - d/tests/control: update autopkgtest to run the run-tests binary
+     instead of upstream-binaries and add pkg-rocm-tools as depends
+   - d/tests/upstream-binaries: remove in favor of rocm-test-launcher
+     provided by pkg-rocm-tools
+ 
+ * The change is limited to test infrastructure; it does not change RCCL
+ library functionality. Hardware-backed validation is required to
+ demonstrate that the previously skipped tests now execute successfully.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2148387

Title:
  Missing run-tests binary to be used in rocm-tests

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rccl/+bug/2148387/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to