Skip to content

fix(failure_code): use fflags CSR instead of fcsr in fflags mismatch reporter#1

Open
dev-aditya-hub wants to merge 51 commits into
act4from
fix/fflags-fcsr-debug-report
Open

fix(failure_code): use fflags CSR instead of fcsr in fflags mismatch reporter#1
dev-aditya-hub wants to merge 51 commits into
act4from
fix/fflags-fcsr-debug-report

Conversation

@dev-aditya-hub

@dev-aditya-hub dev-aditya-hub commented May 2, 2026

Copy link
Copy Markdown
Owner

Summary

While going through the failure reporting path for floating-point tests, I noticed that failedtest_saveresults_fflags was reading fcsr to capture the bad value — but the reference signature is built using csrr fflags, which gives only the lower 5 bits (NV, DZ, OF, UF, NX). fcsr includes frm[2:0] in bits 7:5 on top of that.

So whenever a test runs with a non-default rounding mode (RTZ, RDN, RUP, RMM), the reported bad value has frm bits set that the expected value doesn't, making the diff look like a frm discrepancy even when the actual problem is just an fflags mismatch. In the worst case this causes someone to write it off as a test infra issue rather than a real hardware defect.

The fix is a one-liner — swap fcsr for fflags in the re-read so the reporting path matches how the signature was written.

Root Cause

# Before (wrong)
csrr x6, fcsr      # reads {frm[2:0], fflags[4:0]} — up to 8 bits

# After (correct)
csrr x6, fflags    # reads fflags[4:0] only — matches signature format

The comparison in RVTEST_SIGUPD_FFLAGS was already doing the right thing (csrr _LINK_REG, fflags), so PASS/FAIL determination is unaffected. Only the post-failure debug output was wrong.

Impact

Affects all F/D/Q/Zfh tests that:

  1. Set a non-default rounding mode (frm != 0) via fsrm or per-instruction rm field, and
  2. Hit an fflags mismatch during the test run

Tests with default rounding (frm = 0) were silently fine since fcsr == fflags in that case, which is why this went unnoticed.

Test Plan

  • Run an fflags-checking test with frm set to RTZ and verify bad value now shows only the 5-bit fflags field
  • Confirm none() / pass cases are unaffected
  • CI green on rv32/rv64 across F, D, Q configurations

jordancarlin and others added 30 commits April 26, 2026 10:07
…CLI (riscv#1363)

Vector testgen now runs in 9 seconds (close to two minutes before) and
uses the same CLI output progress bar as the other generators.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Ben Bitdiddle <ben_bitdiddle@wally.edu>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
```
 RVCP COVERAGE COMPLETE: sail-rv64-max
  1 covergroups all with 100% coverage

 RVCP COVERAGE COMPLETE: sail-rv32-max
  1 covergroups all with 100% coverage
```

---------

Signed-off-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
Co-authored-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
Signed-off-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
Signed-off-by: Jordan Carlin <jordanmcarlin@gmail.com>
Co-authored-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
Co-authored-by: Jordan Carlin <jordanmcarlin@gmail.com>
Use `prek` instead of `pre-commit`. `prek` has better performance and
should also avoid the submodule issues we were running into.
Signed-off-by: jacassidy <47946874+jacassidy@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…iscv#1347)

Signed-off-by: ayesha <139478896+ayeshaanwaar05@users.noreply.github.com>
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - "before 6am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…cv#1376)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[renovatebot/pre-commit-hooks](https://redirect.github.com/renovatebot/pre-commit-hooks)
| repository | minor | `43.132.1` → `43.141.2` |

Note: The `pre-commit` manager in Renovate is not supported by the
`pre-commit` maintainers or community. Please do not report any problems
there, instead [create a Discussion in the Renovate
repository](https://redirect.github.com/renovatebot/renovate/discussions/new)
if you have any questions.

---

### Release Notes

<details>
<summary>renovatebot/pre-commit-hooks
(renovatebot/pre-commit-hooks)</summary>

###
[`v43.141.2`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.141.2)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.141.1...43.141.2)

See <https://github.com/renovatebot/renovate/releases/tag/43.141.2> for
more changes

###
[`v43.141.1`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.141.1)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.141.0...43.141.1)

