Skip to content

test contract C3 residue: bare-word menus in languages the crucible cannot measure (ruby, javascript, java/groovy runtime assert forms) #2853

Closed

Description

@squid-protocol

Deferred by design from the #2852 test contract audit (roadmap Phase 3, epic #2812) — the same crucible-level deferral shape as #2832/#2833.

The #2852 audit anchored every everyday word the crucible measured misfiring (dart bare test/group, php bare test/mock, cobol hyphenated TEST-CASE, lua/c/embedded_python runtime assert). These rules have the same shapes on paper, but the crucible corpus carries no files for their languages, so no misfire is measured and no corpus cell is out of band — nothing plants them, nothing moves if they are edited today:

  • ruby — \b(describe|context|expect|assert[a-zA-Z_]*|refute[a-zA-Z_]*|setup|teardown|before|after|let|subject)\b|…: before, after, let, subject, context are everyday words firing bare (C3); rspec anchors exist (let(:x), before do).
  • javascript — bare describe|expect|assert in the first alternation (the anchored (?<!\.)\b(?:it|test)\s*\( half is already contract-shaped); the 5 crucible hits were string/comment prose (stream-uniform, prism/detector: string-literal shielding is selective by signal family (if/try/open count inside a literal, eval does not) #2535) and one methodName === 'assert' comparison.
  • java — assert[A-Za-z0-9_]*\s*\( also matches the language's own runtime assert (cond); statement (C1: the runtime guard is safety's) — crucible has no java files to measure how often the parenthesized statement form occurs.
  • groovy — assert\w*\s*\( has the same C1 exposure for groovy's power-assert statement written with parens.
  • assembly — (?i)\b(?:describe|expect|assert|TestCase)\b is case-insensitive prose vocabulary; the measured hits today are the legitimate testcase macro table, but the (?i) everyday words have the io-C1 comment-prose surface.

Close criterion: when the crucible gains files for one of these languages (or a corpus cell moves), apply the #2852 C1/C3 corollaries to that rule; until then the contract records these as conforming-by-absence-of-evidence, not validated.

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

    scope:frontierMapped, not yet built: eras/commands/regions the burned estates don't use (Gap Atlas)

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions