Skip to content

sirwari/TestSuiteImageVal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test Suite Image Validation & Hardware Benchmarking

This repository contains the planning and implementation assets for a modular Windows test suite focused on image validation and hardware benchmarking. The suite is authored in PowerShell with a WPF-based GUI shell and extensible module framework.

Repository Layout

Config/                -> Configuration templates for module selection and reporting
Logs/                  -> Default location for runtime logs (created on demand)
Modules/               -> Discoverable validation/benchmark modules
  Core/                -> Shared framework utilities
  Image/               -> Image validation modules
  Hardware/            -> Hardware benchmarking modules
Reports/               -> Run output folder for exported results (created on demand)
Scripts/               -> Entry points and helper scripts
Tests/                 -> Pester test scaffolding (to be populated)
UI/                    -> XAML views for the WPF runbook builder

Getting Started

  1. Ensure PowerShell 7+ is installed on the target Windows validation workstation.
  2. Clone the repository and launch the suite using the starter script:
    pwsh .\Scripts\Start-TestSuite.ps1
  3. To inspect available modules without executing them:
    pwsh .\Scripts\Start-TestSuite.ps1 -ListModules
  4. Override the default module sequence by passing the desired module names:
    pwsh .\Scripts\Start-TestSuite.ps1 -Modules BaselineInventory,HardwareDiagnostics
  5. Use the -CliOnly switch to skip the GUI shell and run the configured modules in headless mode (ideal for CI or lab automation).

Reporting Customization

  • Configure default export formats and archiving behavior in Config/default.json under the Reporting section. Supported formats include JSON, CSV, and HTML (with graceful handling for future PDF support).
  • Override the configured formats at runtime using -ReportFormats and -ExcludeReportFormats to opt in or filter specific exporters:
    pwsh .\Scripts\Start-TestSuite.ps1 -ReportFormats Json,Csv,Html -ExcludeReportFormats Html
  • Control packaging behavior with -EnableReportArchive or -DisableReportArchive to toggle compression of the run folder into a timestamped ZIP archive under Reports/.

Modular Run-Plan Builder

  • Module metadata is stored in module.json manifests. The core framework discovers these manifests and exposes them as a catalog for both CLI and GUI consumption.
  • Config/default.json defines a default run plan that engineers can edit or extend. Each entry can inject module-specific parameters without touching the module code.
  • The WPF view at UI/MainWindow.xaml lays out a low-code experience where engineers can drag, drop, and reorder modules. The GUI binds to the shared run-plan data model so that CLI and GUI workflows remain consistent.
  • The core framework (Modules/Core/CoreFramework.psm1) exposes helper functions (Get-TsModuleCatalog, New-TsRunPlan, Invoke-TsRunPlan) that can be composed in other scripts to create custom runbooks or integrate with orchestration tools.

Sample Modules

Two illustrative modules are included to demonstrate the lifecycle contract:

  • BaselineInventory (Modules/Image/BaselineInventory): Collects baseline OS version, driver, and update data (stubbed for development).
  • HardwareDiagnostics (Modules/Hardware/Diagnostics): Simulates CPU and disk checks with configurable thresholds.

Each module implements the Initialize → Execute → CollectResults flow and returns a consistent result payload that the core framework logs and persists.

Next Steps

  • Flesh out additional validation and benchmarking modules per the project plan.
  • Implement the PowerShell ViewModel that binds the run-plan builder GUI to the underlying framework commands.
  • Extend reporting exporters with PDF generation and advanced packaging workflows.
  • Introduce Pester coverage for module contracts and utility functions.

Contributing

Implementation is broken into modular workstreams (Core framework, GUI, Image validation modules, Hardware benchmarking modules). See the project plan for milestone breakdown and responsibilities. Contributions should include appropriate documentation updates and, when feasible, automated tests.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors