diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 8fd58f4..f10bc70 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -38,5 +38,17 @@ jobs: - name: Check disk usage parsing and install safeguards shell: pwsh run: ./tests/created-disk-usage.ps1 + - name: Check the manager requirement, port_base check and game port guard + shell: pwsh + run: ./tests/tooling-guards.ps1 + - name: Check how the r1999 item judges the M9A driver + shell: pwsh + run: ./tests/m9a-verdict.ps1 + - name: Check that test roots are existing roots and never the production root + shell: pwsh + run: ./tests/root-guards.ps1 + - name: Check that pointing a test root at the SDK under test is undone byte for byte + shell: pwsh + run: ./tests/root-sdk.ps1 - name: Scan tracked files for private identity and paths run: python3 .modavd/scripts/privacy.py . diff --git a/README.en.md b/README.en.md index 0c3995e..b0ceaa5 100644 --- a/README.en.md +++ b/README.en.md @@ -21,7 +21,7 @@ and the bundled scripts in `package/` and the bridge in `bridge/` of the ModAVD - **Use newly created test instances logged in with test accounts.** Do not run on an instance logged in with your main account: several items create instances, delete instances and force-stop the game. - adb uses only private ports. It does not touch 5037, and it does not touch 20049 / 20050 of the production root folder. Every instance is shut down with `adb shell sync` first. - When the test machine also has a production root folder, set `portBase` in the test root's `mas-avd.json` (for example 21000; needs a manager with ModAVD/ModAVD#75), - so that its instances do not share ports with the production instances of the same number. The root folders that `upgrade` and `ime-pkg` build themselves write 23000 by default. + so that its instances do not share ports with the production instances of the same number. The regression creates no root folders (since 11-05): instances go into the existing test roots under `E:\testbed`, and `upgrade` and `ime-pkg` also first install the package into `PackageRoot` (or `TestRoot`), create a temporary instance there and delete only that instance afterwards. The production root folder `D:\ModAVD`, the root folders listed in the local setting `ProductionRoots` (list the root you use yourself every day there too), and the production adb ports 5037 / 20049 / 20050 are refused as test root, output, work or instance folder. When the local configuration sets `TestRoots`, only the test roots listed there are accepted. Every item takes the serial and the ports from `modavd info --json` instead of computing `20000 + 10 × index` itself. - Problems and suggestions go to the [Issues](https://github.com/ModAVD/ModAVD/issues) of the ModAVD repository; pick "Pre-release regression". This repository only takes PRs. @@ -42,15 +42,17 @@ pwsh -NoProfile -File regress.ps1 -Suite suites\release.psd1 -Scope emulator -Sd **Frame rate of the game items**: by default `items\game-real.ps1` runs only the round with the bridge installed, and the median frame rate is compared with `baselines\fps.json` (the numbers of the previous production version, with a tolerance for each game). `items\yys.ps1` compares the courtyard and each battle with it too (`yys-courtyard`, `yys-battle`). When the same machine runs more than 2 other emulators, it only records the number and does not judge it. +**The Reverse: 1999 item** (`-Game r1999`) has M9A play a resource stage of the regular combat task (常规作战), to measure the frame rate in battle. Whether it eats candy when stamina runs out is set by `-M9ACandy ` (default 0, no candy). If the combat task ends within 2 minutes without being stopped by the time budget, nothing was fought and the item fails (the smart balanced farming task of M9A 4.11.1 reports success without fighting at all, so it is no longer used since 11-05). + The baseline records whether CPU boost (turbo) was on when it was measured (`condition`: `睿频开` on, `睿频关` off). During a run this is read from the host CPU's "processor performance" counter (above 101 % means boost is on). When this run's condition is worse than the baseline's (boost off against a boost-on baseline) or cannot be read, the number is only recorded, not judged; when it is better, it is judged as usual, since boost only raises the frame rate. After each release regression passes, write this version's numbers and condition back to `fps.json`. -By default the output goes to `\regress--