Skip to content

main is red: 4 exact_scalar_agreement tests fail — direct runtime charges each vector its own work budget, QSL authority shares one #144

Open

Description

@kreneskyp

Measured on a clean checkout of origin/main at b7a282e, with no branch changes applied — cargo test --locked --no-fail-fast --test exact_scalar_agreement:

test tc_024_tc185_decimal_oracles_agree ... FAILED
test tc_024_tc187_quantity_oracles_agree ... FAILED
test tc_024_tc192_division_and_modulus_oracles_agree ... FAILED
test tc_024_tc193_ieee_oracles_agree ... FAILED
test result: FAILED. 4 passed; 4 failed

All four fail the same assertion, direct runtime disagrees with the QSL authority.

Where they disagree

Not on results. The unbudgeted results tuple and the charge-point sequence are identical on both sides. The disagreement is confined to the per-charge-point budget-exhaustion sweep, and it is systematic:

At charge point DecimalOperands step 1, budget 0:

  • direct runtime: vector 1 Incomplete, vectors 2/3/4 all Completed — surviving count 3.
  • QSL authority: all four Incomplete — surviving count 0.

The pattern holds across every step. The direct runtime behaves as if each vector is evaluated against its own fresh budget, so exhausting the budget stops only the vector being swept. The QSL authority behaves as if the four vectors share one budget drawn down in order, so exhausting it stops that vector and everything after it. The limit/consumed values track that too — the authority's limits advance in multiples (1,2,3,4 then 2,4,6,8) where the direct runtime's stay flat per step.

So this is one root cause in how the sweep allocates the work budget across a vector set, not four independent defects — which is consistent with all four decimal/quantity/division/IEEE tests failing together while tc186 (text and enum) and the no-authority test pass.

Asked for

  1. Decide which side is right: is a budget per vector, or per sweep? The answer is a contract question about WorkUnits accounting, not a test fix — settle it against the spec before touching either side.
  2. Fix the side that is wrong and get all 8 tests green.
  3. Do not relax the assertion to accommodate the difference. The whole point of this suite is that the two implementations agree.

Related

Provenance

Found while reviewing the cg#133/cg#134 branch. Confirmed pre-existing by checking out origin/main detached and running the same suite: same four tests, same failures, with and without the branch applied. Not caused by that branch.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions