Skip to content

feat: add LISA test suite support#126

Draft
reubeno wants to merge 1 commit intomicrosoft:mainfrom
reubeno:re-add-lisa-testing
Draft

feat: add LISA test suite support#126
reubeno wants to merge 1 commit intomicrosoft:mainfrom
reubeno:re-add-lisa-testing

Conversation

@reubeno
Copy link
Copy Markdown
Member

@reubeno reubeno commented Apr 28, 2026

Add LISA test framework support as a second test suite type alongside pytest. LISA test suites specify git sources for the framework and runbook repos (pinned to commit SHAs), pip pre-install overrides, extras, and extra-args with placeholder substitution.

Add LisaConfig, GitSourceConfig, and LisaRunbookConfig types with validation (including commit SHA format checking). Extend TestSuiteConfig.Validate() for LISA type-specific rules including cross-subtable mismatch detection.

Add lisarunner.go implementing venv setup, git repo cloning, pip installation, SSH key generation, and LISA invocation.

Add LISA test framework support as a second test suite type alongside
pytest. LISA test suites specify git sources for the framework and
runbook repos (pinned to commit SHAs), pip pre-install overrides,
extras, and extra-args with placeholder substitution.

Add LisaConfig, GitSourceConfig, and LisaRunbookConfig types with
validation (including commit SHA format checking). Extend
TestSuiteConfig.Validate() for LISA type-specific rules including
cross-subtable mismatch detection.

Add lisarunner.go implementing venv setup, git repo cloning, pip
installation, SSH key generation, and LISA invocation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@reubeno reubeno requested review from Copilot and liunan-ms April 28, 2026 17:34

if err := prereqs.RequireExecutable(env, "git", nil); err != nil {
return fmt.Errorf("git is required to clone LISA repos:\n%w", err)
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ensureAdminKeyPair uses ssh-keygen but the runner only checks for python3 and git. ssh-keygen check should be added here.


// Type indicates the test framework to use.
Type TestType `toml:"type" json:"type" jsonschema:"required,enum=pytest,title=Type,description=Type of test framework (pytest)"`
Type TestType `toml:"type" json:"type" jsonschema:"required,enum=pytest lisa,title=Type,description=Type of test framework (pytest or lisa)"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"pytest lisa" will be treated as a single value, two enum entries (enum=pytest, enum=lisa) are needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants