Skip to content

[WIP] Add CIP-0168 Value builtin E2E tests - #3824

Draft
Unisay wants to merge 3 commits into
masterfrom
yura/issue-2406-value-builtins-e2e
Draft

Unisay wants to merge 3 commits into
masterfrom
yura/issue-2406-value-builtins-e2e

Conversation

@Unisay

@Unisay Unisay commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Exercise policies, keepPolicies, dropPolicies and assetCount with PlutusV3/V4, each targeting PLC 1.1.0 and 1.2.0. The 148 envelopes come from mkoura/plutus-scripts-e2e#34.

Cover filter results, ordering, ADA, negative quantities and the 256/257 input-list boundary. Spend real state UTxOs to check protocol-token preservation, the keep/drop dual law, ADA changes, token substitution and invalid redeemers. Measure budgets with 5, 20 and 68 Value entries, and reject one-unit CPU/memory shortages before a sufficient-budget mint.

Install matching 369-entry V3/V4 cost models once. Perturb all fourteen new parameters offline, requiring exact resource deltas and no effect on other builtin families. Reuse the existing multiIndexArray budget-boundary helper.

Requires a PV12 node/CLI with batch 7 and the filter limit from IntersectMBO/plutus#8013. Known CLI activation gaps skip the test; runtimes that decode the builtins but accept 257 entries fail it. Uses the existing plutus, team_plutus and long regression selection.

Validation: 2 passed, 822 subtests passed, zero skips, in a combined local PV12 run with multiIndexArray; full make lint passed. The run used experimental node/CLI binaries with Plutus 1ef5a0eef37772e35b1e587f7a3b0afa61be4358 and policyid.patch. db-sync was unavailable. An earlier run on the same dev cluster enacted the 369-entry models through this fixture, and this run reused them, so this run did not exercise the governance update or the respin. This run predates the merge of master and the follow-up guard commit; both change only how failure messages are asserted. The test builds script addresses from their hashes because this CLI's generic address reader still decodes at PV11.

Refs IntersectMBO/plutus-private#2406

Cover policies, keepPolicies, dropPolicies and assetCount in the
PlutusV3/V4 and PLC 1.1.0/1.2.0 matrix using 148 generated scripts.

Exercise state-token restrictions with real inputs and continuing
outputs, including ADA changes and token substitution. Enact complete
369-parameter models and check the filter limit, execution budgets and
all fourteen new costing parameters.

Share the raw budget-boundary runner with multiIndexArray and isolate
its cached key files by the caller's test directory.
Merge current master into the Value builtin draft branch. Keep the
shared execution-budget helper and apply upstream's guarded CLI
diagnostic assertion there.

Retain strict exception and input-preservation checks for both
Value builtin and multiIndexArray transactions.
Guard the Plutus failure class and validator trace together, as
required by the updated E2E policy. Keep CLIError capture strict.

The default assertions are unchanged; the guard can relax message
wording when ALLOW_UNSTABLE_ERROR_MESSAGES is enabled.
@Unisay Unisay self-assigned this Nov 5, 2026

This branch has not been deployed

No deployments
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.

1 participant