Add CVT no-extension test case (verify_asr_by_cvt_no_extension)#4514
Open
mohshei-786 wants to merge 4 commits into
Open
Add CVT no-extension test case (verify_asr_by_cvt_no_extension)#4514mohshei-786 wants to merge 4 commits into
mohshei-786 wants to merge 4 commits into
Conversation
Add a new LISA test case that validates the ASR disk filter driver without relying on Azure VM extensions. This mirrors the LinuxCVT ADO pipeline approach: - Downloads driver tarball + CVT test binaries directly via URLs - Loads driver via insmod (or uses pre-loaded driver) - Runs all 17 CVT test cases with retry logic - Generates cvt_status.json with per-test-case tracking (matches private CVT format) - Copies .json status files along with logs for reporting New files: - scripts/cvt_no_extension.sh: Shell script handling full CVT flow - Modified cvt.py: Added test case, helper functions, .json log collection Tested: All 17/17 CVT tests passed on SAIL OS VM (SLES 15 SP4 kernel 5.14.21) AB#38231853 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a “no VM extensions” execution path for ASR CVT by introducing a standalone runner script, wiring it into the existing LISA CVT suite, and enhancing log collection to include JSON status output.
Changes:
- Add
cvt_no_extension.shto download CVT binaries/driver, load the driver, run CVT, and emit acvt_status.json. - Extend
_copy_cvt_logsto also collect*.jsonartifacts. - Add a new LISA test case that runs CVT without extensions and add URL defaults/OS-based driver URL selection.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| lisa/microsoft/testsuites/vm_extensions/scripts/cvt_no_extension.sh | New no-extension CVT runner that also writes status JSON and orchestrates driver/binary setup. |
| lisa/microsoft/testsuites/vm_extensions/cvt.py | Adds no-extension test flow + defaults; expands log copying to include JSON artifacts. |
Fix 1: JSON testCases array uses multi-line format with proper awk insertion
logic that handles commas between entries correctly.
Fix 2: Remove --no-check-certificate from wget; use system CAs by default.
TLS bypass available via SKIP_TLS_VERIFY=1 env var (opt-in).
Fix 3: Check mkfs/mount exit codes and fail early with diagnostic output.
Fix 4: Guard against duplicate DNS entries in resolv.conf; log resolver state.
Fix 5: Use public script.command property instead of private _command/_cwd.
Fix 6: Remove unused data_disks parameter from _run_cvt_no_extension.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5bbc8ae to
6a2cdd7
Compare
Author
|
All 6 review comments addressed in commit 6a2cdd7:
|
flake8: - B014: Replace redundant (NotImplementedError, Exception) with Exception - BLK100: Fix Black formatting for multi-line variable assignment shellcheck: - SC2155: Separate declare and assign for all local variables with subshells - SC2086: Quote variables to prevent word splitting - SC2181: Use direct exit code checks (if ! cmd) instead of \True - SC2171: Quote literal brackets in --pair[] arguments - SC1091: Add shellcheck disable for /etc/os-release source Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Also ensures file is stored with LF line endings (was CRLF in working copy causing SC1017 in CI). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
|
@mohshei-786 please check the error when run against canonical 0001-com-ubuntu-server-focal 20_04-lts-gen2 latest + verify_asr_by_cvt_no_extension |
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
Add a new LISA test case
verify_asr_by_cvt_no_extensionthat validates the ASR disk filter driver (involflt) without relying on Azure VM extensions. This mirrors the LinuxCVT ADO pipeline approach for environments where VM extensions are not available (e.g., SAIL OS, custom kernels).Changes
New file:
scripts/cvt_no_extension.shcvt_status.jsonwith per-test-case status tracking (matches private CVT pipeline format)Modified:
cvt.pyverify_asr_by_cvt_no_extensiontest case_get_driver_url(),_run_cvt_no_extension().jsonfile collection in_copy_cvt_logs()for status file retrievalreadyplatform gracefully (no disk add/delete when not supported)Test Results
All 17/17 CVT tests PASSED on SAIL OS VM (SLES 15 SP4, kernel 5.14.21-150400.22-default):
Total execution: ~138 minutes (8 min/test × 17 tests)
cvt_status.json Format
{ "testStatus": "Succeeded", "startTime": "2026-06-01T11:05:57Z", "lastUpdated": "2026-06-01T13:23:10Z", "testDetails": { "vmName": "sail-cvt-test", "os": "SLES 15-SP4", "kernelVersion": "5.14.21-150400.22-default", "driverVersion": "9.65.7900.1", "productVersion": "9.65.7900.1", "testCases": [ {"name": "mixed", "status": "Succeeded", "time": "593"}, ... ] } }ADO Work Item
AB#38231853
Tools Used
powershell, grep, glob, view, edit, create, paramiko (SSH), bluebird