[Feature]: Expand Textual Notation validation coverage with full Pilot Implementation suite · Issue #288 · STARIONGROUP/SysML2.NET · GitHub
Skip to content

[Feature]: Expand Textual Notation validation coverage with full Pilot Implementation suite #288

Description

@antoineatstariongroup

What type of issue is this?

  • Bug report
  • Feature request

Prerequisites

  • I have written a descriptive issue title
  • I have verified that I am running the latest version of the SysML2.NET
  • I have searched open and closed issues to ensure it has not already been reported

Description

Umbrella tracker for expanding SysML2.NET.Serializer.TextualNotation.Tests.Writers.TextualNotationValidationTestFixture to cover the full set of validation models distributed with the OMG SysML v2 Pilot Implementation.

Today only the three files of 01-Parts Tree (1a, 1c, 1d) are exercised by the fixture (added in #272 / #283). The Pilot Implementation ships with 17 validation folders covering every major SST module — Parts Tree, Parts Interconnection, Function-based Behavior, Functional Allocation, State-based Behavior, Individuals & Snapshots, Variant Configuration, Requirements, Verification, Analysis & Trades, View & Viewpoint, Dependency Relationships, Model Containment, Language Extensions, Properties/Values/Expressions, Sequence Modeling, and Use Case.

Bringing every Pilot validation file under the round-trip test (XMI deserialize → textual-notation build → assert non-empty output, with extension of the existing harness to also diff against a reference rendering where appropriate) is the single best regression net we can build for the textual notation writer. Every grammar bug fixed in the writer should at minimum trip one of these files; conversely, any file that builds clean here is a high-confidence signal that the corresponding SST module is covered end-to-end.

Scope per folder

For each Pilot validation folder:

  1. Convert each *.sysml source from https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/sysml/src/validation/<folder>/ into the *.sysmlx (XMI) representation consumed by the DeSerializer, and add it under SysML2.NET.Serializer.TextualNotation.Tests/Validation/<folder>/.
  2. Mark each new resource with CopyToOutputDirectory in the test project so it lands under the Validation/<folder>/ test-context directory.
  3. Add a [TestCase("<folder>", "<file>.sysmlx")] line per file to VerifyValidationTextualNotationXmi in SysML2.NET.Serializer.TextualNotation.Tests/Writers/TextualNotationValidationTestFixture.cs.
  4. If the writer throws or produces obviously wrong output for any file, log it on the per-folder issue and either fix it directly or open a focused follow-up (do not silence the test).

Sub-issues (one per folder)

Folder 01-Parts Tree is already covered, but is listed here for completeness. Each child issue tracks the work for one folder and references this umbrella issue.

  • 01-Parts Tree — already covered (1a, 1c, 1d)
  • 02-Parts Interconnection — see 289
  • 03-Function-based Behavior — see 290
  • 04-Functional Allocation — see 291
  • 05-State-based Behavior — see 292
  • 06-Individual and Snapshots — see 293
  • 07-Variant Configuration — see 294
  • 08-Requirements — see 295
  • 09-Verification — see 296
  • 10-Analysis and Trades — see 297
  • 11-View and Viewpoint — see 298
  • 12-Dependency Relationships — see 299
  • 13-Model Containment — see 300
  • 14-Language Extensions — see 301
  • 15-Properties-Values-Expressions — see 302
  • 17-Sequence Modeling — see 303
  • 18-Use Case — see 304

(Folder 16 is not present in the Pilot validation tree.)

Acceptance

  • All Pilot validation folders are represented in SysML2.NET.Serializer.TextualNotation.Tests/Validation/.
  • TextualNotationValidationTestFixture.VerifyValidationTextualNotationXmi runs at least one [TestCase] per file and the suite passes green.
  • Any writer/grammar defects surfaced by a folder are either fixed in the same PR or filed as a focused follow-up issue and linked back to the relevant per-folder issue.

Steps to Reproduce

System Configuration

  • SysML2.NET version: 0.22.0 (in progress on feat/bump-deps)
  • Environment (Operating system, version and so on): Windows 11
  • .NET Framework version: .NET 10 / netstandard2.1
  • Additional information: source models live in https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/sysml/src/validation

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions