TTCN-3 test-execution runtime (interpreter + ntt exec) and ETSI conformance gate#776
Open
rafael2knokia wants to merge 1 commit into
Open
TTCN-3 test-execution runtime (interpreter + ntt exec) and ETSI conformance gate#776rafael2knokia wants to merge 1 commit into
rafael2knokia wants to merge 1 commit into
Conversation
rafael2knokia
added a commit
that referenced
this pull request
Jun 23, 2026
A shared, async-collaboration starting point (for Matthias + upstream ntt, agents welcome) to align the branch with the rest of ntt: - Inventory: the branch is ~99.6% additive (122,746 ins / 488 del, 437 files) - it extends the parser/LSP and adds interpreter/runtime/exec/ codec/port/conformance, not a rewrite. Current state: 97.22% conformance, PR #776 mergeable. - Hard-constraint assessment (evidence-backed): - LSP for ETSI users: extended, not changed - low risk. - Go-to-definition <100ms: off the heavy path (LookupWithDB, not Analyze); position lookup ~25-30us/op, 0 allocs. - Diagnostics: full 156-check Analyze per change is the perf watch-item on huge files - to benchmark/debounce. - ntt run / internal-tool coexistence: run.go + exec.go both exist; new rejections from 156 checks - to reconcile. - Open questions, goals/checklist, and the async-collaboration + gating conventions. No code change. %INT_NO_SW_CHANGE %AI=CLAUDE Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rmance gate
Grow ntt from a TTCN-3 front-end (parser / LSP / tooling) into a full
TTCN-3 test-execution toolchain in Go: a tree-walking interpreter and an
`ntt exec` runtime that compile, execute and verdict TTCN-3 test suites,
validated against the ETSI TTCN-3 conformance suite (4788/4948, 97.22%).
- interpreter/ tree-walking eval: testcases, templates, alt/interleave,
ports (message + procedure), timers, components, OO classes
- runtime/, runtime/exec/ testcase executor, verdicts, port/queue model, --cfg,
reporting, C-ABI/cgo bridge and a pure-Go (goport) port binding
- runtime/codec/ JSON, XML/XER, RAW encvalue/decvalue
- ttcn3/semantic/ additional static checks surfaced via `ntt check`
- ttcn3/syntax/ parser extensions (classes, new node kinds)
- internal/lsp/ rename, signature help, workspace symbols, type definition,
organize imports, folding, references (Go-to-def off the
heavy path; position lookup is microseconds)
- conformance.go ETSI suite harness gating regressions vs a committed baseline
- docs/ conformance roadmap, Go-only embedding, C/C++ test ports
Additive by design (go.mod/go.sum unchanged from master); the execution
engine is not on the front-end hot path unless explicitly invoked. This
branch is squashed for now; a reviewable per-subsystem commit split is
planned as a follow-up.
%INT_SW_CHANGE
%AI=CLAUDE
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch grows
nttfrom a TTCN-3 front-end (parser / LSP / tooling)into a full TTCN-3 test-execution toolchain in Go: a tree-walking
interpreter and an
ntt execruntime that can compile, execute andverdict real TTCN-3 test suites, validated against the ETSI TTCN-3
conformance suite.
ETSI conformance: 4788 / 4948 matched (97.22%), tracked as a CI-style
regression gate.
What's included
interpreter/) — tree-walking evaluation of modules,testcases, functions/altsteps, templates,
alt/interleave, ports(message and procedure-based communication), timers, components, and
TTCN-3 object orientation (classes, inheritance, nested classes).
runtime/,runtime/exec/) — testcaseexecutor, verdict handling, port/queue model, config (
--cfg,[MODULE_PARAMETERS]), reporting, and a C ABI / cgo bridge so C/C++test ports can be driven from the Go runtime.
runtime/codec/) — JSON and XML/XER encode/decode pathsplus RAW
encvalue/decvalueround-tripping.ttcn3/semantic/) — additional static checks(attributes, parametrization, restrictions, type rules, …) surfaced
through
ntt check.conformance.go) — runs the ETSI suite,classifies each file's outcome against its
@verdictannotation, andgates regressions against a committed baseline
(
testdata/conformance-baseline.json).Testing
--regress 0.5against the baseline,with a per-file diff requiring zero regressions for every change.
(17 pass / 0 fail / 2 expected inconc) across changes.
go test ./...for the touched packages, including dedicated unittests for the structural-type-compatibility coercion.
Status & remaining work
97.22% is the practical zero-regression ceiling for incremental work; the
remaining ~137 misses are documented with a per-cluster triage in
docs/conformance/remaining-work.md.They need dedicated deep features (concurrent multi-PTC alt scheduling,
union-alternative tracking, a real RAW codec, procedure-signature
qualification) or are contradictory / mislabeled suite fixtures left
intentionally as-is. The miss inventory and per-slice history live
alongside it under
docs/conformance/.%INT_SW_CHANGE
%AI=CLAUDE
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
🤖 Generated with Claude Code