See <https://github.com/renovatebot/renovate/releases/tag/43.141.1> for
more changes

###
[`v43.141.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.141.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.140.0...43.141.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.141.0> for
more changes

###
[`v43.140.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.140.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.8...43.140.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.140.0> for
more changes

###
[`v43.139.8`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.8)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.7...43.139.8)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.8> for
more changes

###
[`v43.139.7`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.7)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.6...43.139.7)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.7> for
more changes

###
[`v43.139.6`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.6)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.5...43.139.6)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.6> for
more changes

###
[`v43.139.5`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.5)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.4...43.139.5)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.5> for
more changes

###
[`v43.139.4`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.4)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.2...43.139.4)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.4> for
more changes

###
[`v43.139.2`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.2)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.1...43.139.2)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.2> for
more changes

###
[`v43.139.1`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.1)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.139.0...43.139.1)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.1> for
more changes

###
[`v43.139.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.139.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.138.3...43.139.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.139.0> for
more changes

###
[`v43.138.3`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.138.3)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.138.2...43.138.3)

See <https://github.com/renovatebot/renovate/releases/tag/43.138.3> for
more changes

###
[`v43.138.2`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.138.2)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.138.1...43.138.2)

See <https://github.com/renovatebot/renovate/releases/tag/43.138.2> for
more changes

###
[`v43.138.1`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.138.1)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.138.0...43.138.1)

See <https://github.com/renovatebot/renovate/releases/tag/43.138.1> for
more changes

###
[`v43.138.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.138.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.137.0...43.138.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.138.0> for
more changes

###
[`v43.137.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.137.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.136.3...43.137.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.137.0> for
more changes

###
[`v43.136.3`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.136.3)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.136.2...43.136.3)

See <https://github.com/renovatebot/renovate/releases/tag/43.136.3> for
more changes

###
[`v43.136.2`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.136.2)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.136.1...43.136.2)

See <https://github.com/renovatebot/renovate/releases/tag/43.136.2> for
more changes

###
[`v43.136.1`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.136.1)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.136.0...43.136.1)

See <https://github.com/renovatebot/renovate/releases/tag/43.136.1> for
more changes

###
[`v43.136.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.136.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.135.0...43.136.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.136.0> for
more changes

###
[`v43.135.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.135.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.134.1...43.135.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.135.0> for
more changes

###
[`v43.134.1`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.134.1)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.133.0...43.134.1)

See <https://github.com/renovatebot/renovate/releases/tag/43.134.1> for
more changes

###
[`v43.133.0`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.133.0)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.132.3...43.133.0)

See <https://github.com/renovatebot/renovate/releases/tag/43.133.0> for
more changes

###
[`v43.132.3`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.132.3)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.132.2...43.132.3)

See <https://github.com/renovatebot/renovate/releases/tag/43.132.3> for
more changes

###
[`v43.132.2`](https://redirect.github.com/renovatebot/pre-commit-hooks/releases/tag/43.132.2)

[Compare
Source](https://redirect.github.com/renovatebot/pre-commit-hooks/compare/43.132.1...43.132.2)

See <https://github.com/renovatebot/renovate/releases/tag/43.132.2> for
more changes

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - "before 6am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pyright](https://redirect.github.com/RobertCraigie/pyright-python) |
`==1.1.408` → `==1.1.409` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/pyright/1.1.409?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pyright/1.1.408/1.1.409?slim=true)
|

---

### Release Notes

<details>
<summary>RobertCraigie/pyright-python (pyright)</summary>

###
[`v1.1.409`](https://redirect.github.com/RobertCraigie/pyright-python/compare/v1.1.408...v1.1.409)

[Compare
Source](https://redirect.github.com/RobertCraigie/pyright-python/compare/v1.1.408...v1.1.409)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - "before 6am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Jordan Carlin <jordanmcarlin@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…res in CI (riscv#1379)

`bundle install` was failing intermittently in CI due to transient
RubyGems.org network errors, requiring manual restarts.

## Changes

- **`framework/src/act/parse_udb_config.py`**,
**`generators/ctp/generate_udb_csv.py`**,
**`generators/ctp/generate_param_table.py`**: Wrap `bundle install` in a
retry loop — up to 3 attempts with linear backoff (10s, 20s) before
failing.

```python
max_attempts = 3
for attempt in range(1, max_attempts + 1):
    try:
        subprocess.run(["bundle", "install"], check=True, cwd=gemfile.parent)
        break
    except subprocess.CalledProcessError as e:
        if attempt == max_attempts:
            raise RuntimeError("'bundle install' failed. Check Ruby and bundler installation.") from e
        backoff = attempt * 10
        print(f"'bundle install' attempt {attempt} failed. Retrying in {backoff}s...")
        time.sleep(backoff)
```

The fast path (`bundle check` succeeds → gems already installed) is
unaffected.

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jordancarlin <25440394+jordancarlin@users.noreply.github.com>
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - "before 6am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…scv#1366)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[riscv-collab/riscv-gnu-toolchain](https://redirect.github.com/riscv-collab/riscv-gnu-toolchain)
| patch | `2026.04.05` → `2026.04.26` |

---

### Release Notes

<details>
<summary>riscv-collab/riscv-gnu-toolchain
(riscv-collab/riscv-gnu-toolchain)</summary>

###
[`v2026.04.26`](https://redirect.github.com/riscv-collab/riscv-gnu-toolchain/releases/tag/2026.04.26):
Nightly: April 26, 2026

[Compare
Source](https://redirect.github.com/riscv-collab/riscv-gnu-toolchain/compare/2026.04.05...2026.04.26)

**Automated Nightly Release**
2026.04.26-nightly

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [uv](https://redirect.github.com/astral-sh/uv) | patch | `0.11.7` →
`0.11.8` |

---

### Release Notes

<details>
<summary>astral-sh/uv (uv)</summary>

###
[`v0.11.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0118)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.11.7...0.11.8)

Released on 2026-04-27.

##### Enhancements

- Add `--python-downloads-json-url` to `python pin`
([#&#8203;19092](https://redirect.github.com/astral-sh/uv/pull/19092))
- Fetch uv from Astral mirror during self-update
([#&#8203;18682](https://redirect.github.com/astral-sh/uv/pull/18682))
- Support `pip uninstall -y`
([#&#8203;19082](https://redirect.github.com/astral-sh/uv/pull/19082))
- Add `UV_PYTHON_NO_REGISTRY`
([#&#8203;19035](https://redirect.github.com/astral-sh/uv/pull/19035))
- Allow `exclude-newer` to be missing from the lockfile when
`exclude-newer-span` is present
([#&#8203;19024](https://redirect.github.com/astral-sh/uv/pull/19024))
- Only show the version number in `uv self version --short`
([#&#8203;19019](https://redirect.github.com/astral-sh/uv/pull/19019))
- Silence warnings on empty `SSL_CERT_DIR` directory
([#&#8203;19018](https://redirect.github.com/astral-sh/uv/pull/19018))
- Use a sentinel timestamp for relative `exclude-newer` and
`exclude-newer-package` values in lockfiles
([#&#8203;19022](https://redirect.github.com/astral-sh/uv/pull/19022),
[#&#8203;19101](https://redirect.github.com/astral-sh/uv/pull/19101))

##### Configuration

- Add an environment variable for `UV_NO_PROJECT`
([#&#8203;19052](https://redirect.github.com/astral-sh/uv/pull/19052))
- Expose `UV_PYTHON_SEARCH_PATH` for Python discovery `PATH` overrides
([#&#8203;19034](https://redirect.github.com/astral-sh/uv/pull/19034))

##### Bug fixes

- Add `rust-toolchain.toml` to uv-build sdist
([#&#8203;19131](https://redirect.github.com/astral-sh/uv/pull/19131))
- Ensure uv invocations of git do not inherit repository location
environment variables
([#&#8203;19088](https://redirect.github.com/astral-sh/uv/pull/19088))
- Redact pre-signed upload URLs in verbose output
([#&#8203;19146](https://redirect.github.com/astral-sh/uv/pull/19146))
- Handle transitive URL dependencies in PEP 517 build requirements
([#&#8203;19076](https://redirect.github.com/astral-sh/uv/pull/19076),
[#&#8203;19086](https://redirect.github.com/astral-sh/uv/pull/19086))
- Support `uv lock` on a `pyproject.toml` that only contains
dependency-groups
([#&#8203;19087](https://redirect.github.com/astral-sh/uv/pull/19087))
- Disable transparent Python upgrades in projects when a patch version
is requested via `.python-version`
([#&#8203;19102](https://redirect.github.com/astral-sh/uv/pull/19102))
- Fix Python variant tagging in the Windows registry
([#&#8203;19012](https://redirect.github.com/astral-sh/uv/pull/19012))
- Use a single codepath for extracting a .tar.zst wheel, disallowing
external symlinks
([#&#8203;19144](https://redirect.github.com/astral-sh/uv/pull/19144))

##### Documentation

- Bump astral-sh/setup-uv version in docs
([#&#8203;19030](https://redirect.github.com/astral-sh/uv/pull/19030))
- Update PyTorch documentation for PyTorch 2.11
([#&#8203;19095](https://redirect.github.com/astral-sh/uv/pull/19095))
- Remove deprecated license classifiers from uv-build and add Python
3.14 classifier
([#&#8203;19130](https://redirect.github.com/astral-sh/uv/pull/19130))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docs/docs-resources](https://redirect.github.com/riscv/docs-resources)
([changelog](https://redirect.github.com/riscv/docs-resources/compare/0904c8ad991d189c882a922563060a7806c78f55..47257dedd5b7de4aecc88cdaa23d26efbcc546cb))
| digest | `0904c8a` → `47257de` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Added the tests for PMPU, PMPS, PMPF, PMPZalrsc, PMPZicbo, PMPZaamo.
All the pmp regions have now been moved inside the data region, under
the test case strings.
Tests from draft PR
[riscv#699](riscv#699) have been
added as well.

---------

Signed-off-by: Jordan Carlin <jordanmcarlin@gmail.com>
Signed-off-by: Hamza <humza.ali1821@gmail.com>
Signed-off-by: Umer Shahid <umer@riscv.org>
Co-authored-by: Umer Shahid <umer.shahid@10xengineers.ai>
Co-authored-by: Jordan Carlin <jordanmcarlin@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Muhammad Abdullah <mrabdullahmib381@gmail.com>
Co-authored-by: Umer Shahid <umer@riscv.org>
Co-authored-by: David Harris <74973295+davidharrishmc@users.noreply.github.com>
@jordancarlin 3 tests were failing on spike due to a configuration
issue.
The reason for the error reporting being stuck in a loop was due to a
bug that got introduced in PR riscv#1264.
```
        mv x7, a0           # move xepc
        LA(a0, ascii_buffer)
        call rvmodel_io_write_str
```
x7 gets overwritten by `rvmodel_io_write_str`, therefore instead of
trying to read instr at xepc it was reading from some random address
leading to a loop of faults.
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[astral-sh/uv-pre-commit](https://redirect.github.com/astral-sh/uv-pre-commit)
| repository | patch | `0.11.7` → `0.11.8` |

Note: The `pre-commit` manager in Renovate is not supported by the
`pre-commit` maintainers or community. Please do not report any problems
there, instead [create a Discussion in the Renovate
repository](https://redirect.github.com/renovatebot/renovate/discussions/new)
if you have any questions.

---

### Release Notes

<details>
<summary>astral-sh/uv-pre-commit (astral-sh/uv-pre-commit)</summary>

###
[`v0.11.8`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.11.8)

[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.11.7...0.11.8)

See: <https://github.com/astral-sh/uv/releases/tag/0.11.8>

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| riscv/riscv-isa-sim | digest | `dbb30bb` → `632777d` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Failure code now compliant with different SEW and XLEN, structure
shouldn't change much so some reviews on structure/code style would be
helpful.

Still fixing details like how the mask-producing instruction reports
should look like (each element is one bit).
Realized that failure code now uses call instead of RVTEST_WRITE_TO_STR,
will fix that.
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| tenstorrent/whisper | digest | `2e43688` → `4c834ca` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Manmryt and others added 21 commits April 28, 2026 16:55
- Add note clarifying /path/to/install placeholder in Sail install
command
- Fix missing space in no-sudo alternative command that caused tar to
treat directory and strip-components as a single argument, resulting in
sail_riscv_sim not being found after installation

Fixes riscv#1335
Closes riscv#1350
…#1391)

There are still some TODOs left in the yaml file as the current
ExceptionsSm does not have coverpoints that test some of the norm rules
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| openhwgroup/cvw | digest | `fa19687` → `62c78d1` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
It was causing permission issues and we already have a banner at the top
that says they are generated. They are also checked in CI to make sure
they haven't been changed.
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [j178/prek-action](https://redirect.github.com/j178/prek-action) |
action | patch | `v2.0.2` → `v2.0.3` |

---

### Release Notes

<details>
<summary>j178/prek-action (j178/prek-action)</summary>

###
[`v2.0.3`](https://redirect.github.com/j178/prek-action/releases/tag/v2.0.3)

[Compare
Source](https://redirect.github.com/j178/prek-action/compare/v2.0.2...v2.0.3)

#### What's Changed

- Use single action entrypoint by
[@&#8203;j178](https://redirect.github.com/j178) in
[#&#8203;128](https://redirect.github.com/j178/prek-action/pull/128)
- Update known versions for prek 0.3.10 by
[@&#8203;j178](https://redirect.github.com/j178) in
[#&#8203;123](https://redirect.github.com/j178/prek-action/pull/123)
- Update known versions for prek 0.3.11 by
[@&#8203;j178](https://redirect.github.com/j178) in
[#&#8203;124](https://redirect.github.com/j178/prek-action/pull/124)

**Full Changelog**:
<j178/prek-action@v2...v2.0.3>

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Start of PR to boot to M-mode.

Will follow up with S-mode where applicable and then continue to U-mode
if it exists.

* Enhanced Zicsr tests to pick most suitable CSR
* Improved naming of tests/env files
* Eliminated m/s/htrap_routine
* Add U-mode and CONFORMING_SM_MODE to profiles where applicable
* Cleaned up required_extensions lists
* Deleted FP_TEST, PRIV_TEST 
* Reordered Makefile to put most interesting stuff first.
* Cleanup many places

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [prek](https://redirect.github.com/j178/prek) | patch | `0.3.10` →
`0.3.11` |

---

### Release Notes

<details>
<summary>j178/prek (prek)</summary>

###
[`v0.3.11`](https://redirect.github.com/j178/prek/blob/HEAD/CHANGELOG.md#0311)

[Compare
Source](https://redirect.github.com/j178/prek/compare/v0.3.10...v0.3.11)

Released on 2026-04-27.

##### Highlights

Hook entries now have an explicit `shell` option for shell snippets. Set
`shell: sh`, `bash`, `pwsh`, `powershell`, or `cmd` when an entry should
be
evaluated by that shell; leaving it unset keeps prek's direct argv
execution.

`prek auto-update` can now filter tag candidates before choosing an
update.
Both options take glob patterns: use `--include-tag` to only consider
matching
tag names, and `--exclude-tag` to skip matching tags such as moving tags
or
prereleases.

##### Enhancements

- Add `auto-update --exclude-repo <repo>` to skip repos
([#&#8203;1983](https://redirect.github.com/j178/prek/pull/1983))
- Add `auto-update --exit-code` to exit with non-zero on updates
([#&#8203;2002](https://redirect.github.com/j178/prek/pull/2002))
- Add `auto-update --include-tag <pattern>`/`--exclude-tag <pattern>` to
filter tags
([#&#8203;1984](https://redirect.github.com/j178/prek/pull/1984))
- Adds an explicit `shell` hook option for entries that should run as
shell source
([#&#8203;2004](https://redirect.github.com/j178/prek/pull/2004))
- Make `--hook-dir` optional for hook-impl
([#&#8203;1989](https://redirect.github.com/j178/prek/pull/1989))
- Skip shim warning when `--script-version` is missing
([#&#8203;1990](https://redirect.github.com/j178/prek/pull/1990))

##### Bug fixes

- Install Ruby executable in gem bin
([#&#8203;2017](https://redirect.github.com/j178/prek/pull/2017))
- Use dedicated Android npm package
([#&#8203;1982](https://redirect.github.com/j178/prek/pull/1982))
- Use stable repo keys without breaking cached clones
([#&#8203;1995](https://redirect.github.com/j178/prek/pull/1995))

##### Documentation

- Explain prek name
([#&#8203;1980](https://redirect.github.com/j178/prek/pull/1980))
- Clarify `pass_filenames` concurrency docs
([#&#8203;1999](https://redirect.github.com/j178/prek/pull/1999))
- Reorganize documentation references
([#&#8203;2005](https://redirect.github.com/j178/prek/pull/2005))
- Clarify hook author manifest env docs
([#&#8203;1991](https://redirect.github.com/j178/prek/pull/1991))
- docs: add Sentry to users list
([#&#8203;1981](https://redirect.github.com/j178/prek/pull/1981))

##### Contributors

- [@&#8203;j178](https://redirect.github.com/j178)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- changed whisper configs
- updated vector test extension requirements
- removed cmp_vs2_vs1 for vrgatherei16.vv and changed constraints in
vector-testgen. However, this is technically legal for Vx16. Opened a
separate issue riscv#1396, may not address it being legal for Vx16 in this
PR.

Whisper status:
` RESULT: 60 failed, 149 passed out of 209 tests.`
for both rv32 and rv64.
Need more updating on self-checking aspect, most failures are relating
to issue riscv#1148. This fix might not have to be in this PR.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| riscv/riscv-isa-sim | digest | `632777d` → `b21cccd` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…tting for errors (riscv#1402)

Fixes riscv#1394

---------

Signed-off-by: Jordan Carlin <jordanmcarlin@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| tenstorrent/whisper | digest | `4c834ca` → `aa4a72a` |

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/riscv/riscv-arch-test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoiYWN0NCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Added Zvl32b to config files so boot code will turn on vector
Restore signature pointer at end of test.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
I have updated PMPSm and PMPZca tests only. Now there is a label
TEST_FOR_EXECUTION_0/TEST_FOR_EXECUTION_X just before the PMP Region
having a simple jr ra instruction.
PMPZca coverage : 100%
PMPSm coverage : 100%
Also, the address for PMP region has been changed from 80006000 to
80005004.
Separate imperas-rv32-max into imperas-rv32gck and imperas-rv32-gcv to
match available variants
Fixes problems of mismatch on traps because mstatus.VS is now set
correctly between Sail and Imperas

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Updated makefile, only 3 extensions are put into excluded extensions
PMPS,PMPU and PMPF because the tests time out.
PMPZca coverage had old macro REGIONSTART, updated that to newer macro
PMP_REGION_START

EDIT: Makefile had PMPZca and PMPSm included in excluded extensions as
well. So for now I resolved the conlfict by keeping them in exculded
extension. I understand this is because spike is failing PMPSm and make
coverage does not compile for PMPZca.

EDIT*: Make coverage will now work for PMPZca, so removed it from
excluded extensions

---------

Signed-off-by: Hamza <humza.ali1821@gmail.com>
failedtest_saveresults_fflags was reading fcsr (frm|fflags) but the
reference signature stores fflags only. With non-default rounding modes
(frm != 0) the reported bad value included frm bits, making fflags
failures appear as frm mismatches and easy to dismiss.
CI passing on sail, spike, qemu, whisper and cvw

---------

Signed-off-by: ayesha <139478896+ayeshaanwaar05@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
<img width="1216" height="328" alt="WhatsApp Image 2026-05-02 at 11 53
52 PM"
src="https://github.com/user-attachments/assets/e4244bec-fa76-4828-a733-dfff8e231c97"
/>

---------

Co-authored-by: Ben Bitdiddle <ben_bitdiddle@wally.edu>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
subprocess.TimeoutExpired was propagating unhandled out of run_test(),
crashing the multiprocessing Pool before the summary log was written and
abandoning all remaining tests in the run.

Two fixes:
- Catch TimeoutExpired in run_test() and return a clean TIMEOUT failure
result so the pool continues collecting all results and the summary is
always written.
- Use Popen with start_new_session=True and os.killpg() on timeout to
kill the entire QEMU process group, not just the top-level process,
preventing orphaned child processes.

Also adds a --timeout SECONDS CLI flag (default: 300) so the per-test
timeout is configurable without editing the source.

Fixes riscv#1234.
Signed-off-by: Jordan Carlin <jordanmcarlin@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.