diff --git a/.azure-pipelines/1ES.Build.yml b/.azure-pipelines/1ES.Build.yml index 7bc036063..49d42e76d 100644 --- a/.azure-pipelines/1ES.Build.yml +++ b/.azure-pipelines/1ES.Build.yml @@ -27,7 +27,7 @@ trigger: paths: exclude: - 'docs/**' - - 'examples/**' + - 'tests/examples/**' - '.github/ISSUE_TEMPLATE/**' - '.github/PULL_REQUEST_TEMPLATE.md' - '.github/copilot-instructions.md' @@ -50,7 +50,7 @@ pr: paths: exclude: - 'docs/**' - - 'examples/**' + - 'tests/examples/**' - '.github/ISSUE_TEMPLATE/**' - '.github/PULL_REQUEST_TEMPLATE.md' - '.github/copilot-instructions.md' diff --git a/.azure-pipelines/templates/Fuzz.Build.Job.yml b/.azure-pipelines/templates/Fuzz.Build.Job.yml index 71b0281a0..31524d0b4 100644 --- a/.azure-pipelines/templates/Fuzz.Build.Job.yml +++ b/.azure-pipelines/templates/Fuzz.Build.Job.yml @@ -87,7 +87,7 @@ jobs: # Seeds are not shipped in the drop in v3 — they must live in a OneFuzz # storage container referenced via `OneFuzzJobs[].SeedCorpusContainer`. # TODO: provision containers (`onefuzz containers create mxc-seeds-`), - # upload `test_configs/*.json` (and `src/fuzz/corpus/base64_decode/*`), + # upload `tests/configs/*.json` (and `src/fuzz/corpus/base64_decode/*`), # then add `SeedCorpusContainer` to each entry in OneFuzzConfig.json. - powershell: | $asanDir = (Get-ChildItem 'C:\Program Files\Microsoft Visual Studio' -Recurse -Filter 'clang_rt.asan_dynamic-x86_64.dll' -ErrorAction SilentlyContinue | Where-Object { $_.FullName -match 'HostX64\\x64\\clang_rt' } | Select-Object -First 1).Directory.FullName diff --git a/.azure-pipelines/templates/Rust.Build.Job.yml b/.azure-pipelines/templates/Rust.Build.Job.yml index 120501ab3..2f8233432 100644 --- a/.azure-pipelines/templates/Rust.Build.Job.yml +++ b/.azure-pipelines/templates/Rust.Build.Job.yml @@ -126,8 +126,8 @@ jobs: # `tier2_bfs` Cargo feature gates Tier 2 (BFS) and must NOT be # compiled into production binaries on Win 11 25H2 (the embedded # `bfscfg.exe` invocation risks an OS hang). See - # `.github/workflows/build.yml`, `test_scripts/T3-Workloads.ps1`, - # and `test_scripts/Win25H2Safe-Tests.ps1` for the safety model. + # `.github/workflows/build.yml`, `tests/scripts/T3-Workloads.ps1`, + # and `tests/scripts/Win25H2Safe-Tests.ps1` for the safety model. # Enumerate the production feature set explicitly so the shipped # binary still carries every runtime backend except `tier2_bfs`. # Schema reference: https://eng.ms/docs/coreai/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/buildworkflows/rust-virtual-task diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 661c7e97a..99a5a4c60 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -84,12 +84,12 @@ npm run test:integration node --test dist/cli.test.js # Local PowerShell helpers — run from repo root, require built binaries -test_scripts\run_test_configs.ps1 # All test configs via wxc_test_driver -test_scripts\run_basicac_test.ps1 # Single AppContainer test -test_scripts\run_isolation_session_tests.ps1 # IsolationSession one-shot E2E (requires host with the OS-side IsoSessionOps service) -test_scripts\run_isolation_session_state_aware_tests.ps1 # IsolationSession state-aware lifecycle E2E (multi-invocation provision/start/exec/stop/deprovision, same host requirements) -test_scripts\run_lxc_all_tests.sh # All LXC tests (Linux) -test_scripts\run_bwrap_all_tests.sh # All Bubblewrap tests (Linux, requires bwrap) +tests\scripts\run_test_configs.ps1 # All test configs via wxc_test_driver +tests\scripts\run_basicac_test.ps1 # Single AppContainer test +tests\scripts\run_isolation_session_tests.ps1 # IsolationSession one-shot E2E (requires host with the OS-side IsoSessionOps service) +tests\scripts\run_isolation_session_state_aware_tests.ps1 # IsolationSession state-aware lifecycle E2E (multi-invocation provision/start/exec/stop/deprovision, same host requirements) +tests\scripts\run_lxc_all_tests.sh # All LXC tests (Linux) +tests\scripts\run_bwrap_all_tests.sh # All Bubblewrap tests (Linux, requires bwrap) # E2E test crate — Rust executor integration tests (from src/) cargo test -p wxc_e2e_tests # Invokes MXC binaries directly @@ -142,7 +142,7 @@ Core references: - `docs/schema.md` — full JSON configuration schema reference - `docs/versioning.md` — schema versioning design, experimental feature lifecycle, and promotion process - `docs/authoring-a-new-feature.md` — step-by-step guide for adding experimental features (which files to touch, in what order) -- `docs/examples.md` — annotated configuration examples (see also `examples/` and `test_configs/`) +- `docs/examples.md` — annotated configuration examples (see also `tests/examples/` and `tests/configs/`) - `docs/diagnostics.md` — diagnostic logging knobs (env vars, log file format) - `docs/host-prep.md` — `wxc-host-prep.exe` host setup binary (`prepare-system-drive` / `unprepare-system-drive` for the AppContainer ACEs on the system-drive root, plus `prepare-null-device` / `verify-null-device` / `dump-null-device` for the `\Device\Null` security descriptor that AppContainer-based backends require). Owns elevation via embedded `requireAdministrator` manifest — `wxc-exec.exe` no longer self-elevates. - `docs/sandbox-policy/v1/policy.md` — sandbox policy v1 specification diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b7bd1e4bd..331e1ffdd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -107,9 +107,7 @@ Once you've discussed your proposed change with a team member and agreed on an a src/ Rust workspace (wxc-exec, lxc-exec, mxc-exec-mac, wxc_common, etc.) sdk/ TypeScript SDK (@microsoft/mxc-sdk) docs/ Schema and configuration documentation -examples/ Example JSON configurations -test_configs/ Test JSON configurations -test_scripts/ Test scripts that exercise the built binaries +tests/ Test collateral (examples, configs, scripts) schemas/ JSON schemas (stable + dev) .azure-pipelines/ 1ES Pipeline Templates configuration ``` @@ -191,7 +189,7 @@ cargo test -p wxc_e2e_tests # Invokes MXC binaries directly cargo test -p wxc_e2e_tests -- --ignored # Include stress tests ``` -PowerShell and shell helper scripts that drive the executor end-to-end live under `test_scripts/` and require a local build. See the [README](./README.md) and the [SDK README](./sdk/README.md) for more. +PowerShell and shell helper scripts that drive the executor end-to-end live under `tests/scripts/` and require a local build. See the [README](./README.md) and the [SDK README](./sdk/README.md) for more. ### Code review diff --git a/README.md b/README.md index a5cc939f8..53588adce 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,7 @@ A copy of Python 3.x is needed for executing test scripts. src/ Rust workspace (wxc-exec native binary + wxc_common library) sdk/ TypeScript SDK (@microsoft/mxc-sdk npm package) docs/ Schema and configuration documentation -examples/ Example configurations -test_configs/ Test JSON configurations -test_scripts/ Test scripts for exercising MXC +tests/ Test collateral (configs, scripts, examples) ``` ### Building WXC @@ -181,7 +179,7 @@ This will: ### LXC Example Configurations -See `examples/11_lxc_hello_world.json`, `examples/12_lxc_filesystem_access.json`, and `examples/13_lxc_network_restricted.json` for LXC-specific examples. +See `tests/examples/11_lxc_hello_world.json`, `tests/examples/12_lxc_filesystem_access.json`, and `tests/examples/13_lxc_network_restricted.json` for LXC-specific examples. ### Running on Linux @@ -220,7 +218,7 @@ This will: ### macOS Example Configurations -See `examples/15_mac_hello_world.json` and `examples/21_mac_python_info.json` for macOS-specific examples. +See `tests/examples/15_mac_hello_world.json` and `tests/examples/21_mac_python_info.json` for macOS-specific examples. ### Running on macOS diff --git a/docs/authoring-a-new-feature.md b/docs/authoring-a-new-feature.md index 444add0de..77385c999 100644 --- a/docs/authoring-a-new-feature.md +++ b/docs/authoring-a-new-feature.md @@ -107,7 +107,7 @@ Adding a feature may touch these files: | `src/wxc_common/src/models.rs` | Add `GpuIsolationConfig` struct, add field to `ExperimentalConfig` | | `src/wxc_common/src/config_parser.rs` | Add `gpuIsolation` field to `RawExperimental` | | Runner (`appcontainer.rs` or `lxc_runner.rs`) | Feature logic, guarded behind `experimental_enabled` | -| `test_configs/` | Test config exercising your feature | +| `tests/configs/` | Test config exercising your feature | ## Step 1: Update the schema @@ -333,10 +333,10 @@ Run it with and without the flag to verify: ```bash # With flag — experimental feature is active -wxc-exec.exe test_configs/experimental_gpu_isolation.json --experimental --debug +wxc-exec.exe tests/configs/experimental_gpu_isolation.json --experimental --debug # Without flag — experimental section silently ignored, normal execution -wxc-exec.exe test_configs/experimental_gpu_isolation.json --debug +wxc-exec.exe tests/configs/experimental_gpu_isolation.json --debug ``` Verify three things: diff --git a/docs/bwrap-support/bubblewrap-backend-plan.md b/docs/bwrap-support/bubblewrap-backend-plan.md index bd7b34b1f..c10516e5d 100644 --- a/docs/bwrap-support/bubblewrap-backend-plan.md +++ b/docs/bwrap-support/bubblewrap-backend-plan.md @@ -295,9 +295,9 @@ the LXC runner: apply rules before execution, remove rules after. ### 9. Test Additions - Unit tests in `bwrap_common/src/bwrap_runner.rs` (command-line generation, policy mapping) -- Test config files in `test_configs/` (e.g., `bubblewrap_basic.json`) +- Test config files in `tests/configs/` (e.g., `bubblewrap_basic.json`) - E2E test in `wxc_e2e_tests` if applicable -- Script in `test_scripts/run_bwrap_tests.sh` +- Script in `tests/scripts/run_bwrap_tests.sh` ### 10. Documentation @@ -354,5 +354,5 @@ policy gap is a design decision, not an implementation challenge. - `.github/copilot-instructions.md` (modify — add to backend table) ### Tests (new) -- `test_configs/bubblewrap_basic.json` -- `test_scripts/run_bwrap_tests.sh` +- `tests/configs/bubblewrap_basic.json` +- `tests/scripts/run_bwrap_tests.sh` diff --git a/docs/bwrap-support/bubblewrap-backend.md b/docs/bwrap-support/bubblewrap-backend.md index 29353e68c..123c5992d 100644 --- a/docs/bwrap-support/bubblewrap-backend.md +++ b/docs/bwrap-support/bubblewrap-backend.md @@ -273,13 +273,13 @@ resolution. ```bash # Single basic test -test_scripts/run_bwrap_basic_test.sh +tests/scripts/run_bwrap_basic_test.sh # All Bubblewrap tests -test_scripts/run_bwrap_all_tests.sh +tests/scripts/run_bwrap_all_tests.sh ``` -Test configs are in `test_configs/bubblewrap_*.json`. +Test configs are in `tests/configs/bubblewrap_*.json`. ## Limitations diff --git a/docs/fuzzing.md b/docs/fuzzing.md index f9062cb23..533fff6d3 100644 --- a/docs/fuzzing.md +++ b/docs/fuzzing.md @@ -17,7 +17,7 @@ exercising the attacker-influenced config surface consumed by `wxc-exec` and | `validator` | parse + `validate_common` on a one-shot request | Seed corpora for `config_parser` and `validator` targets come directly from -`test_configs/*.json`. The `base64_decode` target uses pre-encoded seeds in +`tests/configs/*.json`. The `base64_decode` target uses pre-encoded seeds in `src/fuzz/corpus/base64_decode/`. OneFuzz dedups by coverage server-side and grows the corpus across daily runs, so we keep the in-repo seeds small. @@ -44,9 +44,9 @@ $asanDir = (Get-ChildItem 'C:\Program Files\Microsoft Visual Studio' -Recurse ` | Where-Object FullName -Match 'HostX64\\x64\\clang_rt' | Select-Object -First 1).Directory.FullName $env:PATH = "$asanDir;$env:PATH" -# Run a target for 30 seconds (uses test_configs/ as the seed corpus) +# Run a target for 30 seconds (uses tests/configs/ as the seed corpus) cd src\fuzz -cargo +nightly fuzz run config_parser ..\..\test_configs -- -max_total_time=30 +cargo +nightly fuzz run config_parser ..\..\tests\configs -- -max_total_time=30 ``` Discovered crashes are written to `artifacts//` (relative to `src/fuzz/`) diff --git a/docs/hyperlight-integration-plan.md b/docs/hyperlight-integration-plan.md index 7b477e2ce..66b987685 100644 --- a/docs/hyperlight-integration-plan.md +++ b/docs/hyperlight-integration-plan.md @@ -117,7 +117,7 @@ mxc/src/wxc_common/ mxc/src/wxc/ └── src/main.rs # + ContainmentBackend::Hyperlight dispatch arm -mxc/test_configs/ +mxc/tests/configs/ ├── hyperlight_hello.json # NEW — hello from Python └── hyperlight_pandas.json # NEW — exercises pre-imported numpy/pandas diff --git a/docs/isolation-session/initial-bringup-plan.md b/docs/isolation-session/initial-bringup-plan.md index cc6ae6a77..171915765 100644 --- a/docs/isolation-session/initial-bringup-plan.md +++ b/docs/isolation-session/initial-bringup-plan.md @@ -262,7 +262,7 @@ CI, since CI machines do not have a Windows build with the IsolationSession feat **Integration tests (require a Windows host with the IsolationSession feature enabled):** -Two end-to-end configs live under `test_configs/`: +Two end-to-end configs live under `tests/configs/`: - `isolation_session_hello.json` — happy path. Prints `USERNAME`, `MYVAR`, `CWD`, and `whoami` from inside the session. Validates the @@ -272,7 +272,7 @@ Two end-to-end configs live under `test_configs/`: - `isolation_session_exit42.json` — runs `exit 42` and validates that exit code 42 propagates to `ScriptResponse.exit_code`. -A test runner at `test_scripts/run_isolation_session_tests.ps1` invokes +A test runner at `tests/scripts/run_isolation_session_tests.ps1` invokes both configs via `wxc-exec.exe --experimental`, validates exit codes and expected output substrings, and reports a pass/fail summary. Pattern follows the existing per-backend integration scripts (e.g. diff --git a/docs/isolation-session/state-aware-typescript-initial-plan.md b/docs/isolation-session/state-aware-typescript-initial-plan.md index 508c5f80e..6c055d64d 100644 --- a/docs/isolation-session/state-aware-typescript-initial-plan.md +++ b/docs/isolation-session/state-aware-typescript-initial-plan.md @@ -182,7 +182,7 @@ describe('IsolationSession state-aware lifecycle E2E', { skip: skipReason }, () ``` The Entra path can't be exercised in CI without WAM credentials; the Rust-side -[state-aware test runner](../../test_scripts/run_isolation_session_state_aware_tests.ps1) +[state-aware test runner](../../tests/scripts/run_isolation_session_state_aware_tests.ps1) covers the validation rejections. ## References diff --git a/docs/macos-support/seatbelt-backend.md b/docs/macos-support/seatbelt-backend.md index 9689e307d..c225e6b53 100644 --- a/docs/macos-support/seatbelt-backend.md +++ b/docs/macos-support/seatbelt-backend.md @@ -122,7 +122,7 @@ After setup, verify the build works end-to-end: ./build-mac.sh --rust-only # Run a quick smoke test -./src/target/aarch64-apple-darwin/release/mxc-exec-mac --debug examples/15_mac_hello_world.json +./src/target/aarch64-apple-darwin/release/mxc-exec-mac --debug tests/examples/15_mac_hello_world.json ``` You should see sandbox profile generation output followed by diff --git a/docs/nanvix-microvm/nanvix-integration-plan.md b/docs/nanvix-microvm/nanvix-integration-plan.md index bd9f8fb8b..d081502f6 100644 --- a/docs/nanvix-microvm/nanvix-integration-plan.md +++ b/docs/nanvix-microvm/nanvix-integration-plan.md @@ -129,7 +129,7 @@ mxc/src/ mxc/docs/nanvix-microvm/ └── nanvix-integration-plan.md # NEW — this document -mxc/test_configs/ +mxc/tests/configs/ └── microvm_hello.json # NEW — example microvm config ``` diff --git a/docs/schema.md b/docs/schema.md index 7388218f2..612cb3384 100644 --- a/docs/schema.md +++ b/docs/schema.md @@ -184,4 +184,4 @@ changes require a major bump. | 0.3.0-alpha | Initial versioned schema. Added `process`, `lifecycle`, `containerId`, `wslc` alias. Dual-read fallbacks for legacy fields. | | 0.4.0-alpha | Removed legacy fields (`script`, `workingDirectory`, `processContainer.name`, etc.). `process` section now required. | -See the `examples/` directory for complete configuration examples. \ No newline at end of file +See the `tests/examples/` directory for complete configuration examples. \ No newline at end of file diff --git a/docs/windows-sandbox/windows-sandbox-reference.md b/docs/windows-sandbox/windows-sandbox-reference.md index 2d210adb8..1425eac3a 100644 --- a/docs/windows-sandbox/windows-sandbox-reference.md +++ b/docs/windows-sandbox/windows-sandbox-reference.md @@ -161,7 +161,7 @@ Get-Process | Where-Object { $_.ProcessName -match "vmmem|vmwp|sandbox" } # Run daemon manually (visible logs) src\target\release\wxc-windows-sandbox-daemon.exe wxc-windows-sandbox 300000 # In another terminal: -src\target\release\wxc-exec.exe --debug test_configs\basic_windows_sandbox.json +src\target\release\wxc-exec.exe --debug tests\configs\basic_windows_sandbox.json # Clean slate Get-Process -Name "wxc-windows-sandbox-daemon","WindowsSandbox*" -ErrorAction SilentlyContinue | @@ -193,7 +193,7 @@ Manual-only — requires Hyper-V + Windows Sandbox feature (cannot run in GitHub ### Running ```powershell -cd test_scripts +cd tests\scripts .\run_windows_sandbox_tests.ps1 -Release ``` diff --git a/docs/wsl/wsl-container-getting-started.md b/docs/wsl/wsl-container-getting-started.md index 550b2c867..3c0b26fcf 100644 --- a/docs/wsl/wsl-container-getting-started.md +++ b/docs/wsl/wsl-container-getting-started.md @@ -246,10 +246,10 @@ the container. ## Example Configs -- [`examples/wslc_hello_world.json`](../../examples/wslc_hello_world.json) — Hello world with Alpine -- [`test_configs/wslc_network_isolated.json`](../../test_configs/wslc_network_isolated.json) — Network isolation -- [`test_configs/wslc_custom_registry_ghcr.json`](../../test_configs/wslc_custom_registry_ghcr.json) — Pull from GitHub Container Registry -- [`test_configs/wslc_custom_registry_quay.json`](../../test_configs/wslc_custom_registry_quay.json) — Pull from Quay.io -- [`test_configs/wslc_tar_import_rootfs.json`](../../test_configs/wslc_tar_import_rootfs.json) — Import rootfs tar -- [`test_configs/wslc_tar_import_docker_save.json`](../../test_configs/wslc_tar_import_docker_save.json) — Import Docker save archive -- [`test_configs/wslc_timeout.json`](../../test_configs/wslc_timeout.json) — Execution timeout enforcement +- [`tests/examples/wslc_hello_world.json`](../../tests/examples/wslc_hello_world.json) — Hello world with Alpine +- [`tests/configs/wslc_network_isolated.json`](../../tests/configs/wslc_network_isolated.json) — Network isolation +- [`tests/configs/wslc_custom_registry_ghcr.json`](../../tests/configs/wslc_custom_registry_ghcr.json) — Pull from GitHub Container Registry +- [`tests/configs/wslc_custom_registry_quay.json`](../../tests/configs/wslc_custom_registry_quay.json) — Pull from Quay.io +- [`tests/configs/wslc_tar_import_rootfs.json`](../../tests/configs/wslc_tar_import_rootfs.json) — Import rootfs tar +- [`tests/configs/wslc_tar_import_docker_save.json`](../../tests/configs/wslc_tar_import_docker_save.json) — Import Docker save archive +- [`tests/configs/wslc_timeout.json`](../../tests/configs/wslc_timeout.json) — Execution timeout enforcement diff --git a/scripts/setup-wslc.ps1 b/scripts/setup-wslc.ps1 index 32b5595dc..e37e79046 100644 --- a/scripts/setup-wslc.ps1 +++ b/scripts/setup-wslc.ps1 @@ -22,7 +22,7 @@ One or more image references to pre-pull. Defaults to a small starter set (alpine:latest, python:3.12-alpine) suitable for a quick smoke test. To populate the cache for the full WSLC test suite, run - test_scripts\run_wslc_all_tests.ps1, which invokes this script with + tests\scripts\run_wslc_all_tests.ps1, which invokes this script with the complete image list. .PARAMETER WxcExecPath diff --git a/src/fuzz/README.md b/src/fuzz/README.md index 3f7449544..f2aee12de 100644 --- a/src/fuzz/README.md +++ b/src/fuzz/README.md @@ -24,9 +24,9 @@ cargo +nightly install cargo-fuzz $asanDir = 'C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\\bin\HostX64\x64' $env:PATH = "$asanDir;$env:PATH" -# Run a target for 30 seconds (uses test_configs/ as the seed corpus) +# Run a target for 30 seconds (uses tests/configs/ as the seed corpus) cd src\fuzz -cargo +nightly fuzz run config_parser ..\..\test_configs -- -max_total_time=30 +cargo +nightly fuzz run config_parser ..\..\tests\configs -- -max_total_time=30 ``` Findings are written to `artifacts//`. Reproduce a finding with: diff --git a/src/wxc_e2e_tests/src/lib.rs b/src/wxc_e2e_tests/src/lib.rs index 718dcfddb..d45018178 100644 --- a/src/wxc_e2e_tests/src/lib.rs +++ b/src/wxc_e2e_tests/src/lib.rs @@ -28,14 +28,14 @@ pub fn repo_root() -> PathBuf { .to_path_buf() } -/// Return the repository `test_configs/` directory. +/// Return the repository `tests/configs/` directory. pub fn test_configs_dir() -> PathBuf { - repo_root().join("test_configs") + repo_root().join("tests").join("configs") } -/// Return the repository `examples/` directory. +/// Return the repository `tests/examples/` directory. pub fn examples_dir() -> PathBuf { - repo_root().join("examples") + repo_root().join("tests").join("examples") } fn src_dir() -> PathBuf { diff --git a/test_scripts/push_batch_and_config_files_to_vm.ps1 b/test_scripts/push_batch_and_config_files_to_vm.ps1 deleted file mode 100644 index 4ea1dd38c..000000000 --- a/test_scripts/push_batch_and_config_files_to_vm.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -putd ..\test_configs WXC\test_configs\ -putd ..\examples WXC\examples\ -putd run*.bat WXC\test_scripts\ -putd ..\test_scripts\sort_numbers.py WXC \ No newline at end of file diff --git a/test_configs/base_container_ui_configs/01_disable_true.json b/tests/configs/base_container_ui_configs/01_disable_true.json similarity index 100% rename from test_configs/base_container_ui_configs/01_disable_true.json rename to tests/configs/base_container_ui_configs/01_disable_true.json diff --git a/test_configs/base_container_ui_configs/02_clip_none_write_blocked.json b/tests/configs/base_container_ui_configs/02_clip_none_write_blocked.json similarity index 100% rename from test_configs/base_container_ui_configs/02_clip_none_write_blocked.json rename to tests/configs/base_container_ui_configs/02_clip_none_write_blocked.json diff --git a/test_configs/base_container_ui_configs/03_clip_read_allowed.json b/tests/configs/base_container_ui_configs/03_clip_read_allowed.json similarity index 100% rename from test_configs/base_container_ui_configs/03_clip_read_allowed.json rename to tests/configs/base_container_ui_configs/03_clip_read_allowed.json diff --git a/test_configs/base_container_ui_configs/04_clip_read_write_blocked.json b/tests/configs/base_container_ui_configs/04_clip_read_write_blocked.json similarity index 100% rename from test_configs/base_container_ui_configs/04_clip_read_write_blocked.json rename to tests/configs/base_container_ui_configs/04_clip_read_write_blocked.json diff --git a/test_configs/base_container_ui_configs/05_clip_write_allowed.json b/tests/configs/base_container_ui_configs/05_clip_write_allowed.json similarity index 100% rename from test_configs/base_container_ui_configs/05_clip_write_allowed.json rename to tests/configs/base_container_ui_configs/05_clip_write_allowed.json diff --git a/test_configs/base_container_ui_configs/06_clip_all_both.json b/tests/configs/base_container_ui_configs/06_clip_all_both.json similarity index 100% rename from test_configs/base_container_ui_configs/06_clip_all_both.json rename to tests/configs/base_container_ui_configs/06_clip_all_both.json diff --git a/test_configs/base_container_ui_configs/07_isolation_container.json b/tests/configs/base_container_ui_configs/07_isolation_container.json similarity index 100% rename from test_configs/base_container_ui_configs/07_isolation_container.json rename to tests/configs/base_container_ui_configs/07_isolation_container.json diff --git a/test_configs/base_container_ui_configs/08_isolation_desktop.json b/tests/configs/base_container_ui_configs/08_isolation_desktop.json similarity index 100% rename from test_configs/base_container_ui_configs/08_isolation_desktop.json rename to tests/configs/base_container_ui_configs/08_isolation_desktop.json diff --git a/test_configs/base_container_ui_configs/09_desktop_control_blocked.json b/tests/configs/base_container_ui_configs/09_desktop_control_blocked.json similarity index 100% rename from test_configs/base_container_ui_configs/09_desktop_control_blocked.json rename to tests/configs/base_container_ui_configs/09_desktop_control_blocked.json diff --git a/test_configs/base_container_ui_configs/10_no_ui_default_deny.json b/tests/configs/base_container_ui_configs/10_no_ui_default_deny.json similarity index 100% rename from test_configs/base_container_ui_configs/10_no_ui_default_deny.json rename to tests/configs/base_container_ui_configs/10_no_ui_default_deny.json diff --git a/test_configs/base_container_ui_configs/11_system_settings_blocked.json b/tests/configs/base_container_ui_configs/11_system_settings_blocked.json similarity index 100% rename from test_configs/base_container_ui_configs/11_system_settings_blocked.json rename to tests/configs/base_container_ui_configs/11_system_settings_blocked.json diff --git a/test_configs/base_container_ui_configs/12_system_settings_allowed.json b/tests/configs/base_container_ui_configs/12_system_settings_allowed.json similarity index 100% rename from test_configs/base_container_ui_configs/12_system_settings_allowed.json rename to tests/configs/base_container_ui_configs/12_system_settings_allowed.json diff --git a/test_configs/basic_lpac.json b/tests/configs/basic_lpac.json similarity index 100% rename from test_configs/basic_lpac.json rename to tests/configs/basic_lpac.json diff --git a/test_configs/basic_lxc.json b/tests/configs/basic_lxc.json similarity index 100% rename from test_configs/basic_lxc.json rename to tests/configs/basic_lxc.json diff --git a/test_configs/basic_permissive.json b/tests/configs/basic_permissive.json similarity index 100% rename from test_configs/basic_permissive.json rename to tests/configs/basic_permissive.json diff --git a/test_configs/basic_processcontainer.json b/tests/configs/basic_processcontainer.json similarity index 100% rename from test_configs/basic_processcontainer.json rename to tests/configs/basic_processcontainer.json diff --git a/test_configs/basic_windows_sandbox.json b/tests/configs/basic_windows_sandbox.json similarity index 100% rename from test_configs/basic_windows_sandbox.json rename to tests/configs/basic_windows_sandbox.json diff --git a/test_configs/bubblewrap_basic.json b/tests/configs/bubblewrap_basic.json similarity index 100% rename from test_configs/bubblewrap_basic.json rename to tests/configs/bubblewrap_basic.json diff --git a/test_configs/bubblewrap_filesystem.json b/tests/configs/bubblewrap_filesystem.json similarity index 100% rename from test_configs/bubblewrap_filesystem.json rename to tests/configs/bubblewrap_filesystem.json diff --git a/test_configs/bubblewrap_network_block.json b/tests/configs/bubblewrap_network_block.json similarity index 100% rename from test_configs/bubblewrap_network_block.json rename to tests/configs/bubblewrap_network_block.json diff --git a/test_configs/bubblewrap_network_firewall.json b/tests/configs/bubblewrap_network_firewall.json similarity index 100% rename from test_configs/bubblewrap_network_firewall.json rename to tests/configs/bubblewrap_network_firewall.json diff --git a/test_configs/bubblewrap_network_proxy_allowlist.json b/tests/configs/bubblewrap_network_proxy_allowlist.json similarity index 100% rename from test_configs/bubblewrap_network_proxy_allowlist.json rename to tests/configs/bubblewrap_network_proxy_allowlist.json diff --git a/test_configs/bubblewrap_network_proxy_blocklist.json b/tests/configs/bubblewrap_network_proxy_blocklist.json similarity index 100% rename from test_configs/bubblewrap_network_proxy_blocklist.json rename to tests/configs/bubblewrap_network_proxy_blocklist.json diff --git a/test_configs/bubblewrap_network_proxy_builtin.json b/tests/configs/bubblewrap_network_proxy_builtin.json similarity index 100% rename from test_configs/bubblewrap_network_proxy_builtin.json rename to tests/configs/bubblewrap_network_proxy_builtin.json diff --git a/test_configs/containment_process_intent.json b/tests/configs/containment_process_intent.json similarity index 100% rename from test_configs/containment_process_intent.json rename to tests/configs/containment_process_intent.json diff --git a/test_configs/experimental_hello_lxc.json b/tests/configs/experimental_hello_lxc.json similarity index 100% rename from test_configs/experimental_hello_lxc.json rename to tests/configs/experimental_hello_lxc.json diff --git a/test_configs/experimental_hello_processcontainer.json b/tests/configs/experimental_hello_processcontainer.json similarity index 100% rename from test_configs/experimental_hello_processcontainer.json rename to tests/configs/experimental_hello_processcontainer.json diff --git a/test_configs/filesystem_bfs_readonly_test.json b/tests/configs/filesystem_bfs_readonly_test.json similarity index 100% rename from test_configs/filesystem_bfs_readonly_test.json rename to tests/configs/filesystem_bfs_readonly_test.json diff --git a/test_configs/filesystem_bfs_spaces_test.json b/tests/configs/filesystem_bfs_spaces_test.json similarity index 100% rename from test_configs/filesystem_bfs_spaces_test.json rename to tests/configs/filesystem_bfs_spaces_test.json diff --git a/test_configs/filesystem_bfs_test.json b/tests/configs/filesystem_bfs_test.json similarity index 100% rename from test_configs/filesystem_bfs_test.json rename to tests/configs/filesystem_bfs_test.json diff --git a/test_configs/hello_world_v050.json b/tests/configs/hello_world_v050.json similarity index 100% rename from test_configs/hello_world_v050.json rename to tests/configs/hello_world_v050.json diff --git a/test_configs/hyperlight_exit_code.json b/tests/configs/hyperlight_exit_code.json similarity index 100% rename from test_configs/hyperlight_exit_code.json rename to tests/configs/hyperlight_exit_code.json diff --git a/test_configs/hyperlight_fs.json b/tests/configs/hyperlight_fs.json similarity index 100% rename from test_configs/hyperlight_fs.json rename to tests/configs/hyperlight_fs.json diff --git a/test_configs/hyperlight_hello.json b/tests/configs/hyperlight_hello.json similarity index 100% rename from test_configs/hyperlight_hello.json rename to tests/configs/hyperlight_hello.json diff --git a/test_configs/hyperlight_networking.json b/tests/configs/hyperlight_networking.json similarity index 100% rename from test_configs/hyperlight_networking.json rename to tests/configs/hyperlight_networking.json diff --git a/test_configs/hyperlight_networking_blocked.json b/tests/configs/hyperlight_networking_blocked.json similarity index 100% rename from test_configs/hyperlight_networking_blocked.json rename to tests/configs/hyperlight_networking_blocked.json diff --git a/test_configs/hyperlight_pandas.json b/tests/configs/hyperlight_pandas.json similarity index 100% rename from test_configs/hyperlight_pandas.json rename to tests/configs/hyperlight_pandas.json diff --git a/test_configs/hyperlight_timeout.json b/tests/configs/hyperlight_timeout.json similarity index 100% rename from test_configs/hyperlight_timeout.json rename to tests/configs/hyperlight_timeout.json diff --git a/test_configs/isolation_session_concurrent_A.json b/tests/configs/isolation_session_concurrent_A.json similarity index 100% rename from test_configs/isolation_session_concurrent_A.json rename to tests/configs/isolation_session_concurrent_A.json diff --git a/test_configs/isolation_session_concurrent_B.json b/tests/configs/isolation_session_concurrent_B.json similarity index 100% rename from test_configs/isolation_session_concurrent_B.json rename to tests/configs/isolation_session_concurrent_B.json diff --git a/test_configs/isolation_session_concurrent_C.json b/tests/configs/isolation_session_concurrent_C.json similarity index 100% rename from test_configs/isolation_session_concurrent_C.json rename to tests/configs/isolation_session_concurrent_C.json diff --git a/test_configs/isolation_session_concurrent_D.json b/tests/configs/isolation_session_concurrent_D.json similarity index 100% rename from test_configs/isolation_session_concurrent_D.json rename to tests/configs/isolation_session_concurrent_D.json diff --git a/test_configs/isolation_session_exit42.json b/tests/configs/isolation_session_exit42.json similarity index 100% rename from test_configs/isolation_session_exit42.json rename to tests/configs/isolation_session_exit42.json diff --git a/test_configs/isolation_session_filesystem.json b/tests/configs/isolation_session_filesystem.json similarity index 100% rename from test_configs/isolation_session_filesystem.json rename to tests/configs/isolation_session_filesystem.json diff --git a/test_configs/isolation_session_filtered.json b/tests/configs/isolation_session_filtered.json similarity index 100% rename from test_configs/isolation_session_filtered.json rename to tests/configs/isolation_session_filtered.json diff --git a/test_configs/isolation_session_hello.json b/tests/configs/isolation_session_hello.json similarity index 100% rename from test_configs/isolation_session_hello.json rename to tests/configs/isolation_session_hello.json diff --git a/test_configs/isolation_session_hello_medium.json b/tests/configs/isolation_session_hello_medium.json similarity index 100% rename from test_configs/isolation_session_hello_medium.json rename to tests/configs/isolation_session_hello_medium.json diff --git a/test_configs/isolation_session_one_shot_user_rejected.json b/tests/configs/isolation_session_one_shot_user_rejected.json similarity index 100% rename from test_configs/isolation_session_one_shot_user_rejected.json rename to tests/configs/isolation_session_one_shot_user_rejected.json diff --git a/test_configs/isolation_session_powershell_interactive.json b/tests/configs/isolation_session_powershell_interactive.json similarity index 100% rename from test_configs/isolation_session_powershell_interactive.json rename to tests/configs/isolation_session_powershell_interactive.json diff --git a/test_configs/isolation_session_state_aware_deprovision.json b/tests/configs/isolation_session_state_aware_deprovision.json similarity index 100% rename from test_configs/isolation_session_state_aware_deprovision.json rename to tests/configs/isolation_session_state_aware_deprovision.json diff --git a/test_configs/isolation_session_state_aware_exec_basic.json b/tests/configs/isolation_session_state_aware_exec_basic.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_basic.json rename to tests/configs/isolation_session_state_aware_exec_basic.json diff --git a/test_configs/isolation_session_state_aware_exec_cwd.json b/tests/configs/isolation_session_state_aware_exec_cwd.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_cwd.json rename to tests/configs/isolation_session_state_aware_exec_cwd.json diff --git a/test_configs/isolation_session_state_aware_exec_env_absent.json b/tests/configs/isolation_session_state_aware_exec_env_absent.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_env_absent.json rename to tests/configs/isolation_session_state_aware_exec_env_absent.json diff --git a/test_configs/isolation_session_state_aware_exec_env_initial.json b/tests/configs/isolation_session_state_aware_exec_env_initial.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_env_initial.json rename to tests/configs/isolation_session_state_aware_exec_env_initial.json diff --git a/test_configs/isolation_session_state_aware_exec_env_modified.json b/tests/configs/isolation_session_state_aware_exec_env_modified.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_env_modified.json rename to tests/configs/isolation_session_state_aware_exec_env_modified.json diff --git a/test_configs/isolation_session_state_aware_exec_exit_0.json b/tests/configs/isolation_session_state_aware_exec_exit_0.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_exit_0.json rename to tests/configs/isolation_session_state_aware_exec_exit_0.json diff --git a/test_configs/isolation_session_state_aware_exec_exit_1.json b/tests/configs/isolation_session_state_aware_exec_exit_1.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_exit_1.json rename to tests/configs/isolation_session_state_aware_exec_exit_1.json diff --git a/test_configs/isolation_session_state_aware_exec_exit_2.json b/tests/configs/isolation_session_state_aware_exec_exit_2.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_exit_2.json rename to tests/configs/isolation_session_state_aware_exec_exit_2.json diff --git a/test_configs/isolation_session_state_aware_exec_read_marker.json b/tests/configs/isolation_session_state_aware_exec_read_marker.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_read_marker.json rename to tests/configs/isolation_session_state_aware_exec_read_marker.json diff --git a/test_configs/isolation_session_state_aware_exec_read_persist.json b/tests/configs/isolation_session_state_aware_exec_read_persist.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_read_persist.json rename to tests/configs/isolation_session_state_aware_exec_read_persist.json diff --git a/test_configs/isolation_session_state_aware_exec_read_readonly.json b/tests/configs/isolation_session_state_aware_exec_read_readonly.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_read_readonly.json rename to tests/configs/isolation_session_state_aware_exec_read_readonly.json diff --git a/test_configs/isolation_session_state_aware_exec_read_restricted.json b/tests/configs/isolation_session_state_aware_exec_read_restricted.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_read_restricted.json rename to tests/configs/isolation_session_state_aware_exec_read_restricted.json diff --git a/test_configs/isolation_session_state_aware_exec_read_shared.json b/tests/configs/isolation_session_state_aware_exec_read_shared.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_read_shared.json rename to tests/configs/isolation_session_state_aware_exec_read_shared.json diff --git a/test_configs/isolation_session_state_aware_exec_setx_initial.json b/tests/configs/isolation_session_state_aware_exec_setx_initial.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_setx_initial.json rename to tests/configs/isolation_session_state_aware_exec_setx_initial.json diff --git a/test_configs/isolation_session_state_aware_exec_setx_modified.json b/tests/configs/isolation_session_state_aware_exec_setx_modified.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_setx_modified.json rename to tests/configs/isolation_session_state_aware_exec_setx_modified.json diff --git a/test_configs/isolation_session_state_aware_exec_write_marker.json b/tests/configs/isolation_session_state_aware_exec_write_marker.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_write_marker.json rename to tests/configs/isolation_session_state_aware_exec_write_marker.json diff --git a/test_configs/isolation_session_state_aware_exec_write_readonly_denied.json b/tests/configs/isolation_session_state_aware_exec_write_readonly_denied.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_write_readonly_denied.json rename to tests/configs/isolation_session_state_aware_exec_write_readonly_denied.json diff --git a/test_configs/isolation_session_state_aware_exec_write_shared.json b/tests/configs/isolation_session_state_aware_exec_write_shared.json similarity index 100% rename from test_configs/isolation_session_state_aware_exec_write_shared.json rename to tests/configs/isolation_session_state_aware_exec_write_shared.json diff --git a/test_configs/isolation_session_state_aware_provision.json b/tests/configs/isolation_session_state_aware_provision.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision.json rename to tests/configs/isolation_session_state_aware_provision.json diff --git a/test_configs/isolation_session_state_aware_provision_rejected_denied.json b/tests/configs/isolation_session_state_aware_provision_rejected_denied.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision_rejected_denied.json rename to tests/configs/isolation_session_state_aware_provision_rejected_denied.json diff --git a/test_configs/isolation_session_state_aware_provision_user_empty_wamtoken.json b/tests/configs/isolation_session_state_aware_provision_user_empty_wamtoken.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision_user_empty_wamtoken.json rename to tests/configs/isolation_session_state_aware_provision_user_empty_wamtoken.json diff --git a/test_configs/isolation_session_state_aware_provision_user_malformed_upn.json b/tests/configs/isolation_session_state_aware_provision_user_malformed_upn.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision_user_malformed_upn.json rename to tests/configs/isolation_session_state_aware_provision_user_malformed_upn.json diff --git a/test_configs/isolation_session_state_aware_provision_with_filesystem.json b/tests/configs/isolation_session_state_aware_provision_with_filesystem.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision_with_filesystem.json rename to tests/configs/isolation_session_state_aware_provision_with_filesystem.json diff --git a/test_configs/isolation_session_state_aware_provision_with_filter.json b/tests/configs/isolation_session_state_aware_provision_with_filter.json similarity index 100% rename from test_configs/isolation_session_state_aware_provision_with_filter.json rename to tests/configs/isolation_session_state_aware_provision_with_filter.json diff --git a/test_configs/isolation_session_state_aware_start.json b/tests/configs/isolation_session_state_aware_start.json similarity index 100% rename from test_configs/isolation_session_state_aware_start.json rename to tests/configs/isolation_session_state_aware_start.json diff --git a/test_configs/isolation_session_state_aware_start_entra_missing_user.json b/tests/configs/isolation_session_state_aware_start_entra_missing_user.json similarity index 100% rename from test_configs/isolation_session_state_aware_start_entra_missing_user.json rename to tests/configs/isolation_session_state_aware_start_entra_missing_user.json diff --git a/test_configs/isolation_session_state_aware_start_local_with_user.json b/tests/configs/isolation_session_state_aware_start_local_with_user.json similarity index 100% rename from test_configs/isolation_session_state_aware_start_local_with_user.json rename to tests/configs/isolation_session_state_aware_start_local_with_user.json diff --git a/test_configs/isolation_session_state_aware_start_medium.json b/tests/configs/isolation_session_state_aware_start_medium.json similarity index 100% rename from test_configs/isolation_session_state_aware_start_medium.json rename to tests/configs/isolation_session_state_aware_start_medium.json diff --git a/test_configs/isolation_session_state_aware_start_upn_mismatch.json b/tests/configs/isolation_session_state_aware_start_upn_mismatch.json similarity index 100% rename from test_configs/isolation_session_state_aware_start_upn_mismatch.json rename to tests/configs/isolation_session_state_aware_start_upn_mismatch.json diff --git a/test_configs/isolation_session_state_aware_stop.json b/tests/configs/isolation_session_state_aware_stop.json similarity index 100% rename from test_configs/isolation_session_state_aware_stop.json rename to tests/configs/isolation_session_state_aware_stop.json diff --git a/test_configs/isolation_session_stderr.json b/tests/configs/isolation_session_stderr.json similarity index 100% rename from test_configs/isolation_session_stderr.json rename to tests/configs/isolation_session_stderr.json diff --git a/test_configs/isolation_session_stdout_stderr_interleaved.json b/tests/configs/isolation_session_stdout_stderr_interleaved.json similarity index 100% rename from test_configs/isolation_session_stdout_stderr_interleaved.json rename to tests/configs/isolation_session_stdout_stderr_interleaved.json diff --git a/test_configs/isolation_session_streaming_smoke.json b/tests/configs/isolation_session_streaming_smoke.json similarity index 100% rename from test_configs/isolation_session_streaming_smoke.json rename to tests/configs/isolation_session_streaming_smoke.json diff --git a/test_configs/isolation_session_timeout.json b/tests/configs/isolation_session_timeout.json similarity index 100% rename from test_configs/isolation_session_timeout.json rename to tests/configs/isolation_session_timeout.json diff --git a/test_configs/linux_process_abstract.json b/tests/configs/linux_process_abstract.json similarity index 100% rename from test_configs/linux_process_abstract.json rename to tests/configs/linux_process_abstract.json diff --git a/test_configs/linux_process_default.json b/tests/configs/linux_process_default.json similarity index 100% rename from test_configs/linux_process_default.json rename to tests/configs/linux_process_default.json diff --git a/test_configs/lxc_filesystem_test.json b/tests/configs/lxc_filesystem_test.json similarity index 100% rename from test_configs/lxc_filesystem_test.json rename to tests/configs/lxc_filesystem_test.json diff --git a/test_configs/lxc_network_test.json b/tests/configs/lxc_network_test.json similarity index 100% rename from test_configs/lxc_network_test.json rename to tests/configs/lxc_network_test.json diff --git a/test_configs/lxc_timeout.json b/tests/configs/lxc_timeout.json similarity index 100% rename from test_configs/lxc_timeout.json rename to tests/configs/lxc_timeout.json diff --git a/test_configs/microvm_error.json b/tests/configs/microvm_error.json similarity index 100% rename from test_configs/microvm_error.json rename to tests/configs/microvm_error.json diff --git a/test_configs/microvm_error_linux.json b/tests/configs/microvm_error_linux.json similarity index 100% rename from test_configs/microvm_error_linux.json rename to tests/configs/microvm_error_linux.json diff --git a/test_configs/microvm_exit_code.json b/tests/configs/microvm_exit_code.json similarity index 100% rename from test_configs/microvm_exit_code.json rename to tests/configs/microvm_exit_code.json diff --git a/test_configs/microvm_exit_code_linux.json b/tests/configs/microvm_exit_code_linux.json similarity index 100% rename from test_configs/microvm_exit_code_linux.json rename to tests/configs/microvm_exit_code_linux.json diff --git a/test_configs/microvm_hello.json b/tests/configs/microvm_hello.json similarity index 100% rename from test_configs/microvm_hello.json rename to tests/configs/microvm_hello.json diff --git a/test_configs/microvm_hello_linux.json b/tests/configs/microvm_hello_linux.json similarity index 100% rename from test_configs/microvm_hello_linux.json rename to tests/configs/microvm_hello_linux.json diff --git a/test_configs/microvm_large_output.json b/tests/configs/microvm_large_output.json similarity index 100% rename from test_configs/microvm_large_output.json rename to tests/configs/microvm_large_output.json diff --git a/test_configs/microvm_large_output_linux.json b/tests/configs/microvm_large_output_linux.json similarity index 100% rename from test_configs/microvm_large_output_linux.json rename to tests/configs/microvm_large_output_linux.json diff --git a/test_configs/microvm_multiline.json b/tests/configs/microvm_multiline.json similarity index 100% rename from test_configs/microvm_multiline.json rename to tests/configs/microvm_multiline.json diff --git a/test_configs/microvm_multiline_linux.json b/tests/configs/microvm_multiline_linux.json similarity index 100% rename from test_configs/microvm_multiline_linux.json rename to tests/configs/microvm_multiline_linux.json diff --git a/test_configs/microvm_stdlib.json b/tests/configs/microvm_stdlib.json similarity index 100% rename from test_configs/microvm_stdlib.json rename to tests/configs/microvm_stdlib.json diff --git a/test_configs/microvm_stdlib_linux.json b/tests/configs/microvm_stdlib_linux.json similarity index 100% rename from test_configs/microvm_stdlib_linux.json rename to tests/configs/microvm_stdlib_linux.json diff --git a/test_configs/microvm_timeout.json b/tests/configs/microvm_timeout.json similarity index 100% rename from test_configs/microvm_timeout.json rename to tests/configs/microvm_timeout.json diff --git a/test_configs/microvm_timeout_linux.json b/tests/configs/microvm_timeout_linux.json similarity index 100% rename from test_configs/microvm_timeout_linux.json rename to tests/configs/microvm_timeout_linux.json diff --git a/test_configs/network_both_test.json b/tests/configs/network_both_test.json similarity index 100% rename from test_configs/network_both_test.json rename to tests/configs/network_both_test.json diff --git a/test_configs/network_capabilities_test.json b/tests/configs/network_capabilities_test.json similarity index 100% rename from test_configs/network_capabilities_test.json rename to tests/configs/network_capabilities_test.json diff --git a/test_configs/network_default_test.json b/tests/configs/network_default_test.json similarity index 100% rename from test_configs/network_default_test.json rename to tests/configs/network_default_test.json diff --git a/test_configs/network_firewall_test.json b/tests/configs/network_firewall_test.json similarity index 100% rename from test_configs/network_firewall_test.json rename to tests/configs/network_firewall_test.json diff --git a/test_configs/proxy_builtin_test.json b/tests/configs/proxy_builtin_test.json similarity index 100% rename from test_configs/proxy_builtin_test.json rename to tests/configs/proxy_builtin_test.json diff --git a/test_configs/pwsh_setlocation.json b/tests/configs/pwsh_setlocation.json similarity index 100% rename from test_configs/pwsh_setlocation.json rename to tests/configs/pwsh_setlocation.json diff --git a/test_configs/rejected_version_too_old.json b/tests/configs/rejected_version_too_old.json similarity index 100% rename from test_configs/rejected_version_too_old.json rename to tests/configs/rejected_version_too_old.json diff --git a/test_configs/windows_sandbox_custom_timeout.json b/tests/configs/windows_sandbox_custom_timeout.json similarity index 100% rename from test_configs/windows_sandbox_custom_timeout.json rename to tests/configs/windows_sandbox_custom_timeout.json diff --git a/test_configs/windows_sandbox_echo.json b/tests/configs/windows_sandbox_echo.json similarity index 100% rename from test_configs/windows_sandbox_echo.json rename to tests/configs/windows_sandbox_echo.json diff --git a/test_configs/windows_sandbox_exit_code.json b/tests/configs/windows_sandbox_exit_code.json similarity index 100% rename from test_configs/windows_sandbox_exit_code.json rename to tests/configs/windows_sandbox_exit_code.json diff --git a/test_configs/windows_sandbox_powershell.json b/tests/configs/windows_sandbox_powershell.json similarity index 100% rename from test_configs/windows_sandbox_powershell.json rename to tests/configs/windows_sandbox_powershell.json diff --git a/test_configs/windows_sandbox_powershell_env.json b/tests/configs/windows_sandbox_powershell_env.json similarity index 100% rename from test_configs/windows_sandbox_powershell_env.json rename to tests/configs/windows_sandbox_powershell_env.json diff --git a/test_configs/windows_sandbox_stderr.json b/tests/configs/windows_sandbox_stderr.json similarity index 100% rename from test_configs/windows_sandbox_stderr.json rename to tests/configs/windows_sandbox_stderr.json diff --git a/test_configs/windows_sandbox_timeout.json b/tests/configs/windows_sandbox_timeout.json similarity index 100% rename from test_configs/windows_sandbox_timeout.json rename to tests/configs/windows_sandbox_timeout.json diff --git a/test_configs/with_capabilities.json b/tests/configs/with_capabilities.json similarity index 100% rename from test_configs/with_capabilities.json rename to tests/configs/with_capabilities.json diff --git a/test_configs/wslc_custom_registry.json b/tests/configs/wslc_custom_registry.json similarity index 100% rename from test_configs/wslc_custom_registry.json rename to tests/configs/wslc_custom_registry.json diff --git a/test_configs/wslc_custom_registry_ghcr.json b/tests/configs/wslc_custom_registry_ghcr.json similarity index 100% rename from test_configs/wslc_custom_registry_ghcr.json rename to tests/configs/wslc_custom_registry_ghcr.json diff --git a/test_configs/wslc_custom_registry_quay.json b/tests/configs/wslc_custom_registry_quay.json similarity index 100% rename from test_configs/wslc_custom_registry_quay.json rename to tests/configs/wslc_custom_registry_quay.json diff --git a/test_configs/wslc_env_vars.json b/tests/configs/wslc_env_vars.json similarity index 100% rename from test_configs/wslc_env_vars.json rename to tests/configs/wslc_env_vars.json diff --git a/test_configs/wslc_exit_code.json b/tests/configs/wslc_exit_code.json similarity index 100% rename from test_configs/wslc_exit_code.json rename to tests/configs/wslc_exit_code.json diff --git a/test_configs/wslc_filesystem.json b/tests/configs/wslc_filesystem.json similarity index 100% rename from test_configs/wslc_filesystem.json rename to tests/configs/wslc_filesystem.json diff --git a/test_configs/wslc_large_output.json b/tests/configs/wslc_large_output.json similarity index 100% rename from test_configs/wslc_large_output.json rename to tests/configs/wslc_large_output.json diff --git a/test_configs/wslc_network_isolated.json b/tests/configs/wslc_network_isolated.json similarity index 100% rename from test_configs/wslc_network_isolated.json rename to tests/configs/wslc_network_isolated.json diff --git a/test_configs/wslc_python_hello.json b/tests/configs/wslc_python_hello.json similarity index 100% rename from test_configs/wslc_python_hello.json rename to tests/configs/wslc_python_hello.json diff --git a/test_configs/wslc_python_stdlib.json b/tests/configs/wslc_python_stdlib.json similarity index 100% rename from test_configs/wslc_python_stdlib.json rename to tests/configs/wslc_python_stdlib.json diff --git a/test_configs/wslc_readonly_mount.json b/tests/configs/wslc_readonly_mount.json similarity index 100% rename from test_configs/wslc_readonly_mount.json rename to tests/configs/wslc_readonly_mount.json diff --git a/test_configs/wslc_stderr.json b/tests/configs/wslc_stderr.json similarity index 100% rename from test_configs/wslc_stderr.json rename to tests/configs/wslc_stderr.json diff --git a/test_configs/wslc_tar_import_docker_save.json b/tests/configs/wslc_tar_import_docker_save.json similarity index 100% rename from test_configs/wslc_tar_import_docker_save.json rename to tests/configs/wslc_tar_import_docker_save.json diff --git a/test_configs/wslc_tar_import_rootfs.json b/tests/configs/wslc_tar_import_rootfs.json similarity index 100% rename from test_configs/wslc_tar_import_rootfs.json rename to tests/configs/wslc_tar_import_rootfs.json diff --git a/test_configs/wslc_timeout.json b/tests/configs/wslc_timeout.json similarity index 100% rename from test_configs/wslc_timeout.json rename to tests/configs/wslc_timeout.json diff --git a/examples/01_hello_world.json b/tests/examples/01_hello_world.json similarity index 100% rename from examples/01_hello_world.json rename to tests/examples/01_hello_world.json diff --git a/examples/02_filesystem_access.json b/tests/examples/02_filesystem_access.json similarity index 100% rename from examples/02_filesystem_access.json rename to tests/examples/02_filesystem_access.json diff --git a/examples/03_network_restricted.json b/tests/examples/03_network_restricted.json similarity index 100% rename from examples/03_network_restricted.json rename to tests/examples/03_network_restricted.json diff --git a/examples/04_combined_restrictions.json b/tests/examples/04_combined_restrictions.json similarity index 100% rename from examples/04_combined_restrictions.json rename to tests/examples/04_combined_restrictions.json diff --git a/examples/05_custom_python.json b/tests/examples/05_custom_python.json similarity index 100% rename from examples/05_custom_python.json rename to tests/examples/05_custom_python.json diff --git a/examples/06_network_capabilities_only.json b/tests/examples/06_network_capabilities_only.json similarity index 100% rename from examples/06_network_capabilities_only.json rename to tests/examples/06_network_capabilities_only.json diff --git a/examples/07_test_delete.json b/tests/examples/07_test_delete.json similarity index 100% rename from examples/07_test_delete.json rename to tests/examples/07_test_delete.json diff --git a/examples/08_pwsh.json b/tests/examples/08_pwsh.json similarity index 100% rename from examples/08_pwsh.json rename to tests/examples/08_pwsh.json diff --git a/examples/09_windows_sandbox_hello_world.json b/tests/examples/09_windows_sandbox_hello_world.json similarity index 100% rename from examples/09_windows_sandbox_hello_world.json rename to tests/examples/09_windows_sandbox_hello_world.json diff --git a/examples/10_windows_sandbox_network_isolated.json b/tests/examples/10_windows_sandbox_network_isolated.json similarity index 100% rename from examples/10_windows_sandbox_network_isolated.json rename to tests/examples/10_windows_sandbox_network_isolated.json diff --git a/examples/11_localhost_proxy_processcontainer.json b/tests/examples/11_localhost_proxy_processcontainer.json similarity index 100% rename from examples/11_localhost_proxy_processcontainer.json rename to tests/examples/11_localhost_proxy_processcontainer.json diff --git a/examples/11_lxc_hello_world.json b/tests/examples/11_lxc_hello_world.json similarity index 100% rename from examples/11_lxc_hello_world.json rename to tests/examples/11_lxc_hello_world.json diff --git a/examples/12_builtin_test_proxy_processcontainer.json b/tests/examples/12_builtin_test_proxy_processcontainer.json similarity index 100% rename from examples/12_builtin_test_proxy_processcontainer.json rename to tests/examples/12_builtin_test_proxy_processcontainer.json diff --git a/examples/12_lxc_filesystem_access.json b/tests/examples/12_lxc_filesystem_access.json similarity index 100% rename from examples/12_lxc_filesystem_access.json rename to tests/examples/12_lxc_filesystem_access.json diff --git a/examples/13_lxc_network_restricted.json b/tests/examples/13_lxc_network_restricted.json similarity index 100% rename from examples/13_lxc_network_restricted.json rename to tests/examples/13_lxc_network_restricted.json diff --git a/examples/15_mac_hello_world.json b/tests/examples/15_mac_hello_world.json similarity index 100% rename from examples/15_mac_hello_world.json rename to tests/examples/15_mac_hello_world.json diff --git a/examples/16_mac_deny_network.json b/tests/examples/16_mac_deny_network.json similarity index 100% rename from examples/16_mac_deny_network.json rename to tests/examples/16_mac_deny_network.json diff --git a/examples/17_mac_deny_filesystem.json b/tests/examples/17_mac_deny_filesystem.json similarity index 100% rename from examples/17_mac_deny_filesystem.json rename to tests/examples/17_mac_deny_filesystem.json diff --git a/examples/18_mac_filesystem_access.json b/tests/examples/18_mac_filesystem_access.json similarity index 100% rename from examples/18_mac_filesystem_access.json rename to tests/examples/18_mac_filesystem_access.json diff --git a/examples/19_mac_network_restricted.json b/tests/examples/19_mac_network_restricted.json similarity index 100% rename from examples/19_mac_network_restricted.json rename to tests/examples/19_mac_network_restricted.json diff --git a/examples/20_mac_combined_restrictions.json b/tests/examples/20_mac_combined_restrictions.json similarity index 100% rename from examples/20_mac_combined_restrictions.json rename to tests/examples/20_mac_combined_restrictions.json diff --git a/examples/21_mac_python_info.json b/tests/examples/21_mac_python_info.json similarity index 100% rename from examples/21_mac_python_info.json rename to tests/examples/21_mac_python_info.json diff --git a/examples/22_mac_network_allow_all.json b/tests/examples/22_mac_network_allow_all.json similarity index 100% rename from examples/22_mac_network_allow_all.json rename to tests/examples/22_mac_network_allow_all.json diff --git a/examples/23_mac_blocked_hosts_unsupported.json b/tests/examples/23_mac_blocked_hosts_unsupported.json similarity index 100% rename from examples/23_mac_blocked_hosts_unsupported.json rename to tests/examples/23_mac_blocked_hosts_unsupported.json diff --git a/examples/24_mac_ui_disabled.json b/tests/examples/24_mac_ui_disabled.json similarity index 100% rename from examples/24_mac_ui_disabled.json rename to tests/examples/24_mac_ui_disabled.json diff --git a/examples/25_mac_ui_clipboard_enabled.json b/tests/examples/25_mac_ui_clipboard_enabled.json similarity index 100% rename from examples/25_mac_ui_clipboard_enabled.json rename to tests/examples/25_mac_ui_clipboard_enabled.json diff --git a/examples/26_mac_gui_access.json b/tests/examples/26_mac_gui_access.json similarity index 100% rename from examples/26_mac_gui_access.json rename to tests/examples/26_mac_gui_access.json diff --git a/examples/27_mac_terminal_sandboxed.json b/tests/examples/27_mac_terminal_sandboxed.json similarity index 100% rename from examples/27_mac_terminal_sandboxed.json rename to tests/examples/27_mac_terminal_sandboxed.json diff --git a/examples/wslc_hello_world.json b/tests/examples/wslc_hello_world.json similarity index 100% rename from examples/wslc_hello_world.json rename to tests/examples/wslc_hello_world.json diff --git a/playground/.gitignore b/tests/playground/.gitignore similarity index 100% rename from playground/.gitignore rename to tests/playground/.gitignore diff --git a/playground/build-renderer.js b/tests/playground/build-renderer.js similarity index 100% rename from playground/build-renderer.js rename to tests/playground/build-renderer.js diff --git a/playground/package-lock.json b/tests/playground/package-lock.json similarity index 100% rename from playground/package-lock.json rename to tests/playground/package-lock.json diff --git a/playground/package.json b/tests/playground/package.json similarity index 100% rename from playground/package.json rename to tests/playground/package.json diff --git a/playground/src/main/main.ts b/tests/playground/src/main/main.ts similarity index 100% rename from playground/src/main/main.ts rename to tests/playground/src/main/main.ts diff --git a/playground/src/main/preload.ts b/tests/playground/src/main/preload.ts similarity index 100% rename from playground/src/main/preload.ts rename to tests/playground/src/main/preload.ts diff --git a/playground/src/renderer/app.ts b/tests/playground/src/renderer/app.ts similarity index 100% rename from playground/src/renderer/app.ts rename to tests/playground/src/renderer/app.ts diff --git a/playground/src/renderer/index.html b/tests/playground/src/renderer/index.html similarity index 100% rename from playground/src/renderer/index.html rename to tests/playground/src/renderer/index.html diff --git a/playground/src/renderer/styles.css b/tests/playground/src/renderer/styles.css similarity index 100% rename from playground/src/renderer/styles.css rename to tests/playground/src/renderer/styles.css diff --git a/playground/test-scripts/winhttp-proxy-test.ps1 b/tests/playground/test-scripts/winhttp-proxy-test.ps1 similarity index 100% rename from playground/test-scripts/winhttp-proxy-test.ps1 rename to tests/playground/test-scripts/winhttp-proxy-test.ps1 diff --git a/playground/tsconfig.main.json b/tests/playground/tsconfig.main.json similarity index 100% rename from playground/tsconfig.main.json rename to tests/playground/tsconfig.main.json diff --git a/playground/tsconfig.renderer.json b/tests/playground/tsconfig.renderer.json similarity index 100% rename from playground/tsconfig.renderer.json rename to tests/playground/tsconfig.renderer.json diff --git a/test_scripts/README.md b/tests/scripts/README.md similarity index 94% rename from test_scripts/README.md rename to tests/scripts/README.md index f01bb76ff..654e5aebd 100644 --- a/test_scripts/README.md +++ b/tests/scripts/README.md @@ -50,7 +50,7 @@ and the operator observes the output to confirm healthy behavior. Invoke from `cmd.exe`: ```cmd -powershell -ExecutionPolicy Bypass -File test_scripts\run_isolation_session_resize_smoke.ps1 +powershell -ExecutionPolicy Bypass -File tests\scripts\run_isolation_session_resize_smoke.ps1 ``` ### Deployment helpers @@ -63,7 +63,7 @@ itself and takes a `-ComputerName` / `-VMName` plus `-Credential`. | Script | Copies | Transport | |--------|--------|-----------| | `push_exes_to_vm.ps1` | Native Rust binaries (Debug + Release) | TShell (active `Open-Device` session) | -| `push_batch_and_config_files_to_vm.ps1` | `test_configs\`, `examples\`, runner batch files, helper scripts | TShell (active `Open-Device` session) | +| `push_batch_and_config_files_to_vm.ps1` | `tests\configs\`, `examples\`, runner batch files, helper scripts | TShell (active `Open-Device` session) | | `push_sdk_integration_tests_to_vm.ps1` | SDK integration test artifacts (`sdk\bin\x64`, compiled tests, `node_modules`, `package.json`, `run-tests.js`) | PowerShell Remoting (`-ComputerName`/`-VMName` + `-Credential`) | CI currently runs the MicroVM Rust E2E suite when WHP is available. Other @@ -113,7 +113,7 @@ Run them explicitly on capable machines with | `test_filesystem_bfs_readonly` | Requires velocity key 61714527 (BFS deadlock fix) | | `test_filesystem_bfs_spaces` | Requires velocity key 61714527 (BFS deadlock fix) | | `test_pwsh_setlocation` | Requires velocity key 61714527 (BFS deadlock fix) | -| `test_test_configs` | Requires velocity key 61714527 (BFS deadlock fix) | +| `test_tests\configs` | Requires velocity key 61714527 (BFS deadlock fix) | | `test_examples` | Requires velocity key 61714527 (BFS deadlock fix) | | `test_appcontainer_proxy` | Requires velocity key 61714527 (BFS deadlock fix) and elevation | | `test_on_repeat` | Stress test (loops BFS tests) | diff --git a/test_scripts/T3-Workloads.ps1 b/tests/scripts/T3-Workloads.ps1 similarity index 99% rename from test_scripts/T3-Workloads.ps1 rename to tests/scripts/T3-Workloads.ps1 index 81646bc9f..7bf100d19 100644 --- a/test_scripts/T3-Workloads.ps1 +++ b/tests/scripts/T3-Workloads.ps1 @@ -16,10 +16,10 @@ [CmdletBinding()] param( - # Default assumes the script lives at \test_scripts\ and the + # Default assumes the script lives at \tests\scripts\ and the # built binary is at \src\target\debug\wxc-exec.exe. Override # -Wxc explicitly if the layout differs. - [string]$Wxc = (Join-Path (Split-Path -Parent $PSScriptRoot) 'src\target\debug\wxc-exec.exe'), + [string]$Wxc = (Join-Path (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) 'src\target\debug\wxc-exec.exe'), [string]$ScratchRoot = (Join-Path $env:TEMP 'mxc-t3-workloads'), # Subset of workloads to run. Default: all nineteen. [int[]] $Run = @(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), diff --git a/test_scripts/Win25H2Safe-Tests.ps1 b/tests/scripts/Win25H2Safe-Tests.ps1 similarity index 99% rename from test_scripts/Win25H2Safe-Tests.ps1 rename to tests/scripts/Win25H2Safe-Tests.ps1 index 61a7260ad..d539ee9da 100644 --- a/test_scripts/Win25H2Safe-Tests.ps1 +++ b/tests/scripts/Win25H2Safe-Tests.ps1 @@ -31,10 +31,10 @@ [CmdletBinding()] param( - # Defaults assume the script lives at \test_scripts\; the + # Defaults assume the script lives at \tests\scripts\; the # cargo workspace and built binaries are under \src\. Override # any of these explicitly if the layout differs. - [string]$RepoRoot = (Split-Path -Parent $PSScriptRoot), + [string]$RepoRoot = (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)), [string]$CargoRoot = (Join-Path $RepoRoot 'src'), [string]$WxcDebug = (Join-Path $RepoRoot 'src\target\debug\wxc-exec.exe'), [string]$WxcRelease = (Join-Path $RepoRoot 'src\target\release\wxc-exec.exe'), diff --git a/tests/scripts/push_batch_and_config_files_to_vm.ps1 b/tests/scripts/push_batch_and_config_files_to_vm.ps1 new file mode 100644 index 000000000..bb562409b --- /dev/null +++ b/tests/scripts/push_batch_and_config_files_to_vm.ps1 @@ -0,0 +1,4 @@ +putd ..\configs WXC\tests\configs\ +putd ..\examples WXC\tests\examples\ +putd run*.bat WXC\tests\scripts\ +putd sort_numbers.py WXC \ No newline at end of file diff --git a/test_scripts/push_exes_to_vm.ps1 b/tests/scripts/push_exes_to_vm.ps1 similarity index 100% rename from test_scripts/push_exes_to_vm.ps1 rename to tests/scripts/push_exes_to_vm.ps1 diff --git a/test_scripts/push_sdk_integration_tests_to_vm.ps1 b/tests/scripts/push_sdk_integration_tests_to_vm.ps1 similarity index 100% rename from test_scripts/push_sdk_integration_tests_to_vm.ps1 rename to tests/scripts/push_sdk_integration_tests_to_vm.ps1 diff --git a/test_scripts/run_appcontainer_proxy_tests.ps1 b/tests/scripts/run_appcontainer_proxy_tests.ps1 similarity index 94% rename from test_scripts/run_appcontainer_proxy_tests.ps1 rename to tests/scripts/run_appcontainer_proxy_tests.ps1 index 6edd468aa..e1ab47380 100644 --- a/test_scripts/run_appcontainer_proxy_tests.ps1 +++ b/tests/scripts/run_appcontainer_proxy_tests.ps1 @@ -10,9 +10,9 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) $TestDriverCrate = Join-Path $RepoRoot "src\wxc_test_driver" -$TestConfigs = Join-Path $RepoRoot "test_configs" +$TestConfigs = Join-Path $RepoRoot "tests\configs" if (-not $BinDir) { # Build once diff --git a/test_scripts/run_basicac_test.ps1 b/tests/scripts/run_basicac_test.ps1 similarity index 86% rename from test_scripts/run_basicac_test.ps1 rename to tests/scripts/run_basicac_test.ps1 index 4714dfcf6..95d5294f2 100644 --- a/test_scripts/run_basicac_test.ps1 +++ b/tests/scripts/run_basicac_test.ps1 @@ -13,7 +13,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -24,7 +24,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\basic_processcontainer.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\basic_processcontainer.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_bwrap_all_tests.sh b/tests/scripts/run_bwrap_all_tests.sh similarity index 100% rename from test_scripts/run_bwrap_all_tests.sh rename to tests/scripts/run_bwrap_all_tests.sh diff --git a/test_scripts/run_bwrap_basic_test.sh b/tests/scripts/run_bwrap_basic_test.sh similarity index 77% rename from test_scripts/run_bwrap_basic_test.sh rename to tests/scripts/run_bwrap_basic_test.sh index f24d6f536..c586bad98 100644 --- a/test_scripts/run_bwrap_basic_test.sh +++ b/tests/scripts/run_bwrap_basic_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -16,5 +16,5 @@ if [ ! -f "$LXC_EXEC" ]; then fi echo "Running basic Bubblewrap test..." -"$LXC_EXEC" --experimental "$REPO_DIR/test_configs/bubblewrap_basic.json" +"$LXC_EXEC" --experimental "$REPO_DIR/tests/configs/bubblewrap_basic.json" echo "Basic Bubblewrap test complete." diff --git a/test_scripts/run_bwrap_filesystem_test.sh b/tests/scripts/run_bwrap_filesystem_test.sh similarity index 88% rename from test_scripts/run_bwrap_filesystem_test.sh rename to tests/scripts/run_bwrap_filesystem_test.sh index 204430308..a9750d83c 100644 --- a/test_scripts/run_bwrap_filesystem_test.sh +++ b/tests/scripts/run_bwrap_filesystem_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -26,7 +26,7 @@ echo "test content" | sudo tee "$RO_DIR/test.txt" > /dev/null echo "should not see this" | sudo tee "$DENIED_DIR/secret.txt" > /dev/null echo "Running Bubblewrap filesystem test..." -"$LXC_EXEC" --experimental "$REPO_DIR/test_configs/bubblewrap_filesystem.json" +"$LXC_EXEC" --experimental "$REPO_DIR/tests/configs/bubblewrap_filesystem.json" echo "Bubblewrap filesystem test complete." # Verify the write succeeded diff --git a/test_scripts/run_bwrap_network_proxy_test.sh b/tests/scripts/run_bwrap_network_proxy_test.sh similarity index 90% rename from test_scripts/run_bwrap_network_proxy_test.sh rename to tests/scripts/run_bwrap_network_proxy_test.sh index eba71d1c9..478f17ad4 100644 --- a/test_scripts/run_bwrap_network_proxy_test.sh +++ b/tests/scripts/run_bwrap_network_proxy_test.sh @@ -6,7 +6,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -24,7 +24,7 @@ run_one() { local sentinel="$3" echo "Running Bubblewrap network proxy test: $label..." local out - if ! out=$("$LXC_EXEC" --experimental "$REPO_DIR/test_configs/$config" 2>&1); then + if ! out=$("$LXC_EXEC" --experimental "$REPO_DIR/tests/configs/$config" 2>&1); then echo "$out" echo "FAIL: $label (lxc-exec returned non-zero)" return 1 diff --git a/test_scripts/run_bwrap_network_test.sh b/tests/scripts/run_bwrap_network_test.sh similarity index 81% rename from test_scripts/run_bwrap_network_test.sh rename to tests/scripts/run_bwrap_network_test.sh index e1e8802ee..66368d654 100644 --- a/test_scripts/run_bwrap_network_test.sh +++ b/tests/scripts/run_bwrap_network_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -16,7 +16,7 @@ if [ ! -f "$LXC_EXEC" ]; then fi echo "Running Bubblewrap network block test..." -OUTPUT=$("$LXC_EXEC" --experimental "$REPO_DIR/test_configs/bubblewrap_network_block.json" 2>&1 || true) +OUTPUT=$("$LXC_EXEC" --experimental "$REPO_DIR/tests/configs/bubblewrap_network_block.json" 2>&1 || true) echo "$OUTPUT" if echo "$OUTPUT" | grep -qi "blocked\|network.*correctly\|connection refused\|network is unreachable"; then diff --git a/test_scripts/run_dacl_tests.ps1 b/tests/scripts/run_dacl_tests.ps1 similarity index 95% rename from test_scripts/run_dacl_tests.ps1 rename to tests/scripts/run_dacl_tests.ps1 index a352ab481..c29d20320 100644 --- a/test_scripts/run_dacl_tests.ps1 +++ b/tests/scripts/run_dacl_tests.ps1 @@ -24,7 +24,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) $SrcDir = Join-Path $RepoRoot "src" Push-Location $SrcDir diff --git a/test_scripts/run_examples.ps1 b/tests/scripts/run_examples.ps1 similarity index 92% rename from test_scripts/run_examples.ps1 rename to tests/scripts/run_examples.ps1 index 4b0f992a4..697b2978a 100644 --- a/test_scripts/run_examples.ps1 +++ b/tests/scripts/run_examples.ps1 @@ -15,7 +15,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -26,7 +26,7 @@ if (-not $BinDir) { } $TestDriver = Join-Path $BinDir "wxc-test-driver.exe" -$ExamplesDir = Join-Path $RepoRoot "examples" +$ExamplesDir = Join-Path $RepoRoot "tests\examples" if (-not (Test-Path $TestDriver)) { Write-Host "ERROR: wxc-test-driver.exe not found at $TestDriver" -ForegroundColor Red diff --git a/test_scripts/run_filesystem_bfs_spaces_test.ps1 b/tests/scripts/run_filesystem_bfs_spaces_test.ps1 similarity index 87% rename from test_scripts/run_filesystem_bfs_spaces_test.ps1 rename to tests/scripts/run_filesystem_bfs_spaces_test.ps1 index 615b0e539..12d496a0f 100644 --- a/test_scripts/run_filesystem_bfs_spaces_test.ps1 +++ b/tests/scripts/run_filesystem_bfs_spaces_test.ps1 @@ -7,7 +7,7 @@ param( ) $ErrorActionPreference = 'Stop' -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -18,7 +18,7 @@ if (-not $BinDir) { } $wxcExe = Join-Path $BinDir "wxc-exec.exe" -$testConfig = Join-Path $RepoRoot "test_configs\filesystem_bfs_spaces_test.json" +$testConfig = Join-Path $RepoRoot "tests\configs\filesystem_bfs_spaces_test.json" $testDir = "C:\Users\Public\wxc bfs test" if (-not (Test-Path $wxcExe)) { diff --git a/test_scripts/run_filesystem_bfs_test.ps1 b/tests/scripts/run_filesystem_bfs_test.ps1 similarity index 90% rename from test_scripts/run_filesystem_bfs_test.ps1 rename to tests/scripts/run_filesystem_bfs_test.ps1 index d67e4caaa..bdcce45c0 100644 --- a/test_scripts/run_filesystem_bfs_test.ps1 +++ b/tests/scripts/run_filesystem_bfs_test.ps1 @@ -15,7 +15,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -26,7 +26,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\filesystem_bfs_test.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\filesystem_bfs_test.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_filesystem_bfsreadonly_test.ps1 b/tests/scripts/run_filesystem_bfsreadonly_test.ps1 similarity index 90% rename from test_scripts/run_filesystem_bfsreadonly_test.ps1 rename to tests/scripts/run_filesystem_bfsreadonly_test.ps1 index c2758b1f8..dad422003 100644 --- a/test_scripts/run_filesystem_bfsreadonly_test.ps1 +++ b/tests/scripts/run_filesystem_bfsreadonly_test.ps1 @@ -15,7 +15,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -26,7 +26,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\filesystem_bfs_readonly_test.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\filesystem_bfs_readonly_test.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_isolation_session_resize_smoke.ps1 b/tests/scripts/run_isolation_session_resize_smoke.ps1 similarity index 97% rename from test_scripts/run_isolation_session_resize_smoke.ps1 rename to tests/scripts/run_isolation_session_resize_smoke.ps1 index f89e43e64..b77341e2b 100644 --- a/test_scripts/run_isolation_session_resize_smoke.ps1 +++ b/tests/scripts/run_isolation_session_resize_smoke.ps1 @@ -48,7 +48,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) # ---------------- Locate wxc-exec.exe ---------------- @@ -143,7 +143,7 @@ $encodedLoop = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($loop # ---------------- Build the wxc-exec config envelope ---------------- # -# Shape matches test_configs/isolation_session_powershell_interactive.json: +# Shape matches tests/configs/isolation_session_powershell_interactive.json: # top-level version + containerId + containment + process. timeout=0 lets # the loop run until Ctrl-C. diff --git a/test_scripts/run_isolation_session_state_aware_tests.ps1 b/tests/scripts/run_isolation_session_state_aware_tests.ps1 similarity index 99% rename from test_scripts/run_isolation_session_state_aware_tests.ps1 rename to tests/scripts/run_isolation_session_state_aware_tests.ps1 index 74adb037a..13bac6786 100644 --- a/test_scripts/run_isolation_session_state_aware_tests.ps1 +++ b/tests/scripts/run_isolation_session_state_aware_tests.ps1 @@ -33,12 +33,12 @@ .PARAMETER ConfigDir Directory holding the state-aware request fixture JSON files. Defaults - to /test_configs. Override on the VM where the deployed layout + to /tests/configs. Override on the VM where the deployed layout differs from the repo layout. .EXAMPLE .\run_isolation_session_state_aware_tests.ps1 - .\run_isolation_session_state_aware_tests.ps1 -WxcExePath C:\test\wxc-exec.exe -ConfigDir C:\test\test_configs + .\run_isolation_session_state_aware_tests.ps1 -WxcExePath C:\test\wxc-exec.exe -ConfigDir C:\test\tests\configs #> param( @@ -47,7 +47,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) # ---------------- Locate wxc-exec.exe ---------------- @@ -103,15 +103,15 @@ if (-not (Test-Path $IsoSessionOpsKey)) { # ---------------- Helpers ---------------- # Resolve the directory holding state-aware request fixtures. The -ConfigDir -# CLI parameter wins when supplied; otherwise default to /test_configs +# CLI parameter wins when supplied; otherwise default to /tests/configs # computed from $RepoRoot. if (-not $ConfigDir) { - $ConfigDir = Join-Path $RepoRoot "test_configs" + $ConfigDir = Join-Path $RepoRoot "tests\configs" } # Encode a state-aware request envelope and run wxc-exec against it. The # request comes either from an in-line hashtable or from a static JSON -# fixture file under test_configs/ (for the project-wide "test scenarios are +# fixture file under tests/configs/ (for the project-wide "test scenarios are # version-controlled JSON" pattern). When the fixture contains the # placeholder `{{SANDBOX_ID}}`, the caller must supply -SandboxId so it can # be substituted before the request is base64-encoded. Returns a hashtable diff --git a/test_scripts/run_isolation_session_tests.ps1 b/tests/scripts/run_isolation_session_tests.ps1 similarity index 99% rename from test_scripts/run_isolation_session_tests.ps1 rename to tests/scripts/run_isolation_session_tests.ps1 index 593b8076e..d128d2dcb 100644 --- a/test_scripts/run_isolation_session_tests.ps1 +++ b/tests/scripts/run_isolation_session_tests.ps1 @@ -45,7 +45,7 @@ release dirs relative to the repo root. .PARAMETER ConfigDir - Path to the test_configs directory. Defaults to ..\test_configs. + Path to the tests/configs directory. Defaults to ..\configs. .EXAMPLE .\run_isolation_session_tests.ps1 @@ -58,10 +58,10 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $ConfigDir) { - $ConfigDir = Join-Path $RepoRoot "test_configs" + $ConfigDir = Join-Path $RepoRoot "tests\configs" } # Locate wxc-exec.exe --explicit path > host-arch target dir > other-arch diff --git a/test_scripts/run_linux_process_default_test.sh b/tests/scripts/run_linux_process_default_test.sh similarity index 83% rename from test_scripts/run_linux_process_default_test.sh rename to tests/scripts/run_linux_process_default_test.sh index 9b003f80d..d72014cfc 100644 --- a/test_scripts/run_linux_process_default_test.sh +++ b/tests/scripts/run_linux_process_default_test.sh @@ -9,7 +9,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -22,10 +22,10 @@ if [ ! -f "$LXC_EXEC" ]; then fi echo "Running default Linux process test (containment omitted)..." -"$LXC_EXEC" "$REPO_DIR/test_configs/linux_process_default.json" +"$LXC_EXEC" "$REPO_DIR/tests/configs/linux_process_default.json" echo "Default Linux process test complete." echo "" echo "Running abstract process containment test (containment: \"process\")..." -"$LXC_EXEC" "$REPO_DIR/test_configs/linux_process_abstract.json" +"$LXC_EXEC" "$REPO_DIR/tests/configs/linux_process_abstract.json" echo "Abstract process containment test complete." diff --git a/test_scripts/run_lpacac_test.ps1 b/tests/scripts/run_lpacac_test.ps1 similarity index 87% rename from test_scripts/run_lpacac_test.ps1 rename to tests/scripts/run_lpacac_test.ps1 index acc857de6..387bcea37 100644 --- a/test_scripts/run_lpacac_test.ps1 +++ b/tests/scripts/run_lpacac_test.ps1 @@ -13,7 +13,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -24,7 +24,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\basic_lpac.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\basic_lpac.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_lxc_all_tests.sh b/tests/scripts/run_lxc_all_tests.sh similarity index 100% rename from test_scripts/run_lxc_all_tests.sh rename to tests/scripts/run_lxc_all_tests.sh diff --git a/test_scripts/run_lxc_basic_test.sh b/tests/scripts/run_lxc_basic_test.sh similarity index 80% rename from test_scripts/run_lxc_basic_test.sh rename to tests/scripts/run_lxc_basic_test.sh index 6663d2fe7..ec8638f00 100644 --- a/test_scripts/run_lxc_basic_test.sh +++ b/tests/scripts/run_lxc_basic_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -16,5 +16,5 @@ if [ ! -f "$LXC_EXEC" ]; then fi echo "Running basic LXC test..." -"$LXC_EXEC" "$REPO_DIR/test_configs/basic_lxc.json" +"$LXC_EXEC" "$REPO_DIR/tests/configs/basic_lxc.json" echo "Basic LXC test complete." diff --git a/test_scripts/run_lxc_filesystem_test.sh b/tests/scripts/run_lxc_filesystem_test.sh similarity index 88% rename from test_scripts/run_lxc_filesystem_test.sh rename to tests/scripts/run_lxc_filesystem_test.sh index f859698b4..1e85142b7 100644 --- a/test_scripts/run_lxc_filesystem_test.sh +++ b/tests/scripts/run_lxc_filesystem_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -25,7 +25,7 @@ echo "Readonly dir: $READONLY_DIR" echo "Readwrite dir: $READWRITE_DIR" # Update config paths dynamically -CONFIG=$(cat "$REPO_DIR/test_configs/lxc_filesystem_test.json" | \ +CONFIG=$(cat "$REPO_DIR/tests/configs/lxc_filesystem_test.json" | \ sed "s|/mnt/readonly|$READONLY_DIR|g" | \ sed "s|/mnt/readwrite|$READWRITE_DIR|g") diff --git a/test_scripts/run_lxc_network_test.sh b/tests/scripts/run_lxc_network_test.sh similarity index 79% rename from test_scripts/run_lxc_network_test.sh rename to tests/scripts/run_lxc_network_test.sh index 29ab446da..c2d3f93ea 100644 --- a/test_scripts/run_lxc_network_test.sh +++ b/tests/scripts/run_lxc_network_test.sh @@ -3,7 +3,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -16,5 +16,5 @@ if [ ! -f "$LXC_EXEC" ]; then fi echo "Running LXC network test..." -"$LXC_EXEC" "$REPO_DIR/test_configs/lxc_network_test.json" +"$LXC_EXEC" "$REPO_DIR/tests/configs/lxc_network_test.json" echo "LXC network test complete." diff --git a/test_scripts/run_lxc_timeout_test.sh b/tests/scripts/run_lxc_timeout_test.sh similarity index 94% rename from test_scripts/run_lxc_timeout_test.sh rename to tests/scripts/run_lxc_timeout_test.sh index 526d45f0b..92e4e4dd8 100644 --- a/test_scripts/run_lxc_timeout_test.sh +++ b/tests/scripts/run_lxc_timeout_test.sh @@ -13,7 +13,7 @@ set -uo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_DIR="$(dirname "$SCRIPT_DIR")" +REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" LXC_EXEC="$REPO_DIR/src/target/release/lxc-exec" if [ ! -f "$LXC_EXEC" ]; then @@ -32,7 +32,7 @@ trap 'rm -f "$STDERR_FILE"' EXIT START=$(date +%s) set +e -"$LXC_EXEC" "$REPO_DIR/test_configs/lxc_timeout.json" 2>"$STDERR_FILE" +"$LXC_EXEC" "$REPO_DIR/tests/configs/lxc_timeout.json" 2>"$STDERR_FILE" EXIT_CODE=$? set -e ELAPSED=$(($(date +%s) - START)) diff --git a/test_scripts/run_microvm_basic_test.ps1 b/tests/scripts/run_microvm_basic_test.ps1 similarity index 87% rename from test_scripts/run_microvm_basic_test.ps1 rename to tests/scripts/run_microvm_basic_test.ps1 index ee6f3b8dc..13fa18725 100644 --- a/test_scripts/run_microvm_basic_test.ps1 +++ b/tests/scripts/run_microvm_basic_test.ps1 @@ -13,7 +13,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -24,7 +24,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\microvm_hello.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\microvm_hello.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_microvm_tests.ps1 b/tests/scripts/run_microvm_tests.ps1 similarity index 98% rename from test_scripts/run_microvm_tests.ps1 rename to tests/scripts/run_microvm_tests.ps1 index 635763233..f9af0e893 100644 --- a/test_scripts/run_microvm_tests.ps1 +++ b/tests/scripts/run_microvm_tests.ps1 @@ -19,7 +19,7 @@ Explicit binary directory. Overrides -Release logic when provided. .PARAMETER ConfigDir - Path to test configs directory. Defaults to \test_configs + Path to test configs directory. Defaults to \tests\configs .EXAMPLE .\run_microvm_tests.ps1 @@ -34,7 +34,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -45,7 +45,7 @@ if (-not $BinDir) { } if (-not $ConfigDir) { - $ConfigDir = Join-Path $RepoRoot "test_configs" + $ConfigDir = Join-Path $RepoRoot "tests\configs" } $WxcExePath = Join-Path $BinDir "wxc-exec.exe" diff --git a/test_scripts/run_on_repeat.ps1 b/tests/scripts/run_on_repeat.ps1 similarity index 100% rename from test_scripts/run_on_repeat.ps1 rename to tests/scripts/run_on_repeat.ps1 diff --git a/test_scripts/run_pwsh_test.ps1 b/tests/scripts/run_pwsh_test.ps1 similarity index 87% rename from test_scripts/run_pwsh_test.ps1 rename to tests/scripts/run_pwsh_test.ps1 index bbdb270ba..9c2058846 100644 --- a/test_scripts/run_pwsh_test.ps1 +++ b/tests/scripts/run_pwsh_test.ps1 @@ -13,7 +13,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -24,7 +24,7 @@ if (-not $BinDir) { } $WxcExec = Join-Path $BinDir "wxc-exec.exe" -$TestConfig = Join-Path $RepoRoot "test_configs\pwsh_setlocation.json" +$TestConfig = Join-Path $RepoRoot "tests\configs\pwsh_setlocation.json" if (-not (Test-Path $WxcExec)) { Write-Host "ERROR: wxc-exec.exe not found at $WxcExec" -ForegroundColor Red diff --git a/test_scripts/run_test_configs.ps1 b/tests/scripts/run_test_configs.ps1 similarity index 88% rename from test_scripts/run_test_configs.ps1 rename to tests/scripts/run_test_configs.ps1 index 1a2302641..e90fea899 100644 --- a/test_scripts/run_test_configs.ps1 +++ b/tests/scripts/run_test_configs.ps1 @@ -15,7 +15,7 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) if (-not $BinDir) { if ($Release) { @@ -26,7 +26,7 @@ if (-not $BinDir) { } $TestDriver = Join-Path $BinDir "wxc-test-driver.exe" -$TestConfigsDir = Join-Path $RepoRoot "test_configs" +$TestConfigsDir = Join-Path $RepoRoot "tests\configs" if (-not (Test-Path $TestDriver)) { Write-Host "ERROR: wxc-test-driver.exe not found at $TestDriver" -ForegroundColor Red @@ -46,7 +46,7 @@ try { } Set-Content -Path "C:\temp\wxc_test_allowedreadonly\test_input.txt" -Value "Test Input" - Write-Host "Running wxc-test-driver against test_configs..." -ForegroundColor Cyan + Write-Host "Running wxc-test-driver against tests/configs..." -ForegroundColor Cyan & $TestDriver $TestConfigsDir $exitCode = $LASTEXITCODE diff --git a/test_scripts/run_windows_sandbox_tests.ps1 b/tests/scripts/run_windows_sandbox_tests.ps1 similarity index 98% rename from test_scripts/run_windows_sandbox_tests.ps1 rename to tests/scripts/run_windows_sandbox_tests.ps1 index 3ffd0be42..9cb59c815 100644 --- a/test_scripts/run_windows_sandbox_tests.ps1 +++ b/tests/scripts/run_windows_sandbox_tests.ps1 @@ -15,8 +15,8 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot -$TestConfigs = Join-Path $RepoRoot "test_configs" +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) +$TestConfigs = Join-Path $RepoRoot "tests\configs" # Find binaries if (-not $BinDir) { diff --git a/test_scripts/run_wslc_all_tests.ps1 b/tests/scripts/run_wslc_all_tests.ps1 similarity index 98% rename from test_scripts/run_wslc_all_tests.ps1 rename to tests/scripts/run_wslc_all_tests.ps1 index c581fe5bc..f9025dce0 100644 --- a/test_scripts/run_wslc_all_tests.ps1 +++ b/tests/scripts/run_wslc_all_tests.ps1 @@ -38,8 +38,8 @@ param( ) $ErrorActionPreference = "Stop" -$RepoRoot = Split-Path -Parent $PSScriptRoot -$TestConfigs = Join-Path $RepoRoot "test_configs" +$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)) +$TestConfigs = Join-Path $RepoRoot "tests\configs" # Find binary -- prefer explicit path, then probe target-specific and default dirs. $Target = "x86_64-pc-windows-msvc" diff --git a/test_scripts/script_test_prompt.txt b/tests/scripts/script_test_prompt.txt similarity index 100% rename from test_scripts/script_test_prompt.txt rename to tests/scripts/script_test_prompt.txt diff --git a/test_scripts/sort_numbers.py b/tests/scripts/sort_numbers.py similarity index 100% rename from test_scripts/sort_numbers.py rename to tests/scripts/sort_numbers.py