Apply TemplateDotNetTool PR#81 subsystem folder structure to VHDLTest#113
Apply TemplateDotNetTool PR#81 subsystem folder structure to VHDLTest#113Malcolmnixon merged 15 commits intomainfrom
Conversation
Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/eb3cfcca-f06d-4315-8046-86bf32457491 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot There doesn't seem to be a 1-to-1 relationship between source files and requirements. |
… references Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/2d64780c-9fb6-4269-8728-91a4dabe13bf Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Fixed in commit 21ccc0a. The requirements now have a 1-to-1 mapping with source files:
The only source files without dedicated unit requirements files are |
|
@copilot Please make sure subsystems have their own test suites separate from the unit test-suites. For reference make sure to read the .github/standards/software-items.md |
… subsystems Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/12d6a319-3738-4045-b6c8-b7efed108685 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…nit review; fix subsystem requirement test links Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/12d6a319-3738-4045-b6c8-b7efed108685 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Done in commits Subsystem integration tests added (separate files from unit tests):
Subsystem requirements updated to reference these integration tests instead of unit tests.
|
|
@copilot There are numerous files in the test/DEMAConsulting.VHDLTest.Tests folder which seem to be in the wrong location, and should be moved into subsystem folders. Please move the files then update the review-sets to match. |
… reviewmark paths Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/274681f8-dcaf-4bea-9f76-9b15c22b7d64 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Done in commit
Namespaces updated to match ( |
|
@copilot Better, but I see the following problems:
|
…folder, update reviewmark and requirements Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/0c280700-e669-4846-b84b-c1411a950c7c Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Done in commit
|
|
@copilot Please fix the issues reported by linting. |
There was a problem hiding this comment.
Pull request overview
Applies the TemplateDotNetTool PR#81 “system / subsystem / unit” folder and namespace hierarchy to VHDLTest, reorganizing source, tests, requirements, and design docs so artifacts align 1:1 with the software structure.
Changes:
- Reorganized source and test projects into explicit subsystem folders and updated namespaces/usings accordingly.
- Reworked requirements into subsystem/unit files under
docs/reqstream/**and updated rootrequirements.yamlincludes. - Added new design documentation under
docs/design/**, added subsystem integration tests, and updated.reviewmark.yamlreview-sets.
Reviewed changes
Copilot reviewed 93 out of 93 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/DEMAConsulting.VHDLTest.Tests/VersionTests.cs | Deleted; version CLI behavior moved under system IntegrationTests. |
| test/DEMAConsulting.VHDLTest.Tests/UsageTests.cs | Deleted; usage/help CLI behavior moved under system IntegrationTests. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/VivadoSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/SimulatorsSubsystemTests.cs | Added simulators subsystem integration tests. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/SimulatorFactoryTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/QuestaSimSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/NvcSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/ModelSimSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/GhdlSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/Simulators/ActiveHdlSimulatorTests.cs | Updated test namespace to ...Tests.Simulators. |
| test/DEMAConsulting.VHDLTest.Tests/SelfTest/ValidationTests.cs | Updated test namespace to ...Tests.SelfTest (and adjusted usings). |
| test/DEMAConsulting.VHDLTest.Tests/Run/RunSubsystemTests.cs | Added run subsystem integration tests. |
| test/DEMAConsulting.VHDLTest.Tests/Run/RunProcessorTests.cs | Updated test namespace to ...Tests.Run. |
| test/DEMAConsulting.VHDLTest.Tests/Results/TestResultTests.cs | Updated namespace to ...Tests.Results and disambiguated TestResult type usage. |
| test/DEMAConsulting.VHDLTest.Tests/Results/TestResultsTests.cs | Updated namespace to ...Tests.Results and disambiguated TestResult type usage. |
| test/DEMAConsulting.VHDLTest.Tests/Results/ResultsSubsystemTests.cs | Added results subsystem integration tests. |
| test/DEMAConsulting.VHDLTest.Tests/ProgramTests.cs | Added Program unit tests (non-process execution). |
| test/DEMAConsulting.VHDLTest.Tests/IntegrationTests.cs | Consolidated/expanded system-level integration tests (usage/help/version + existing end-to-end tests). |
| test/DEMAConsulting.VHDLTest.Tests/Cli/OptionsTests.cs | Updated namespace to ...Tests.Cli and added subsystem-appropriate usings. |
| test/DEMAConsulting.VHDLTest.Tests/Cli/ContextTests.cs | Updated namespace to ...Tests.Cli and added subsystem-appropriate usings. |
| test/DEMAConsulting.VHDLTest.Tests/Cli/ConfigDocumentTests.cs | Updated namespace to ...Tests.Cli and added subsystem-appropriate usings. |
| test/DEMAConsulting.VHDLTest.Tests/Cli/CliSubsystemTests.cs | Added CLI subsystem integration tests. |
| src/DEMAConsulting.VHDLTest/Simulators/VivadoSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/Simulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/QuestaSimSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/NvcSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/ModelSimSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/MockSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/GhdlSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/Simulators/ActiveHdlSimulator.cs | Updated usings for moved CLI types. |
| src/DEMAConsulting.VHDLTest/SelfTest/Validation.cs | Moved Validation into SelfTest subsystem namespace and updated usings. |
| src/DEMAConsulting.VHDLTest/Run/RunResults.cs | Updated usings for moved CLI types (Context-based printing). |
| src/DEMAConsulting.VHDLTest/Results/TestResults.cs | Updated usings for moved CLI types (Context-based printing/execution). |
| src/DEMAConsulting.VHDLTest/Results/TestResult.cs | Updated usings for moved CLI types (Context-based printing). |
| src/DEMAConsulting.VHDLTest/Program.cs | Updated usings to reference Cli and SelfTest namespaces after moves. |
| src/DEMAConsulting.VHDLTest/Cli/Options.cs | Updated namespace to DEMAConsulting.VHDLTest.Cli. |
| src/DEMAConsulting.VHDLTest/Cli/Context.cs | Updated namespace to DEMAConsulting.VHDLTest.Cli. |
| src/DEMAConsulting.VHDLTest/Cli/ConfigDocument.cs | Updated namespace to DEMAConsulting.VHDLTest.Cli. |
| requirements.yaml | Updated include list to new subsystem/unit reqstream layout. |
| docs/reqstream/vhdltest-system.yaml | Removed embedded Validation section (moved to self-test subsystem/unit reqs). |
| docs/reqstream/unit-program.yaml | Added Program unit requirements file. |
| docs/reqstream/subsystem-simulators.yaml | Deleted old monolithic simulators requirements file. |
| docs/reqstream/simulators/unit-vivado-simulator.yaml | Added VivadoSimulator unit requirements file. |
| docs/reqstream/simulators/unit-simulator-factory.yaml | Added SimulatorFactory unit requirements file. |
| docs/reqstream/simulators/unit-questasim-simulator.yaml | Added QuestaSimSimulator unit requirements file. |
| docs/reqstream/simulators/unit-nvc-simulator.yaml | Added NvcSimulator unit requirements file. |
| docs/reqstream/simulators/unit-modelsim-simulator.yaml | Added ModelSimSimulator unit requirements file. |
| docs/reqstream/simulators/unit-ghdl-simulator.yaml | Added GhdlSimulator unit requirements file. |
| docs/reqstream/simulators/unit-active-hdl-simulator.yaml | Added ActiveHdlSimulator unit requirements file. |
| docs/reqstream/simulators/subsystem-simulators.yaml | Added Simulators subsystem requirements file. |
| docs/reqstream/self-test/unit-validation.yaml | Added Validation unit requirements file. |
| docs/reqstream/self-test/subsystem-self-test.yaml | Added SelfTest subsystem requirements file. |
| docs/reqstream/run/unit-run-types.yaml | Added Run “types” unit requirements file. |
| docs/reqstream/run/unit-run-results.yaml | Added RunResults unit requirements file. |
| docs/reqstream/run/unit-run-program.yaml | Added RunProgram unit requirements file. |
| docs/reqstream/run/unit-run-processor.yaml | Added RunProcessor unit requirements file. |
| docs/reqstream/run/subsystem-run.yaml | Added Run subsystem requirements file. |
| docs/reqstream/results/unit-test-results.yaml | Added TestResults unit requirements file. |
| docs/reqstream/results/unit-test-result.yaml | Added TestResult unit requirements file. |
| docs/reqstream/results/subsystem-results.yaml | Added Results subsystem requirements file. |
| docs/reqstream/cli/unit-options.yaml | Added Options unit requirements file. |
| docs/reqstream/cli/unit-context.yaml | Added Context unit requirements file. |
| docs/reqstream/cli/unit-config-document.yaml | Added ConfigDocument unit requirements file. |
| docs/reqstream/cli/subsystem-cli.yaml | Added Cli subsystem requirements file. |
| docs/design/system.md | Added system-level design doc describing responsibilities and flow. |
| docs/design/simulators/vivado-simulator.md | Added VivadoSimulator unit design doc. |
| docs/design/simulators/simulators.md | Added Simulators subsystem design doc. |
| docs/design/simulators/simulator.md | Added Simulator base unit design doc. |
| docs/design/simulators/simulator-factory.md | Added SimulatorFactory unit design doc. |
| docs/design/simulators/questasim-simulator.md | Added QuestaSimSimulator unit design doc. |
| docs/design/simulators/nvc-simulator.md | Added NvcSimulator unit design doc. |
| docs/design/simulators/modelsim-simulator.md | Added ModelSimSimulator unit design doc. |
| docs/design/simulators/ghdl-simulator.md | Added GhdlSimulator unit design doc. |
| docs/design/simulators/active-hdl-simulator.md | Added ActiveHdlSimulator unit design doc. |
| docs/design/self-test/validation.md | Added Validation unit design doc. |
| docs/design/self-test/self-test.md | Added SelfTest subsystem design doc. |
| docs/design/run/run.md | Added Run subsystem design doc. |
| docs/design/run/run-results.md | Added RunResults unit design doc. |
| docs/design/run/run-program.md | Added RunProgram unit design doc. |
| docs/design/run/run-processor.md | Added RunProcessor unit design doc. |
| docs/design/run/run-line.md | Added RunLine unit design doc. |
| docs/design/run/run-line-type.md | Added RunLineType unit design doc. |
| docs/design/run/run-line-rule.md | Added RunLineRule unit design doc. |
| docs/design/results/test-results.md | Added TestResults unit design doc. |
| docs/design/results/test-result.md | Added TestResult unit design doc. |
| docs/design/results/results.md | Added Results subsystem design doc. |
| docs/design/program.md | Added Program unit design doc. |
| docs/design/introduction.md | Added design-document introduction and structure overview. |
| docs/design/cli/options.md | Added Options unit design doc. |
| docs/design/cli/context.md | Added Context unit design doc. |
| docs/design/cli/config-document.md | Added ConfigDocument unit design doc. |
| docs/design/cli/cli.md | Added Cli subsystem design doc. |
| .reviewmark.yaml | Expanded needs-review scope and redefined review-sets around system/subsystem/unit hierarchy. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/7ea5f133-2b1d-4035-9b20-a614331098eb Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Fixed in commit
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…y proves Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/a4009041-317c-41fe-95e0-8885ed7e703b Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot Please fix the issues reported by the lint checks |
…gn docs Agent-Logs-Url: https://github.com/demaconsulting/VHDLTest/sessions/afaa3811-ad75-48c4-b7b7-a65f1e3b801a Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Fixed in commit
All of |
Applies the subsystem folder structure from TemplateDotNetTool PR#81 — introducing explicit system/subsystem/unit hierarchy across design docs, requirements, source, and tests.
Description
VHDLTest Software Structure
Source & Test Reorganization
Context.cs,ConfigDocument.cs,Options.cs→src/.../Cli/(namespace:DEMAConsulting.VHDLTest.Cli)Validation.cs→src/.../SelfTest/(namespace:DEMAConsulting.VHDLTest.SelfTest)Simulators/—GhdlSimulatorTests.cs,NvcSimulatorTests.cs,ModelSimSimulatorTests.cs,QuestaSimSimulatorTests.cs,VivadoSimulatorTests.cs,ActiveHdlSimulatorTests.cs,SimulatorFactoryTests.csRun/—RunProcessorTests.csResults/—TestResultTests.cs,TestResultsTests.csCli/—ContextTests.cs,ConfigDocumentTests.cs,OptionsTests.csSelfTest/—ValidationTests.csRunner.cs,GlobalUsings.csTests.Simulators,Tests.Run,Tests.Results,Tests.Cli,Tests.SelfTest)usingdirectives inProgram.csand simulator/run/results filesSystem Integration Tests & Program Unit Tests
IntegrationTests.csadded at the test project root — system-level integration tests that run the VHDLTest tool end-to-end (usage, help, version, exit codes). These replace the formerProgram/folder which incorrectly grouped integration tests as Program unit tests.ProgramTests.csadded at the test project root — true unit tests forProgram.csthat exerciseProgram.Run(context)andProgram.Versiondirectly without launching the tool subprocess.Program/folder has been removed; there is no Program subsystem.Subsystem Integration Tests
Each subsystem has a dedicated integration test file — separate from unit tests — that exercises multiple units of the subsystem working together:
Cli/CliSubsystemTests.cs— tests Context + ConfigDocument + Options pipeline end-to-endSimulators/SimulatorsSubsystemTests.cs— tests SimulatorFactory + simulator processors togetherRun/RunSubsystemTests.cs— tests RunProcessor + RunProgram + RunResults executing a real programResults/ResultsSubsystemTests.cs— tests TestResult + TestResults collecting and saving togetherSelfTest/ValidationTests.cs— existing integration tests cover the SelfTest subsystemDesign Documentation (
docs/design/)system.md— system-level design covering responsibilities, subsystem breakdown, top-level Program unit, and full execution flowintroduction.mdwith Software Structure tree and Folder Layout sectionsrun-line-type.mdvalues updated (Text/Info/Warning/Error),run-results.mddata model updated,test-result.mddata model updated,run-line-rule.mdupdated to regex-only matching,simulator-factory.mdupdated to reflect null-return contractRequirements Reorganization (
docs/reqstream/)cli/,simulators/,run/,results/,self-test/unit-program.yamlforProgram.cs—VHDLTest-Program-Usagerequirement renamed to accurately reflect its test (Program_Run_WithNoConfig_ReturnsNonZeroExitCodeproves non-zero exit code on missing config, not usage display); usage display is covered at the system level byVHDLTest-Cmd-Usageunit-ghdl-simulator.yaml,unit-nvc-simulator.yaml,unit-modelsim-simulator.yaml,unit-questasim-simulator.yaml,unit-vivado-simulator.yaml,unit-active-hdl-simulator.yamlunit-simulator-factory.yamlforSimulatorFactory.csunit-run-program.yaml,unit-run-results.yaml,unit-run-types.yamlfor Run subsystem unitsunit-test-result.yamlforTestResult.cssubsystem-simulators.yamlinto their respective unit filessubsystem-run.yaml,unit-run-processor.yaml,subsystem-results.yaml, andunit-test-results.yamlrequirements.yamlincludes updated accordinglyReviewMark Configuration (
.reviewmark.yaml)Per the
reviewmark-usage.mdstandard:needs-reviewexpanded to includedocs/reqstream/**/*.yamlanddocs/design/**/*.mdVHDLTest-Cli,VHDLTest-Run,VHDLTest-Results,VHDLTest-Simulators,VHDLTest-SelfTest) contain: subsystem requirements + design docs + integration tests (no source code or unit-level files)VHDLTest-SelfTestsplit into a subsystem review (design + integration tests) and a newVHDLTest-Validationunit review (requirements + design + source + tests)VHDLTest-Systemreview updated to includedocs/design/system.mdandIntegrationTests.csVHDLTest-Programreview updated to referenceProgramTests.csVHDLTest-System,VHDLTest-Design,VHDLTest-AllRequirements,VHDLTest-OTSLinting Fixes
commentsviolations in.reviewmark.yaml(7 inline comments with insufficient spacing before#)line-lengthviolation indocs/reqstream/cli/subsystem-cli.yaml(title wrapped using YAML folded scalar)docs/reqstream/simulators/unit-vivado-simulator.yaml(rephrased to remove unrecognised tokenxsim)table-column-style) errors indocs/design/run/run-line-type.md,docs/design/run/run-results.md, anddocs/design/results/test-result.md— tables rewritten with consistent column widths so all pipes align;run-results.mdcol 2 expanded to accommodate`ReadOnlyCollection<RunLine>`line-length) violation indocs/design/simulators/simulator-factory.md— 142-char bullet split into two linesType of Change
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DEMAConsulting.VHDLTest --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
cspell "**/*.{md,cs}"markdownlint "**/*.md"yamllint .Testing
Documentation
Additional Notes
Namespace changes (
DEMAConsulting.VHDLTest.Cli,DEMAConsulting.VHDLTest.SelfTest, and the test subnamespacesTests.Simulators,Tests.Run,Tests.Results,Tests.Cli,Tests.SelfTest) are the only breaking API surface changes; as a CLI tool with no public library consumers, this has no downstream impact. The formerTests.Programnamespace has been removed as there is no Program subsystem — system-level tests now live inIntegrationTests.csand Program unit tests inProgramTests.cs, both at the test project root.