From 827006e70718a6633fe592987f4a1f689ac7702a Mon Sep 17 00:00:00 2001 From: Ivo Horak Date: Tue, 15 Sep 2026 22:24:59 +0100 Subject: [PATCH 1/3] feat(jdk-jtreg): run the full test/jdk inventory against Bali MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The adapter previously ran only files with a bare `@run main` (1.4k of the 12.7k files in test/jdk). It now hands jtreg every directive — `@library` via a staged `test/lib`, `@modules`, `@key`, variants, junit and testng — and excludes only the desktop, JFR, debugger and tool areas by manifest policy, which makes 7.2k files runnable. - `@requires` is evaluated through a portable `TEST.ROOT` whose property definitions come from `suites/drivers/jdk-jtreg/requires/VMProps.java`, answering upstream's names from public APIs (no WhiteBox, no HotSpot diagnostic flags), so both runtimes share one root. - The stock-JDK reference run is recorded per platform as `expectations/jdk-jtreg.reference..json` with a fingerprint of its inputs; a matching baseline lets a run measure Bali alone. Only the linux-x64 baseline is committed; other platforms' files are git-ignored caches. - `bin/bali-docker.ts` and the release/check workflows carry the reference home and the writable `expectations/` mount needed to refresh the baseline alongside the ratchet. - The ratchet is regenerated for the new inventory; BALI.md documents the lane, its scope, and how the baseline and ratchet differ. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01KDdYPYzE4xKshFSt4WGA1j --- .github/workflows/check.bali.yml | 4 +- .github/workflows/on.bali-release.yml | 4 +- .gitignore | 3 + BALI.md | 128 +- bin/bali-docker.test.ts | 14 + bin/bali-docker.ts | 15 +- bin/bali-release.ts | 4 +- expectations/jdk-jtreg.ratchet.toml | 1483 ++++++++++++++++- ...son => jdk-jtreg.reference.linux-x64.json} | 0 harness/src/adapters/jdk-jtreg.test.ts | 278 ++- harness/src/adapters/jdk-jtreg.ts | 490 ++++-- harness/src/adapters/types.ts | 1 - harness/src/cli.ts | 1 - manifests/bali-jdk.json | 28 +- .../drivers/jdk-jtreg/requires/VMProps.java | 176 ++ 15 files changed, 2409 insertions(+), 220 deletions(-) rename expectations/{jdk-jtreg.reference.json => jdk-jtreg.reference.linux-x64.json} (100%) create mode 100644 suites/drivers/jdk-jtreg/requires/VMProps.java diff --git a/.github/workflows/check.bali.yml b/.github/workflows/check.bali.yml index 7bec807..47b93e3 100644 --- a/.github/workflows/check.bali.yml +++ b/.github/workflows/check.bali.yml @@ -169,7 +169,7 @@ jobs: .harness/release/selection.json reports/bali/** expectations/jdk-jtreg.ratchet.toml - expectations/jdk-jtreg.reference.json + expectations/jdk-jtreg.reference.linux-x64.json .harness/work/jdk-jtreg/report.* .harness/work/jdk-jtreg/inventory.json .harness/work/jdk-jtreg/jtreg-run-*/reference/** @@ -190,7 +190,7 @@ jobs: fi git config user.name "elide-ci" git config user.email "ci@elide.dev" - git add -- reports/bali expectations/jdk-jtreg.ratchet.toml expectations/jdk-jtreg.reference.json + git add -- reports/bali expectations/jdk-jtreg.ratchet.toml expectations/jdk-jtreg.reference.linux-x64.json if git diff --cached --quiet; then echo "changed=false" >> "$GITHUB_OUTPUT" echo "No generated changes to commit." diff --git a/.github/workflows/on.bali-release.yml b/.github/workflows/on.bali-release.yml index becc882..b606a64 100644 --- a/.github/workflows/on.bali-release.yml +++ b/.github/workflows/on.bali-release.yml @@ -106,7 +106,7 @@ jobs: .harness/work/jdk-jtreg/jtreg-run-*/reference/** .harness/work/jdk-jtreg/jtreg-run-*/bali/** expectations/jdk-jtreg.ratchet.toml - expectations/jdk-jtreg.reference.json + expectations/jdk-jtreg.reference.linux-x64.json reports/bali/** - name: Save report history in a pull request if: ${{ always() && !cancelled() && github.ref_type == 'branch' && hashFiles('.harness/work/jdk-jtreg/report.json') != '' }} @@ -120,7 +120,7 @@ jobs: set -euo pipefail git config user.name "elide-ci" git config user.email "ci@elide.dev" - git add -- reports/bali expectations/jdk-jtreg.ratchet.toml expectations/jdk-jtreg.reference.json + git add -- reports/bali expectations/jdk-jtreg.ratchet.toml expectations/jdk-jtreg.reference.linux-x64.json if git diff --cached --quiet; then echo 'No new Bali reports to commit.' exit 0 diff --git a/.gitignore b/.gitignore index 848a32e..c6e733b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ harness/.bun/ .elide-install/ .harness/ artifacts/ +# Stock-JDK reference baselines for local platforms are caches; CI's linux-x64 one is committed. +expectations/jdk-jtreg.reference.*.json +!expectations/jdk-jtreg.reference.linux-x64.json diff --git a/BALI.md b/BALI.md index a9f38fd..182af25 100644 --- a/BALI.md +++ b/BALI.md @@ -5,7 +5,8 @@ through the shared harness: it discovers the pinned OpenJDK `test/jdk` inventory all files supported by the current portable jtreg adapter on a stock JDK and on Bali, and records the rest as unsupported with a reason. There is no handpicked passing-test list. This measures **test files**, not individual `@test` variants: a file containing -multiple variants remains one inventory entry and is currently unsupported. +multiple variants remains one inventory entry that passes only when every +variant passes. It is separate from the existing Elide suites, and does not establish Java SE/JCK conformance. The original design is Bali RFC-0016. @@ -57,18 +58,28 @@ problems are skips, not Bali regressions. ## Reference baseline The stock JDK's outcome depends only on pinned inputs: the corpus and jtreg -archives, the reference JDK build in the image, the portable `TEST.ROOT`, the -execution options, the adapter protocol, the platform, and the set of runnable -files. `expectations/jdk-jtreg.reference.json` records one complete reference -run together with a fingerprint of those inputs. When the fingerprint matches, -the harness takes the reference outcomes from that file and runs only Bali, -which halves the measurement. When the file is missing or stale (a pin bump, a -new reference image, an adapter change that alters the runnable set, a different -platform), the run logs the reason and runs the stock JDK as before. A -`--ratchet` run then rewrites the baseline, and the CI workflows commit it -beside the ratchet. Ordinary runs never write it. Delete the file to force a -fresh reference measurement. The workspace report and `report.md` state whether -the reference came from the baseline or from the run. +archives, the reference JDK build in the image, the portable `TEST.ROOT` and its +`@requires` property definitions, the jtreg options, the execution options +(including the effective concurrency), the adapter protocol, the platform, and +the set of runnable files. `expectations/jdk-jtreg.reference..json` records one complete +reference run together with a fingerprint of those inputs. When the fingerprint +matches, the harness takes the reference outcomes from that file and runs only +Bali, which halves the measurement. When the file is missing or stale (a pin +bump, a new reference image, an adapter change that alters the runnable set), +the run logs the reason, runs the stock JDK, and records the result as the new +baseline for its platform if `expectations/` is writable. Delete the file to +force a fresh reference measurement. The workspace report and `report.md` state +whether the reference came from the baseline or from the run. + +The baseline is a cache of deterministic facts, not a tolerance list, so unlike +the ratchet it needs no `--ratchet` to be refreshed. What keeps ordinary CI runs +from writing it is the read-only `expectations/` mount; a `--ratchet` run mounts +it writable, and the CI workflows commit the resulting +`jdk-jtreg.reference.linux-x64.json` beside the ratchet. Native runs on other +platforms, such as a macOS development machine, record their own +`jdk-jtreg.reference..json` on the first run and skip the stock JDK +from the second run on. Those files are git-ignored; only the linux-x64 one is +committed. One consequence: a runner-environment problem now shows up only on the Bali side and is scored as a Bali failure, whereas a live reference run could also @@ -92,8 +103,10 @@ bun run testsuite --target bali --execution native --bali-home /path/to/bali bun run testsuite --target bali --execution native --bali-home /path/to/bali --ratchet ``` -Native runs use the same harness entry point as Docker runs, so they write the same -files: reports under `reports/bali/` and the workspace under `.harness/work/jdk-jtreg/`. +The first native run on a machine measures the stock JDK and records a +platform-specific reference baseline; later runs skip it (see Reference +baseline above). Native runs use the same harness entry point as Docker runs, +so they write the same files: reports under `reports/bali/` and the workspace under `.harness/work/jdk-jtreg/`. Each run stages jtreg in a fresh `jtreg-run-*` subdirectory of that workspace, like Elide's javac adapter, so stale results are never counted; the workspace-level `report.json`, `report.md`, and `inventory.json` are overwritten each run. @@ -109,34 +122,60 @@ The scope and archive pins live in Every `.java`, `.sh`, `.jasm`, `.jcod`, or `.html` file containing a jtreg `@test` marker is inventoried. Helper files without test markers are not counted. The entire `test/jdk` subtree is extracted unchanged, including supporting -classfiles and resources, so tests keep their sibling fixtures. Tests with -undeclared dependencies outside `test/jdk` can still produce reference/setup -issues: this lane stages that subtree, not a full OpenJDK source/build tree. - -The original OpenJDK `TEST.ROOT` probes HotSpot internals using WhiteBox and -HotSpot diagnostic flags, which Bali rejects. Both runtimes therefore use the -same small portable root. Upstream exclusive-access directory declarations -are preserved. The original root is saved as `UPSTREAM.TEST.ROOT` for inspection. -Other source and configuration files remain unchanged. - -The adapter currently executes one standalone main test per file. It reports -`@requires`, `@library`, `@build`, `@modules`, preview, manual/non-main actions, -extra action arguments, multiple variants, nested roots, and unsupported inherited -`TEST.properties` as adapter gaps. It supports the inherited -`allowSmartActionArgs=true` setting. It handles both modern starred comments -and older unstarred jtreg descriptions, including continued tag values. - -These gaps describe the adapter, not proof that Bali lacks the Java feature. -There is no ProblemList; the only exclusions are the `[skip]` globs in the -expectations file, which mute files without removing them from the inventory. -Adding support for another test category can make previously unsupported files -runnable, and a file that was passing and becomes unsupported loses its pass -rather than hiding. Tests can contain their own platform branches, so a jtreg -pass is not proof that every branch of a test ran on this platform. +classfiles and resources, so tests keep their sibling fixtures, and `test/lib` +is staged beside it so `@library /test/lib` resolves through upstream's +`external.lib.roots`. Tests with undeclared dependencies elsewhere in the +OpenJDK tree can still produce reference/setup issues: this lane stages those +two subtrees, not a full OpenJDK source/build tree. + +The original OpenJDK `TEST.ROOT` evaluates `@requires` through WhiteBox and +HotSpot diagnostic flags, which Bali rejects. Both runtimes use the same +portable root: upstream's keywords, `othervm.dirs`, and `exclusiveAccess.dirs` +are preserved, and the `@requires` property definitions come from +[`suites/drivers/jdk-jtreg/requires/VMProps.java`](suites/drivers/jdk-jtreg/requires/VMProps.java), +which answers upstream's `requires.properties` names from public APIs only. It +reports availability, so a collector or subsystem Bali does not ship (`vm.gc.G1`, +`vm.hasJFR`, `vm.cds`, ...) is `false` there: such a test runs on the reference +JDK, is not run on Bali, and counts as a Bali difference. The original root is +saved as `UPSTREAM.TEST.ROOT` for inspection. Other source and configuration +files remain unchanged. + +jtreg evaluates the directives itself: `@library`, `@build`, `@compile`, +`@modules`, `@requires`, `@key`, `@enablePreview`, inherited `TEST.properties`, +multiple `@test` variants (`id=`, or jtreg's positional `idN`), and `main`, +`driver`, `junit`, `testng`, and `shell` actions all run as upstream. A file's +variants are measured together: it passes only when every variant passes, and +its detail names the variant that decided the outcome. + +The adapter withholds only what can never produce a meaningful result here, and +says so in the inventory: + +- files needing a display, printer, or audio device (`@key headful`, `printer`, + `sound`, `multimon`; jtreg also runs with `-k:!headful&!printer&!sound&!multimon`), +- manual and applet actions, `.html`/`.jasm`/`.jcod` test files, +- files ignored upstream (`@ignore`; jtreg runs with `-ignore:quiet`), +- nested test roots, +- areas the manifest's `exclude` list rules out by policy, each with its + reason: desktop, imaging, printing, and sound APIs (Bali divergence D4), Flight + Recorder, the debugger interface, incubator modules, the diagnostic + command-line tools and `jpackage` (D6), and certificate-authority + interoperability tests that need external network access. + +Tests jtreg filters out at run time — an unmet `@requires`, a keyword — are +read back from its `-report:all` summary as "Not run" and treated like a test +that skips itself. There is no ProblemList; the only other exclusions are the +`[skip]` globs in the expectations file, which mute files without removing them +from the inventory. Changing the manifest's exclusions or the portable root +changes the runnable set, which re-measures the stock JDK. Stock Java hosts jtreg and stock javac compiles both selections. Runtime actions -use the chosen `-testjdk`, `othervm` isolation, four concurrent tests, the shared -corpus heap ceiling, and headless mode. The manifest fixes these options. +use the chosen `-testjdk`, `othervm` isolation, the manifest's concurrency and +timeout factor, the shared corpus heap ceiling, and headless mode. The manifest +fixes these options for CI; locally, `--threads ` or `BALI_JTREG_CONCURRENCY=` +raises the concurrency, and the effective value is part of the reference +baseline's fingerprint. `--include ` scopes a run to part of the +inventory (`--include 'java/lang/**,java/util/**'`); a scoped run records a +scoped baseline and reports only that slice. Each runtime gets its own `JAVA_HOME` and `bin` first in `PATH`, passed through jtreg to subprocesses. Ambient Java option/classpath injection is cleared. This lane tests the runtime; Bali's javac implementation has separate coverage. @@ -174,8 +213,9 @@ The workspace `.harness/work/jdk-jtreg/` (ignored, like every Elide workspace) c - `report.md`: totals, area breakdown, adapter gaps, and executed tests needing attention. - `jtreg-run-*/`: one fresh scratch directory per run, holding `reference/` and `bali/` (jtreg selection/command files, logs, `.jtr` results, HTML reports) plus - `suite/`, `harness/`, and `UPSTREAM.TEST.ROOT`, the inputs used by that run, and a - copy of that run's `report.json`/`report.md`. Old scratch directories accumulate + `src/test/jdk` (the suite), `src/test/lib`, `src/test/portable` (the staged + `@requires` definitions), `harness/`, and `UPSTREAM.TEST.ROOT`, the inputs used + by that run, and a copy of that run's `report.json`/`report.md`. Old scratch directories accumulate until deleted, as under Elide's `.harness/work/`. The committed report directory `reports/bali///jdk-jtreg/` @@ -248,7 +288,7 @@ repository. The expectations file starts empty, so the first runs return exit 1 for every Bali-only failure while still uploading results and writing `reports/bali/`. Run once with `ratchet: true`, review the generated `expectations/jdk-jtreg.ratchet.toml` and -`expectations/jdk-jtreg.reference.json`, and commit both; after that the job is +`expectations/jdk-jtreg.reference.linux-x64.json`, and commit both; after that the job is green unless a previously passing file regresses, and the stock JDK is not run again until a pin changes. Establish the ratchet on the actual CI runner before making the job required. The workflow is diff --git a/bin/bali-docker.test.ts b/bin/bali-docker.test.ts index 1314155..029148e 100644 --- a/bin/bali-docker.test.ts +++ b/bin/bali-docker.test.ts @@ -51,6 +51,20 @@ test("Bali plan validates suites from the registry and accepts --ratchet anywher ); expect(baliPlan(["--bali-home", "dist"], "/repo", ["jdk-jtreg", "other"]).suite).toBe("jdk-jtreg"); expect(baliPlan(["--reference-home", "/jdk", "--bali-home", "dist"], "/repo").referenceHome).toBe("/jdk"); + const scoped = baliPlan(["--bali-home", "dist", "--include", "java/lang/**,java/util/**", "--threads", "8"], "/repo"); + expect(scoped.include).toBe("java/lang/**,java/util/**"); + expect(scoped.threads).toBe(8); + const scopedArgs = harnessArgs(scoped, "d", { + registry: "/r", + repoRoot: "/w", + baliHome: "/b", + suiteRoot: "/s", + reports: "/p", + expectations: "/e", + }); + expect(scopedArgs.slice(scopedArgs.indexOf("--include"))).toEqual(["--include", "java/lang/**,java/util/**", "--threads", "8"]); + expect(() => baliPlan(["--bali-home", "dist", "--threads", "zero"], "/repo")).toThrow("--threads"); + expect(baliPlan(["--bali-home", "dist"], "/repo")).not.toHaveProperty("include"); }); test("Docker launcher rejects macOS artifacts and a host reference JDK, and propagates build errors", async () => { diff --git a/bin/bali-docker.ts b/bin/bali-docker.ts index 59d74bf..9a8d9b3 100644 --- a/bin/bali-docker.ts +++ b/bin/bali-docker.ts @@ -20,6 +20,10 @@ export interface BaliPlan { referenceHome?: string; suite: string; ratchet: boolean; + /** Comma-separated file globs over the inventory; a scoped run observes only that slice. */ + include?: string; + /** jtreg concurrency above the manifest's, for local runs on larger machines. */ + threads?: number; } export function baliPlan(argv: string[], cwd: string, suites: string[] = ["jdk-jtreg"]): BaliPlan { const args = [...argv]; @@ -32,12 +36,12 @@ export function baliPlan(argv: string[], cwd: string, suites: string[] = ["jdk-j continue; } if ( - !["--bali-home", "--reference-home", "--suite"].includes(args[i]!) || + !["--bali-home", "--reference-home", "--suite", "--include", "--threads"].includes(args[i]!) || !args[i + 1] || options.has(args[i]!) ) throw new Error( - `Bali runs accept --bali-home [--reference-home ] [--ratchet] [--suite ${suites.join("|")}].`, + `Bali runs accept --bali-home [--reference-home ] [--ratchet] [--suite ${suites.join("|")}] [--include ] [--threads ].`, ); options.set(args[i]!, args[i + 1]!); } @@ -45,7 +49,12 @@ export function baliPlan(argv: string[], cwd: string, suites: string[] = ["jdk-j if (!suites.includes(suite)) throw new Error(`Bali supports --suite ${suites.join(", ")}`); if (!options.has("--bali-home")) throw new Error("Bali runs require --bali-home pointing to a packaged distribution"); + const threads = options.has("--threads") ? Number(options.get("--threads")) : undefined; + if (threads !== undefined && (!Number.isInteger(threads) || threads < 1)) + throw new Error("--threads takes a positive integer"); return { + ...(options.has("--include") ? { include: options.get("--include")! } : {}), + ...(threads !== undefined ? { threads } : {}), baliHome: resolve(cwd, options.get("--bali-home")!), referenceHome: options.has("--reference-home") ? resolve(cwd, options.get("--reference-home")!) @@ -89,6 +98,8 @@ export function harnessArgs(plan: BaliPlan, digest: string, paths: HarnessPaths) "--failure-output", "hide", ...(plan.ratchet ? ["--ratchet"] : []), + ...(plan.include ? ["--include", plan.include] : []), + ...(plan.threads ? ["--threads", String(plan.threads)] : []), ]; } export function containerArgs( diff --git a/bin/bali-release.ts b/bin/bali-release.ts index 265276d..bcbe42a 100644 --- a/bin/bali-release.ts +++ b/bin/bali-release.ts @@ -1,5 +1,4 @@ import { createHash } from "node:crypto"; -import { createReadStream } from "node:fs"; interface ReleaseAsset { id: number; @@ -44,7 +43,8 @@ export function selectBaliRelease(release: Release) { export async function verifyReleaseArchive(path: string, expected: string) { if (!/^[a-f0-9]{64}$/.test(expected)) throw new Error("Invalid expected SHA-256"); const hash = createHash("sha256"); - for await (const chunk of createReadStream(path)) hash.update(chunk); + // Bun's file stream: node:fs createReadStream never completes on large files under Bun 1.3 on macOS. + for await (const chunk of Bun.file(path).stream()) hash.update(chunk); if (hash.digest("hex") !== expected) throw new Error("Bali release archive SHA-256 mismatch"); } if (import.meta.main) { diff --git a/expectations/jdk-jtreg.ratchet.toml b/expectations/jdk-jtreg.ratchet.toml index 80025c1..7dd1f6d 100644 --- a/expectations/jdk-jtreg.ratchet.toml +++ b/expectations/jdk-jtreg.ratchet.toml @@ -1,52 +1,1489 @@ # AUTO-GENERATED by `run --ratchet`. Do not edit by hand. -# Generated for bali 0.4.0 (sha b999d6f6f0ea) on 2026-09-10T09:23:55.252Z. +# Generated for bali 0.4.0 (sha 69e426cd6fad) on 2026-09-11T12:58:41.414Z. [fail] "build/releaseFile/CheckReleaseFile.java" = "" +"build/translations/VerifyTranslations.java" = "" +"com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java" = "" +"com/sun/crypto/provider/Cipher/ChaCha20/unittest/Poly1305UnitTestDriver.java" = "" +"com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java" = "" +"com/sun/crypto/provider/DHKEM/Compliance.java" = "" +"com/sun/crypto/provider/KDF/HKDFDelayedPRK.java" = "" +"com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java" = "" +"com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java" = "" +"com/sun/crypto/provider/KeyProtector/IterationCount.java" = "" +"com/sun/jmx/remote/NotificationMarshalVersions/TestSerializationMismatch.java" = "" +"com/sun/jndi/dns/ConfigTests/AuthTest.java" = "" +"com/sun/jndi/dns/ConfigTests/RecursiveTest.java" = "" +"com/sun/jndi/dns/EnvTests/AddOps.java" = "" +"com/sun/jndi/dns/EnvTests/ProviderUrlGen.java" = "" +"com/sun/jndi/dns/EnvTests/RemoveOps.java" = "" +"com/sun/jndi/dns/Parser.java" = "" +"com/sun/jndi/ldap/LdapCBPropertiesTest.java" = "" +"com/sun/jndi/ldap/objects/RemoteLocationAttributeTest.java" = "" +"com/sun/jndi/ldap/objects/factory/LdapFactoriesFilterTest.java" = "" +"com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java" = "" +"com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java" = "" +"com/sun/jndi/rmi/registry/objects/ObjectFactoryBuilderCodebaseTest.java" = "" +"com/sun/jndi/rmi/registry/objects/RmiFactoriesFilterTest.java" = "" +"com/sun/management/CheckSomeMXBeanImplPackage.java" = "" +"com/sun/management/DiagnosticCommandMBean/DcmdMBeanDoubleInvocationTest.java" = "" +"com/sun/management/DiagnosticCommandMBean/DcmdMBeanInvocationTest.java" = "" +"com/sun/management/DiagnosticCommandMBean/DcmdMBeanTest.java" = "" +"com/sun/management/GarbageCollectorMXBean/LastGCInfo.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWithEliminatedLock.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/GetDiagnosticOptions.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/GetDoubleVMOption.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/GetVMOption.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/SetAllVMOptions.java" = "" +"com/sun/management/HotSpotDiagnosticMXBean/SetVMOption.java" = "" +"com/sun/management/OperatingSystemMXBean/GetCommittedVirtualMemorySize.java" = "" +"com/sun/management/OperatingSystemMXBean/GetFreePhysicalMemorySize.java" = "" +"com/sun/management/OperatingSystemMXBean/GetFreeSwapSpaceSize.java" = "" +"com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java" = "" +"com/sun/management/OperatingSystemMXBean/GetProcessCpuTime.java" = "" +"com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java" = "" +"com/sun/management/OperatingSystemMXBean/GetTotalPhysicalMemorySize.java" = "" +"com/sun/management/OperatingSystemMXBean/MemoryStatusOverflow.java" = "" +"com/sun/management/OperatingSystemMXBean/TestTotalSwap.java" = "" +"com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java" = "" +"com/sun/management/ThreadMXBean/ThreadAllocatedMemoryArray.java" = "" +"com/sun/management/ThreadMXBean/ThreadCpuTimeArray.java" = "" +"com/sun/management/ThreadMXBean/VirtualThreads.java" = "" +"com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.java" = "" +"com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.java" = "" +"com/sun/management/VMOptionOpenDataTest.java" = "" +"com/sun/net/httpserver/bugs/8300268/MaxIdleConnectionsTest.java" = "" +"com/sun/net/httpserver/bugs/HttpExchange/AutoCloseableHttpExchange.java" = "" +"com/sun/net/httpserver/simpleserver/CommandLineNegativeTest.java" = "" +"com/sun/net/httpserver/simpleserver/CommandLinePositiveTest.java" = "" +"com/sun/net/httpserver/simpleserver/jwebserver/CommandLineNegativeTest.java" = "" +"com/sun/net/httpserver/simpleserver/jwebserver/CommandLinePositiveTest.java" = "" +"com/sun/net/httpserver/simpleserver/jwebserver/IPv6BoundHost.java" = "" +"com/sun/net/httpserver/simpleserver/jwebserver/MaxRequestTimeTest.java" = "" +"com/sun/nio/sctp/MessageInfoTests.java" = "" +"com/sun/nio/sctp/SctpChannel/Bind.java" = "" +"com/sun/nio/sctp/SctpChannel/CommUp.java" = "" +"com/sun/nio/sctp/SctpChannel/Connect.java" = "" +"com/sun/nio/sctp/SctpChannel/Receive.java" = "" +"com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java" = "" +"com/sun/nio/sctp/SctpChannel/Send.java" = "" +"com/sun/nio/sctp/SctpChannel/Shutdown.java" = "" +"com/sun/nio/sctp/SctpChannel/SocketOptionTests.java" = "" +"com/sun/nio/sctp/SctpMultiChannel/Branch.java" = "" +"com/sun/nio/sctp/SctpMultiChannel/Send.java" = "" +"com/sun/nio/sctp/SctpMultiChannel/SendFailed.java" = "" +"com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java" = "" +"com/sun/nio/sctp/SctpServerChannel/Accept.java" = "" +"com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java" = "" +"com/sun/org/apache/xml/internal/security/ShortECDSA.java" = "" +"com/sun/security/auth/CreateLdapPrincipals.java" = "" +"com/sun/security/jgss/InquireSecContextPermissionCheck.java" = "" +"com/sun/security/sasl/util/CheckAccess.java" = "" +"com/sun/tools/attach/AttachSelf.java" = "" +"com/sun/tools/attach/BasicTests.java" = "" +"com/sun/tools/attach/FailedLoadAgentTest.java" = "" +"com/sun/tools/attach/ProviderTest.java" = "" +"com/sun/tools/attach/StartManagementAgent.java" = "" +"com/sun/tools/attach/TempDirTest.java" = "" +"com/sun/tools/attach/modules/Driver.java" = "" +"java/beans/Beans/6669869/TestGuiAvailable.java" = "" +"java/beans/Beans/TypoInBeanDescription.java" = "" +"java/beans/EventHandler/Test6179222.java" = "" +"java/beans/EventHandler/Test6788531.java" = "" +"java/beans/Introspector/4058433/TestBeanInfoPriority.java" = "" +"java/beans/Introspector/4058433/TestSwingContainer.java" = "" +"java/beans/Introspector/4168475/Test4168475.java" = "" +"java/beans/Introspector/4520754/Test4520754.java" = "" +"java/beans/Introspector/4750368/Test4750368.java" = "" +"java/beans/Introspector/7064279/Test7064279.java" = "" +"java/beans/Introspector/FlushClassInfoCache.java" = "" +"java/beans/Introspector/MethodOrderException.java" = "" +"java/beans/Introspector/Test4619792.java" = "" +"java/beans/Introspector/Test4634390.java" = "" +"java/beans/Introspector/Test4935607.java" = "" +"java/beans/Introspector/Test5102804.java" = "" +"java/beans/Introspector/Test7195106.java" = "" +"java/beans/Introspector/Test8034085.java" = "" +"java/beans/Introspector/memory/Test4809008.java" = "" +"java/beans/Performance/Test4058433.java" = "" +"java/beans/PropertyChangeSupport/Test4682386.java" = "" +"java/beans/PropertyChangeSupport/TestSynchronization.java" = "" +"java/beans/PropertyDescriptor/OverriddenGetter.java" = "" +"java/beans/PropertyEditor/Test6397609.java" = "" +"java/beans/SimpleBeanInfo/LoadingStandardIcons/LoadingStandardIcons.java" = "" +"java/beans/Statement/ClassForName/ClassForName.java" = "" +"java/beans/Statement/Test4653179.java" = "" +"java/beans/XMLDecoder/spec/TestObject.java" = "" +"java/beans/XMLEncoder/6777487/TestBox.java" = "" +"java/beans/XMLEncoder/ReferenceToNonStaticField.java" = "" +"java/beans/XMLEncoder/Test4631471.java" = "" +"java/beans/XMLEncoder/Test4652928.java" = "" +"java/beans/XMLEncoder/Test4822050.java" = "" +"java/beans/XMLEncoder/Test4903007.java" = "" +"java/beans/XMLEncoder/Test6437265.java" = "" +"java/beans/XMLEncoder/Test6501431.java" = "" +"java/beans/XMLEncoder/Test6570354.java" = "" +"java/beans/XMLEncoder/Test6989223.java" = "" +"java/beans/XMLEncoder/java_awt_AWTKeyStroke.java" = "" +"java/beans/XMLEncoder/java_awt_BorderLayout.java" = "" +"java/beans/XMLEncoder/java_awt_CardLayout.java" = "" +"java/beans/XMLEncoder/java_awt_Component.java" = "" +"java/beans/XMLEncoder/java_awt_Cursor.java" = "" +"java/beans/XMLEncoder/java_awt_Dimension.java" = "" +"java/beans/XMLEncoder/java_awt_Font.java" = "" +"java/beans/XMLEncoder/java_awt_GridBagConstraints.java" = "" +"java/beans/XMLEncoder/java_awt_GridBagLayout.java" = "" +"java/beans/XMLEncoder/java_awt_Insets.java" = "" +"java/beans/XMLEncoder/java_awt_Rectangle.java" = "" +"java/beans/XMLEncoder/javax_swing_Box.java" = "" +"java/beans/XMLEncoder/javax_swing_BoxLayout.java" = "" +"java/beans/XMLEncoder/javax_swing_Box_Filler.java" = "" +"java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java" = "" +"java/beans/XMLEncoder/javax_swing_JButton.java" = "" +"java/beans/XMLEncoder/javax_swing_JComponent.java" = "" +"java/beans/XMLEncoder/javax_swing_JLayeredPane.java" = "" +"java/beans/XMLEncoder/javax_swing_JSplitPane.java" = "" +"java/beans/XMLEncoder/javax_swing_JTree.java" = "" +"java/beans/XMLEncoder/javax_swing_KeyStroke.java" = "" +"java/beans/XMLEncoder/javax_swing_OverlayLayout.java" = "" +"java/beans/XMLEncoder/javax_swing_border_EmptyBorder.java" = "" +"java/beans/XMLEncoder/javax_swing_border_MatteBorder.java" = "" +"java/beans/XMLEncoder/javax_swing_border_TitledBorder.java" = "" +"java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_EmptyBorderUIResource.java" = "" +"java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_MatteBorderUIResource.java" = "" +"java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_TitledBorderUIResource.java" = "" +"java/beans/XMLEncoder/javax_swing_plaf_ColorUIResource.java" = "" +"java/beans/XMLEncoder/javax_swing_plaf_FontUIResource.java" = "" +"java/beans/XMLEncoder/sun_swing_PrintColorUIResource.java" = "" +"java/foreign/StdLibTest.java" = "" +"java/foreign/TestConcurrentClose.java" = "" +"java/foreign/TestRestricted.java" = "" +"java/foreign/enablenativeaccess/TestEnableNativeAccessDynamic.java" = "" +"java/foreign/handles/Driver.java" = "" +"java/foreign/largestub/TestLargeStub.java" = "" +"java/io/ByteArrayOutputStream/WriteToReleasesCarrier.java" = "" +"java/io/ClassCache/ContinuousGCTest.java" = "" +"java/io/ClassCache/NullValueTest.java" = "" +"java/io/Console/DefaultCharsetTest.java" = "" +"java/io/Console/LocaleTest.java" = "" +"java/io/Console/ModuleSelectionTest.java" = "" +"java/io/Console/RestoreEchoTest.java" = "" +"java/io/Console/StdinEncodingTest.java" = "" +"java/io/Console/StdoutEncodingTest.java" = "" +"java/io/File/TempDirDoesNotExist.java" = "" +"java/io/FileInputStream/UnreferencedFISClosesFd.java" = "" +"java/io/FileOutputStream/UnreferencedFOSClosesFd.java" = "" +"java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java" = "" +"java/io/PrintStream/FormatLocale.java" = "" +"java/io/RandomAccessFile/UnreferencedRAFClosesFd.java" = "" +"java/io/Serializable/GetField/ReadFieldsCNF.java" = "" "java/io/Serializable/clearHandleTable/ClearHandleTable.java" = "" +"java/io/Serializable/failureAtomicity/FailureAtomicity.java" = "" "java/io/Serializable/getSuidClinitError/GetSuidClinitError.java" = "" +"java/io/Serializable/resolveClass/consTest/ConsTest.java" = "" +"java/io/Serializable/serialFilter/GlobalFilterTest.java" = "" +"java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java" = "" +"java/io/Serializable/serialFilter/MixedFiltersTest.java" = "" +"java/io/Serializable/serialFilter/SerialFactoryFaults.java" = "" +"java/io/Serializable/serialFilter/SerialFilterFactoryTest.java" = "" +"java/io/Serializable/serialFilter/SerialFilterTest.java" = "" +"java/io/Serializable/subclassGC/SubclassGC.java" = "" +"java/lang/Class/GetPackageBootLoaderChildLayer.java" = "" "java/lang/Class/IsAnnotationType.java" = "" +"java/lang/Class/forName/modules/TestDriver.java" = "" +"java/lang/Class/getResource/ResourcesTest.java" = "" +"java/lang/ClassLoader/CustomSystemLoader/InitSystemLoaderTest.java" = "" +"java/lang/ClassLoader/EndorsedDirs.java" = "" +"java/lang/ClassLoader/ExtDirs.java" = "" +"java/lang/ClassLoader/GetSystemPackage.java" = "" "java/lang/ClassLoader/IsParallelCapable.java" = "" +"java/lang/ClassLoader/RecursiveSystemLoader.java" = "" +"java/lang/ClassLoader/deadlock/DelegateTest.java" = "" +"java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java" = "" +"java/lang/ClassLoader/getResource/GetResource.java" = "" +"java/lang/ClassLoader/getResource/automaticmodules/Driver.java" = "" +"java/lang/ClassLoader/getResource/modules/ResourcesTest.java" = "" +"java/lang/ClassLoader/platformClassLoader/DefinePlatformClass.java" = "" +"java/lang/Enum/ValueOf.java" = "" +"java/lang/Float/Binary16ConversionNaN.java" = "" +"java/lang/IO/IO.java" = "" +"java/lang/Math/IntegralPowTest.java" = "" +"java/lang/ModuleLayer/BasicLayerTest.java" = "" +"java/lang/ModuleLayer/automatic/AutomaticModulesTest.java" = "" +"java/lang/ModuleTests/AddExportsTest.java" = "" +"java/lang/ModuleTests/BasicModuleTest.java" = "" +"java/lang/ModuleTests/access/AccessTest.java" = "" +"java/lang/ModuleTests/addXXX/Driver.java" = "" +"java/lang/ModuleTests/annotation/Basic.java" = "" +"java/lang/Object/FinalizationOption.java" = "" +"java/lang/Object/InvalidFinalizationOption.java" = "" +"java/lang/Package/annotation/PackageInfoTest.java" = "" +"java/lang/Package/bootclasspath/GetPackageFromBootClassPath.java" = "" +"java/lang/ProcessBuilder/CloseRace.java" = "" +"java/lang/ProcessBuilder/JspawnhelperWarnings.java" = "" +"java/lang/ProcessBuilder/ProcessStartLoggingTest.java" = "" +"java/lang/ProcessBuilder/ReaderWriterTest.java" = "" +"java/lang/ProcessHandle/InfoTest.java" = "" +"java/lang/RuntimeTests/RuntimeExitLogTest.java" = "" +"java/lang/RuntimeTests/loadLibrary/LoadLibraryTest.java" = "" +"java/lang/ScopedValue/StressStackOverflow.java" = "" "java/lang/SecurityManager/CheckSecurityProvider.java" = "" +"java/lang/StableValue/StableFunctionTest.java" = "" +"java/lang/StableValue/StableIntFunctionTest.java" = "" +"java/lang/StableValue/StableListTest.java" = "" +"java/lang/StableValue/StableMapTest.java" = "" +"java/lang/StableValue/StableSupplierTest.java" = "" +"java/lang/StableValue/StableValueTest.java" = "" +"java/lang/StableValue/StableValuesSafePublicationTest.java" = "" +"java/lang/StableValue/TrustedFieldTypeTest.java" = "" +"java/lang/StackTraceElement/ModuleFrames.java" = "" +"java/lang/StackTraceElement/SerialTest.java" = "" +"java/lang/StackTraceElement/WithClassLoaderName.java" = "" +"java/lang/StackWalker/CallerFromMain.java" = "" +"java/lang/StackWalker/CallerSensitiveMethod/Main.java" = "" "java/lang/StackWalker/DumpStackTest.java" = "" -"java/lang/StackWalker/MultiThreadStackWalk.java" = "" +"java/lang/StackWalker/LocalsAndOperands.java" = "" +"java/lang/StackWalker/ReflectionFrames.java" = "" +"java/lang/StackWalker/SanityTest.java" = "" "java/lang/StackWalker/VerifyStackTrace.java" = "" +"java/lang/String/CompactString/MaxSizeUTF16String.java" = "" +"java/lang/String/CompactString/VMOptionsTest.java" = "" +"java/lang/String/concat/HiddenClassUnloading.java" = "" +"java/lang/String/concat/HugeConcatTest.java" = "" +"java/lang/StringBuffer/HugeCapacity.java" = "" +"java/lang/StringBuilder/HugeCapacity.java" = "" +"java/lang/System/AllowSecurityManager.java" = "" +"java/lang/System/FileEncodingTest.java" = "" +"java/lang/System/Logger/custom/CustomLoggerTest.java" = "" +"java/lang/System/Logger/default/DefaultLoggerTest.java" = "" +"java/lang/System/LoggerFinder/BaseLoggerFinderTest/BaseLoggerFinderTest.java" = "" +"java/lang/System/LoggerFinder/DefaultLoggerFinderTest/DefaultLoggerFinderTest.java" = "" +"java/lang/System/LoggerFinder/LoggerFinderAPI/LoggerFinderAPI.java" = "" +"java/lang/System/LoggerFinder/RecursiveLoading/PlatformRecursiveLoadingTest.java" = "" +"java/lang/System/LoggerFinder/RecursiveLoading/RecursiveLoadingTest.java" = "" +"java/lang/System/LoggerFinder/SignedLoggerFinderTest/SignedLoggerFinderTest.java" = "" +"java/lang/System/LoggerFinder/internal/BaseDefaultLoggerFinderTest/BaseDefaultLoggerFinderTest.java" = "" +"java/lang/System/LoggerFinder/internal/BaseLoggerBridgeTest/BaseLoggerBridgeTest.java" = "" +"java/lang/System/LoggerFinder/internal/BasePlatformLoggerTest/BasePlatformLoggerTest.java" = "" +"java/lang/System/LoggerFinder/internal/BootstrapLogger/BootstrapLoggerAPIsTest.java" = "" +"java/lang/System/LoggerFinder/internal/BootstrapLogger/BootstrapLoggerTest.java" = "" +"java/lang/System/LoggerFinder/internal/LoggerBridgeTest/LoggerBridgeTest.java" = "" +"java/lang/System/LoggerFinder/internal/LoggerFinderLoaderTest/LoggerFinderLoaderTest.java" = "" +"java/lang/System/LoggerFinder/internal/PlatformLoggerBridgeTest/PlatformLoggerBridgeTest.java" = "" +"java/lang/System/LoggerFinder/internal/SimpleConsoleLoggerTest/SimpleConsoleLoggerTest.java" = "" +"java/lang/System/LoggerFinder/internal/SystemLoggerInPlatformLoader/SystemLoggerInPlatformLoader.java" = "" +"java/lang/System/LoggerFinder/internal/backend/LoggerFinderBackendTest.java" = "" +"java/lang/System/LoggerFinder/jdk/DefaultLoggerBridgeTest/DefaultLoggerBridgeTest.java" = "" +"java/lang/System/LoggerFinder/modules/JDKLoggerForJDKTest.java" = "" +"java/lang/System/LoggerFinder/modules/NamedLoggerForJDKTest.java" = "" +"java/lang/System/LoggerFinder/modules/UnnamedLoggerForJDKTest.java" = "" +"java/lang/System/MacEncoding/MacJNUEncoding.java" = "" +"java/lang/System/MacEncoding/TestFileEncoding.java" = "" +"java/lang/System/PropertyTest.java" = "" +"java/lang/System/SecurityManagerWarnings.java" = "" "java/lang/System/finalization/FinThreads.java" = "" +"java/lang/Thread/JoinWithDuration.java" = "" +"java/lang/Thread/ThreadSleepEvent.java" = "" +"java/lang/Thread/ThreadSleepEventThrows.java" = "" +"java/lang/Thread/UncaughtExceptionsTest.java" = "" +"java/lang/Thread/virtual/CarrierThreadInfo.java" = "" +"java/lang/Thread/virtual/CustomScheduler.java" = "" +"java/lang/Thread/virtual/MonitorEnterWaitOOME.java" = "" +"java/lang/Thread/virtual/ParkWithFixedThreadPool.java" = "" +"java/lang/Thread/virtual/Parking.java" = "" +"java/lang/Thread/virtual/StackFrames.java" = "" +"java/lang/Thread/virtual/TraceVirtualThreadLocals.java" = "" +"java/lang/Thread/virtual/YieldQueuing.java" = "" +"java/lang/Thread/virtual/stress/CompletableFutureTimedGet.java" = "" +"java/lang/ThreadGroup/BasicTests.java" = "" +"java/lang/WeakPairMap/Driver.java" = "" "java/lang/annotation/AnnotationToStringTest.java" = "" +"java/lang/annotation/AnnotationVerifier.java" = "" +"java/lang/annotation/AnnotationsInheritanceOrderRedefinitionTest.java" = "" +"java/lang/annotation/LoaderLeakTest.java" = "" +"java/lang/annotation/package-info.java" = "" +"java/lang/annotation/repeatingAnnotations/RepeatedUnitTest.java" = "" +"java/lang/constant/boottest/java.base/jdk/internal/constant/ConstantUtilsTest.java" = "" +"java/lang/instrument/AddTransformerTest.java" = "" +"java/lang/instrument/AppendToBootstrapClassPathTest.java" = "" +"java/lang/instrument/AppendToClassPathTest.java" = "" +"java/lang/instrument/BootClassPath/BootClassPathTest.sh" = "" +"java/lang/instrument/BootstrapClassPathTest.java" = "" +"java/lang/instrument/CustomSystemLoader/Agent.java" = "" +"java/lang/instrument/DaemonThread/TestDaemonThread.java" = "" +"java/lang/instrument/FromShutdownHook.java" = "" +"java/lang/instrument/GetAllLoadedClassesTest.java" = "" +"java/lang/instrument/GetInitiatedClassesTest.java" = "" +"java/lang/instrument/GetObjectSizeTest.java" = "" +"java/lang/instrument/IsModifiableClassAgent.java" = "" +"java/lang/instrument/ManifestTest.sh" = "" +"java/lang/instrument/ManyMethodsBenchmarkAgent.java" = "" +"java/lang/instrument/NoTransformerAddedTest.java" = "" +"java/lang/instrument/NullGetObjectSizeTest.java" = "" +"java/lang/instrument/NullRedefineClassesTests.java" = "" +"java/lang/instrument/NullTransformerAddTest.java" = "" +"java/lang/instrument/NullTransformerRemoveTest.java" = "" +"java/lang/instrument/ParallelTransformerLoaderTest.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0001.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0010.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0011.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0100.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0101.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0110.java" = "" +"java/lang/instrument/PremainClass/InheritAgent0111.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1000.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1001.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1010.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1011.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1100.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1101.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1110.java" = "" +"java/lang/instrument/PremainClass/InheritAgent1111.java" = "" +"java/lang/instrument/PremainClass/NoPremainAgent.java" = "" +"java/lang/instrument/PremainClass/NonPublicAgent.java" = "" +"java/lang/instrument/PremainClass/NonPublicPremainAgent.java" = "" +"java/lang/instrument/PremainClass/PremainClassTest.java" = "" +"java/lang/instrument/PremainClass/ZeroArgPremainAgent.java" = "" +"java/lang/instrument/RedefineAddDeleteMethod/DeleteMethodHandle/MethodHandleDeletedMethod.java" = "" +"java/lang/instrument/RedefineBigClass.sh" = "" +"java/lang/instrument/RedefineClassWithNativeMethod.sh" = "" +"java/lang/instrument/RedefineClassesDisabledTest.java" = "" +"java/lang/instrument/RedefineClassesTests.java" = "" +"java/lang/instrument/RedefineInterfaceMethods/RedefineInterfaceMethods.java" = "" +"java/lang/instrument/RedefineMathTesterMethods/RedefineMathTesterMethods.java" = "" +"java/lang/instrument/RedefineMethodDelInvoke.sh" = "" +"java/lang/instrument/RedefineMethodInBacktrace.sh" = "" +"java/lang/instrument/RedefineModuleTest.java" = "" +"java/lang/instrument/RedefineNestmateAttr/TestNestmateAttr.java" = "" +"java/lang/instrument/RedefinePermittedSubclassesAttr/TestPermittedSubclassesAttr.java" = "" +"java/lang/instrument/RedefineRecordAttr/TestRecordAttr.java" = "" +"java/lang/instrument/RedefineRecordAttrGenericSig/TestRecordAttrGenericSig.java" = "" +"java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh" = "" +"java/lang/instrument/RemoveAbsentTransformerTest.java" = "" +"java/lang/instrument/RemoveTransformerTest.java" = "" +"java/lang/instrument/RetransformApp.java" = "" +"java/lang/instrument/RetransformBigClass.sh" = "" +"java/lang/instrument/RetransformWithMethodParametersTest.java" = "" +"java/lang/instrument/SingleTransformerTest.java" = "" +"java/lang/instrument/TestAgentWithLimitMods.java" = "" +"java/lang/instrument/TraceUsageTest.java" = "" +"java/lang/instrument/TransformMethodTest.java" = "" +"java/lang/instrument/TransformerManagementThreadAddTests.java" = "" +"java/lang/instrument/TransformerManagementThreadRemoveTests.java" = "" +"java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.java" = "" +"java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh" = "" +"java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh" = "" +"java/lang/instrument/appendToClassLoaderSearch/run_tests.sh" = "" +"java/lang/instrument/executableJAR/ExecJarWithAgent.java" = "" +"java/lang/instrument/modules/AppendToClassPathModuleTest.java" = "" +"java/lang/invoke/7157574/Test7157574.java" = "" +"java/lang/invoke/ClassSpecializerTest.java" = "" +"java/lang/invoke/ClassValueTest.java" = "" +"java/lang/invoke/CustomizedLambdaFormTest.java" = "" +"java/lang/invoke/DumpMethodHandleInternals.java" = "" +"java/lang/invoke/FindAccessTest.java" = "" +"java/lang/invoke/JavaUtilConcurrentLookupTest.java" = "" +"java/lang/invoke/MethodHandleProxies/BasicTest.java" = "" +"java/lang/invoke/MethodHandleProxies/Driver.java" = "" +"java/lang/invoke/MethodHandleProxies/WrapperHiddenClassTest.java" = "" +"java/lang/invoke/MethodHandles/ensureInitialized/Main.java" = "" +"java/lang/invoke/MethodHandles/privateLookupIn/Driver.java" = "" +"java/lang/invoke/MethodHandles/publicLookup/Driver.java" = "" +"java/lang/invoke/MethodHandlesGeneralTest.java" = "" +"java/lang/invoke/PrivateInterfaceCall.java" = "" +"java/lang/invoke/PrivateInvokeTest.java" = "" +"java/lang/invoke/RevealDirectTest.java" = "" +"java/lang/invoke/SpecialInterfaceCall.java" = "" +"java/lang/invoke/ThrowExceptionsTest.java" = "" +"java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java" = "" +"java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java" = "" +"java/lang/invoke/VarHandles/VarHandleTestReflection.java" = "" +"java/lang/invoke/VarargsArrayTest.java" = "" +"java/lang/invoke/callerSensitive/CallerSensitiveAccess.java" = "" +"java/lang/invoke/callerSensitive/Main.java" = "" +"java/lang/invoke/defineHiddenClass/BasicTest.java" = "" +"java/lang/invoke/defineHiddenClass/StaticInvocableTest.java" = "" +"java/lang/invoke/defineHiddenClass/TypeDescriptorTest.java" = "" +"java/lang/invoke/defineHiddenClass/UnloadingTest.java" = "" +"java/lang/invoke/findSpecial/FindSpecialTest.java" = "" +"java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java" = "" +"java/lang/invoke/lambda/LambdaAsm.java" = "" +"java/lang/invoke/lambda/LambdaEagerInitTest.java" = "" +"java/lang/invoke/lambda/LogGeneratedClassesTest.java" = "" +"java/lang/invoke/lookup/ReflectiveLookupTest.java" = "" +"java/lang/invoke/modules/Driver.java" = "" +"java/lang/invoke/modules/Driver1.java" = "" +"java/lang/management/BufferPoolMXBean/Basic.java" = "" +"java/lang/management/ClassLoadingMXBean/LoadCounts.java" = "" +"java/lang/management/ClassLoadingMXBean/TestVerboseClassLoading.java" = "" +"java/lang/management/GarbageCollectorMXBean/GcInfoCompositeType.java" = "" +"java/lang/management/MXBean/MXBeanBehavior.java" = "" +"java/lang/management/ManagementFactory/GetObjectName.java" = "" +"java/lang/management/ManagementFactory/GetPlatformMXBeans.java" = "" +"java/lang/management/ManagementFactory/MXBeanException.java" = "" +"java/lang/management/ManagementFactory/MXBeanProxyTest.java" = "" +"java/lang/management/ManagementFactory/PlatformMBeanServerTest.java" = "" +"java/lang/management/ManagementFactory/ProxyExceptions.java" = "" +"java/lang/management/ManagementFactory/ProxyTypeMapping.java" = "" +"java/lang/management/ManagementFactory/ThreadMXBeanProxy.java" = "" +"java/lang/management/ManagementFactory/ValidateOpenTypes.java" = "" +"java/lang/management/MemoryMXBean/CollectionUsageThreshold.java" = "" +"java/lang/management/MemoryMXBean/GetMBeanInfo.java" = "" +"java/lang/management/MemoryMXBean/LowMemoryTest2.java" = "" +"java/lang/management/MemoryMXBean/MemoryManagement.java" = "" +"java/lang/management/MemoryMXBean/Pending.java" = "" +"java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java" = "" +"java/lang/management/MemoryMXBean/TestVerboseMemory.java" = "" +"java/lang/management/PlatformLoggingMXBean/LoggingMXBeanTest.java" = "" +"java/lang/management/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java" = "" +"java/lang/management/RuntimeMXBean/InputArgument.java" = "" +"java/lang/management/ThreadMXBean/AllThreadIds.java" = "" +"java/lang/management/ThreadMXBean/FindDeadlocks.java" = "" +"java/lang/management/ThreadMXBean/FindMonitorDeadlock.java" = "" +"java/lang/management/ThreadMXBean/Locks.java" = "" +"java/lang/management/ThreadMXBean/MaxDepthForThreadInfoTest.java" = "" +"java/lang/management/ThreadMXBean/SynchronizationStatistics.java" = "" +"java/lang/management/ThreadMXBean/ThreadBlockedCount.java" = "" +"java/lang/management/ThreadMXBean/ThreadCpuTime.java" = "" +"java/lang/management/ThreadMXBean/ThreadDaemonTest.java" = "" +"java/lang/management/ThreadMXBean/ThreadInfoArray.java" = "" +"java/lang/management/ThreadMXBean/ThreadLists.java" = "" +"java/lang/management/ThreadMXBean/ThreadStackTrace.java" = "" +"java/lang/management/ThreadMXBean/ThreadUserTime.java" = "" +"java/lang/management/ThreadMXBean/VirtualThreadDeadlocks.java" = "" +"java/lang/module/AutomaticModulesTest.java" = "" +"java/lang/module/ModuleDescriptorHashCodeTest.java" = "" +"java/lang/module/ModuleReader/ModuleReaderTest.java" = "" +"java/lang/module/MultiReleaseJarTest.java" = "" +"java/lang/module/Packages/GetPackagesTest.java" = "" +"java/lang/module/customfs/ModulesInCustomFileSystem.java" = "" "java/lang/ref/Basic.java" = "" +"java/lang/ref/CleanerTest.java" = "" "java/lang/ref/FinalizeOverride.java" = "" -"java/net/Socket/asyncClose/Race.java" = "" -"java/net/URLClassLoader/B7050028.java" = "" -"java/security/Principal/Implies.java" = "" +"java/lang/ref/FinalizerHistogramTest.java" = "" +"java/lang/ref/OOMEInReferenceHandler.java" = "" +"java/lang/ref/ReachabilityFenceTest.java" = "" +"java/lang/reflect/AccessFlag/StrictAccessFlagTest.java" = "" +"java/lang/reflect/AccessibleObject/ModuleSetAccessibleTest.java" = "" +"java/lang/reflect/AccessibleObject/TrySetAccessibleTest.java" = "" +"java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java" = "" +"java/lang/reflect/MethodHandleAccessorsTest.java" = "" +"java/lang/reflect/Proxy/ProxyClassAccessTest.java" = "" +"java/lang/reflect/Proxy/ProxyTest.java" = "" +"java/lang/reflect/callerCache/ReflectionCallerCacheTest.java" = "" +"java/lang/reflect/classInitialization/ExceptionInClassInitialization.java" = "" +"java/lang/reflect/records/IsRecordTest.java" = "" +"java/lang/runtime/CarriersTest.java" = "" +"java/lang/runtime/SwitchBootstrapsTest.java" = "" +"java/math/BigDecimal/DoubleFloatValueTests.java" = "" +"java/math/BigInteger/ByteArrayConstructorTest.java" = "" +"java/math/BigInteger/MutableBigIntegerShiftTests.java" = "" +"java/net/Authenticator/B4722333.java" = "" +"java/net/Authenticator/B4759514.java" = "" +"java/net/Authenticator/B4769350.java" = "" +"java/net/Authenticator/B4921848.java" = "" +"java/net/Authenticator/B6870935.java" = "" +"java/net/Authenticator/B8034170.java" = "" +"java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.java" = "" +"java/net/DatagramSocket/UnreferencedDatagramSockets.java" = "" +"java/net/HttpURLConnection/HostHeaderTest.java" = "" +"java/net/HttpURLConnection/SetAuthenticator/HTTPSetAuthenticatorTest.java" = "" +"java/net/HttpURLConnection/SetAuthenticator/HTTPTest.java" = "" +"java/net/InetAddress/InternalNameServiceTest.java" = "" +"java/net/InetAddress/IsHostReachableBug.java" = "" +"java/net/InetAddress/NullCharInHostnameDriver.java" = "" +"java/net/MulticastSocket/UnreferencedMulticastSockets.java" = "" +"java/net/NetworkInterface/IPv4Only.java" = "" +"java/net/NetworkInterface/NetworkInterfaceStreamTest.java" = "" +"java/net/SctpSanity.java" = "" +"java/net/ServerSocket/AcceptInheritHandle.java" = "" +"java/net/ServerSocket/UnreferencedSockets.java" = "" +"java/net/Socket/ExceptionText.java" = "" +"java/net/Socket/RejectIPv6.java" = "" +"java/net/Socket/TestAfterClose.java" = "" +"java/net/SocketImpl/BadUsages.java" = "" +"java/net/URL/EarlyOrDelayedParsing.java" = "" +"java/net/URL/JarHandlerPkgPrefix/JarHandlerPkgPrefix.java" = "" +"java/net/URLConnection/ContentHandlers/ContentHandlersTest.java" = "" +"java/net/URLConnection/TimeoutTest.java" = "" +"java/net/httpclient/HttpClientExceptionTest.java" = "" +"java/net/httpclient/HttpResponseInputStreamInterruptTest.java" = "" +"java/net/httpclient/TlsContextTest.java" = "" +"java/net/httpclient/http2/HpackBinaryTestDriver.java" = "" +"java/net/httpclient/http2/HpackCircularBufferDriver.java" = "" +"java/net/httpclient/http2/HpackDecoderDriver.java" = "" +"java/net/httpclient/http2/HpackEncoderDriver.java" = "" +"java/net/httpclient/http2/HpackHeaderTableDriver.java" = "" +"java/net/httpclient/http2/HpackHuffmanDriver.java" = "" +"java/net/httpclient/http2/HpackTestHelper.java" = "" +"java/net/httpclient/websocket/HeaderWriterDriver.java" = "" +"java/net/httpclient/websocket/MaskerDriver.java" = "" +"java/net/httpclient/websocket/MessageQueueDriver.java" = "" +"java/net/httpclient/websocket/ReaderDriver.java" = "" +"java/net/httpclient/websocket/WebSocketServerDriver.java" = "" +"java/net/httpclient/whitebox/AuthenticationFilterTestDriver.java" = "" +"java/net/httpclient/whitebox/ConnectionPoolTestDriver.java" = "" +"java/net/httpclient/whitebox/DefaultProxyDriver.java" = "" +"java/net/httpclient/whitebox/DelegatingExecutorTestDriver.java" = "" +"java/net/httpclient/whitebox/DemandTestDriver.java" = "" +"java/net/httpclient/whitebox/FlowTestDriver.java" = "" +"java/net/httpclient/whitebox/FramesDecoderTestDriver.java" = "" +"java/net/httpclient/whitebox/Http1HeaderParserTestDriver.java" = "" +"java/net/httpclient/whitebox/MinimalFutureTestDriver.java" = "" +"java/net/httpclient/whitebox/RawChannelTestDriver.java" = "" +"java/net/httpclient/whitebox/SSLEchoTubeTestDriver.java" = "" +"java/net/httpclient/whitebox/SSLFlowDelegateTestDriver.java" = "" +"java/net/httpclient/whitebox/SSLTubeTestDriver.java" = "" +"java/net/httpclient/whitebox/SelectorTestDriver.java" = "" +"java/net/httpclient/whitebox/WindowControllerTestDriver.java" = "" +"java/net/httpclient/whitebox/WrapperTestDriver.java" = "" +"java/net/spi/InetAddressResolverProvider/AddressesCachingTest.java" = "" +"java/net/spi/InetAddressResolverProvider/AddressesStaleCachingTest.java" = "" +"java/net/spi/InetAddressResolverProvider/BootstrapResolverUsageTest.java" = "" +"java/net/spi/InetAddressResolverProvider/EmptyResultsStreamTest.java" = "" +"java/net/spi/InetAddressResolverProvider/InetAddressUsageInGetProviderTest.java" = "" +"java/net/spi/InetAddressResolverProvider/LookupPolicyMappingTest.java" = "" +"java/net/spi/InetAddressResolverProvider/ProviderGetExceptionTest.java" = "" +"java/net/spi/InetAddressResolverProvider/ResolutionWithExceptionTest.java" = "" +"java/net/spi/InetAddressResolverProvider/ReverseLookupDelegationTest.java" = "" +"java/net/spi/InetAddressResolverProvider/serviceProviderOriginType/classpath/ClasspathProviderTest.java" = "" +"java/net/spi/InetAddressResolverProvider/serviceProviderOriginType/module/ModularProviderTest.java" = "" +"java/net/spi/URLStreamHandlerProvider/Basic.java" = "" +"java/net/whitebox/CookieTestDriver.java" = "" +"java/nio/Buffer/LimitDirectMemory.java" = "" +"java/nio/Buffer/LimitDirectMemoryNegativeTest.java" = "" +"java/nio/MappedByteBuffer/MapSyncFail.java" = "" +"java/nio/channels/AsynchronousChannelGroup/BadProperties.java" = "" +"java/nio/channels/DatagramChannel/AfterDisconnect.java" = "" +"java/nio/channels/DatagramChannel/ConnectPortZero.java" = "" +"java/nio/channels/DatagramChannel/InterruptibleOrNot.java" = "" +"java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java" = "" +"java/nio/channels/DatagramChannel/SendPortZero.java" = "" +"java/nio/channels/DatagramChannel/SocketOptionTests.java" = "" +"java/nio/channels/DatagramChannel/Unref.java" = "" +"java/nio/channels/FileChannel/CleanerTest.java" = "" +"java/nio/channels/FileChannel/CloseDuringTransfer.java" = "" +"java/nio/channels/FileChannel/TempDirectBuffersReclamation.java" = "" +"java/nio/channels/Selector/DeferredClose/DeferredCloseTest.java" = "" +"java/nio/channels/Selector/RegisterDuringSelect.java" = "" +"java/nio/channels/Selector/SelectAndClose.java" = "" +"java/nio/channels/etc/ProtocolFamilies.java" = "" +"java/nio/channels/spi/AsynchronousChannelProvider/CheckProvider.java" = "" +"java/nio/charset/Charset/NIOCharsetAvailabilityTest.java" = "" +"java/nio/charset/Charset/RegisteredCharsets.java" = "" +"java/nio/charset/CharsetDecoder/XcodeOverflow.java" = "" +"java/nio/charset/spi/CharsetProviderAsModuleTest.java" = "" +"java/nio/charset/spi/CharsetProviderBasicTest.java" = "" +"java/nio/file/Files/CallWithInterruptSet.java" = "" +"java/nio/file/Files/StreamLinesTest.java" = "" +"java/nio/file/Path/MacPathTest.java" = "" +"java/nio/file/WatchService/LotsOfEntries.java" = "" +"java/nio/file/spi/SetDefaultProvider.java" = "" +"java/nio/file/spi/TestDelegation.java" = "" +"java/rmi/MarshalledObject/MOFilterTest.java" = "" +"java/rmi/MarshalledObject/compare/Compare.java" = "" +"java/rmi/MarshalledObject/compare/HashCode.java" = "" +"java/rmi/Naming/DefaultRegistryPort.java" = "" +"java/rmi/Naming/LookupIPv6.java" = "" +"java/rmi/Naming/LookupNameWithColon.java" = "" +"java/rmi/Naming/RmiIsNoScheme.java" = "" +"java/rmi/Naming/UnderscoreHost.java" = "" +"java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java" = "" +"java/rmi/RemoteException/chaining/Chaining.java" = "" +"java/rmi/dgc/VMID/CheckVMID.java" = "" +"java/rmi/dgc/dgcAckFailure/DGCAckFailure.java" = "" +"java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java" = "" +"java/rmi/invalidName/InvalidName.java" = "" +"java/rmi/module/ModuleTest.java" = "" +"java/rmi/registry/classPathCodebase/ClassPathCodebase.java" = "" +"java/rmi/registry/emptyName/EmptyName.java" = "" +"java/rmi/registry/interfaceHash/InterfaceHash.java" = "" +"java/rmi/registry/multipleRegistries/MultipleRegistries.java" = "" +"java/rmi/registry/readTest/CodebaseTest.java" = "" +"java/rmi/registry/reexport/Reexport.java" = "" +"java/rmi/registry/serialFilter/RegistryFilterTest.java" = "" +"java/rmi/reliability/benchmark/bench/rmi/Main.java" = "" +"java/rmi/reliability/juicer/AppleUserImpl.java" = "" +"java/rmi/server/ObjID/randomIDs/RandomIDs.java" = "" +"java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java" = "" +"java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java" = "" +"java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java" = "" +"java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java" = "" +"java/rmi/server/RMIClassLoader/spi/DefaultProperty.java" = "" +"java/rmi/server/RMIClassLoader/spi/Installed.java" = "" +"java/rmi/server/RMIClassLoader/spi/Property.java" = "" +"java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java" = "" +"java/rmi/server/RMIClassLoader/useCodebaseOnlyDefault/UseCodebaseOnlyDefault.java" = "" +"java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java" = "" +"java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java" = "" +"java/rmi/server/RMISocketFactory/useSocketFactory/unicast/TCPEndpointReadBug.java" = "" +"java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java" = "" +"java/rmi/server/RemoteObject/notExtending/NotExtending.java" = "" +"java/rmi/server/RemoteObject/toStub/ToStub.java" = "" +"java/rmi/server/RemoteObject/unrecognizedRefType/UnrecognizedRefType.java" = "" +"java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java" = "" +"java/rmi/server/RemoteServer/AddrInUse.java" = "" +"java/rmi/server/RemoteServer/SetLogNull.java" = "" +"java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java" = "" +"java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java" = "" +"java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java" = "" +"java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java" = "" +"java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java" = "" +"java/rmi/server/UnicastRemoteObject/serialFilter/FilterUROTest.java" = "" +"java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java" = "" +"java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java" = "" +"java/rmi/server/UnicastServerRef/serialFilter/FilterUSRTest.java" = "" +"java/rmi/server/Unmarshal/PrimitiveClasses.java" = "" +"java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java" = "" +"java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java" = "" +"java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java" = "" +"java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java" = "" +"java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java" = "" +"java/rmi/server/clientStackTrace/ClientStackTrace.java" = "" +"java/rmi/server/getRemoteClass/GetRemoteClass.java" = "" +"java/rmi/server/serverStackTrace/ServerStackTrace.java" = "" +"java/rmi/server/serverStackTrace/SuppressStackTraces.java" = "" +"java/rmi/server/useCustomRef/UseCustomRef.java" = "" +"java/rmi/testlibrary/TestSocketFactory.java" = "" +"java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java" = "" +"java/rmi/transport/checkFQDN/CheckFQDN.java" = "" +"java/rmi/transport/closeServerSocket/CloseServerSocket.java" = "" +"java/rmi/transport/dgcDeadLock/DGCDeadLock.java" = "" +"java/rmi/transport/handshakeFailure/HandshakeFailure.java" = "" +"java/rmi/transport/handshakeTimeout/HandshakeTimeout.java" = "" +"java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java" = "" +"java/rmi/transport/pinLastArguments/PinLastArguments.java" = "" +"java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java" = "" +"java/rmi/transport/readTimeout/ReadTimeoutTest.java" = "" +"java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java" = "" +"java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java" = "" +"java/security/KeyStore/CheckMacOSKeyChainTrust.java" = "" +"java/security/PEM/PEMDecoderTest.java" = "" +"java/security/PEM/PEMEncoderTest.java" = "" +"java/security/PEM/PEMMultiThreadTest.java" = "" +"java/security/PermissionCollection/PermissionCollectionStreamTest.java" = "" "java/security/Provider/DefaultProviderList.java" = "" +"java/security/Provider/SecurityProviderModularTest.java" = "" +"java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.java" = "" +"java/security/Security/ConfigFileTest.java" = "" +"java/security/Security/signedfirst/DynStatic.java" = "" +"java/security/SignedJar/spi-calendar-provider/TestSPISigned.java" = "" +"java/security/cert/CertPathValidator/OCSP/OCSPTimeout.java" = "" +"java/sql/driverModuleTests/DriverManagerModuleTests.java" = "" +"java/text/AttributedCharacterIterator/Attribute/ReadResolve.java" = "" +"java/text/AttributedString/TestAttributedStringCtor.java" = "" +"java/text/AttributedString/getRunStartLimitTest.java" = "" +"java/text/Bidi/BidiConformance.java" = "" +"java/text/Bidi/BidiEmbeddingTest.java" = "" +"java/text/Bidi/Bug7042148.java" = "" +"java/text/Bidi/Bug7051769.java" = "" +"java/text/BreakIterator/NewVSOld_th_TH.java" = "" +"java/text/Collator/APITest.java" = "" +"java/text/Collator/CollationKeyTest.java" = "" +"java/text/Collator/DanishTest.java" = "" +"java/text/Collator/FinnishTest.java" = "" +"java/text/Collator/FrenchTest.java" = "" +"java/text/Collator/G7Test.java" = "" +"java/text/Collator/JapaneseTest.java" = "" +"java/text/Collator/KoreanTest.java" = "" +"java/text/Collator/Regression.java" = "" +"java/text/Collator/TurkishTest.java" = "" +"java/text/Collator/VietnameseTest.java" = "" +"java/text/Format/CompactNumberFormat/SPIProviderTest.java" = "" +"java/text/Format/CompactNumberFormat/TestCompactNumber.java" = "" +"java/text/Format/CompactNumberFormat/TestFormatToCharacterIterator.java" = "" +"java/text/Format/CompactNumberFormat/TestParseBigDecimal.java" = "" +"java/text/Format/CompactNumberFormat/TestUExtensionOverride.java" = "" +"java/text/Format/DateFormat/Bug4407042.java" = "" +"java/text/Format/DateFormat/Bug6683975.java" = "" +"java/text/Format/DateFormat/Bug8139572.java" = "" +"java/text/Format/DateFormat/Bug8235699.java" = "" +"java/text/Format/DateFormat/ContextMonthNamesTest.java" = "" +"java/text/Format/DateFormat/DateFormatRegression.java" = "" +"java/text/Format/DateFormat/DateFormatTest.java" = "" +"java/text/Format/DateFormat/LocaleDateFormats.java" = "" +"java/text/Format/DateFormat/NonGregorianFormatTest.java" = "" +"java/text/Format/DateFormat/bug4117335.java" = "" +"java/text/Format/ListFormat/TestListFormat.java" = "" +"java/text/Format/ListFormat/ToStringTest.java" = "" +"java/text/Format/MessageFormat/LargeMessageFormat.java" = "" +"java/text/Format/NumberFormat/Bug8132125.java" = "" +"java/text/Format/NumberFormat/CurrencyFormat.java" = "" +"java/text/Format/NumberFormat/IntlTestNumberFormatAPI.java" = "" "java/text/Format/NumberFormat/MultipleNumberScriptTest.java" = "" -"java/util/Collections/RotateHuge.java" = "" -"java/util/ResourceBundle/Control/LoadingStrategiesTest.java" = "" +"java/text/Format/NumberFormat/NumberRegression.java" = "" +"java/text/Format/NumberFormat/NumberTest.java" = "" +"java/time/nontestng/java/time/chrono/HijrahConfigTest.java" = "" +"java/time/nontestng/java/time/zone/CustomZoneNameTest.java" = "" +"java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java" = "" +"java/time/test/java/time/format/TestDateTimeTextProviderWithLocale.java" = "" +"java/time/test/java/time/format/TestLocalizedOffsetPrinterParser.java" = "" +"java/time/test/java/time/format/TestNarrowMonthNamesAndDayNames.java" = "" +"java/time/test/java/time/format/TestNonIsoFormatter.java" = "" +"java/time/test/java/time/format/TestTextParserWithLocale.java" = "" +"java/time/test/java/time/format/TestTextPrinterWithLocale.java" = "" +"java/time/test/java/time/format/TestUnicodeExtension.java" = "" +"java/time/test/java/time/format/TestZoneTextPrinterParser.java" = "" +"java/util/Arrays/Sorting.java" = "" +"java/util/Arrays/TimSortStackSize2.java" = "" +"java/util/Arrays/largeMemory/ParallelPrefix.java" = "" +"java/util/BitSet/stream/BitSetStreamTest.java" = "" +"java/util/Calendar/CldrFormatNamesTest.java" = "" +"java/util/Calendar/JapaneseEraNameTest.java" = "" +"java/util/Calendar/NarrowNamesTest.java" = "" +"java/util/Calendar/SupplementalJapaneseEraTestRun.java" = "" +"java/util/Collection/MOAT.java" = "" +"java/util/Collection/RandomizedIteration.java" = "" +"java/util/Currency/CurrencyTest.java" = "" +"java/util/Currency/PropertiesTestRun.java" = "" +"java/util/Currency/ValidateISO4217.java" = "" +"java/util/Formatter/BasicTestLauncher.java" = "" +"java/util/Formatter/FormatLocale.java" = "" +"java/util/Formatter/spi/FormatterWithProvider.java" = "" +"java/util/Formatter/spi/NoGroupingUsed.java" = "" +"java/util/Locale/AliasesShouldBeRecognizedInCLDR.java" = "" +"java/util/Locale/AvailableLocalesTest.java" = "" +"java/util/Locale/CompatWarning.java" = "" +"java/util/Locale/HashCodeTest.java" = "" +"java/util/Locale/InternationalBAT.java" = "" +"java/util/Locale/JDK7LocaleServiceDiffs.java" = "" +"java/util/Locale/LocaleCategory.java" = "" +"java/util/Locale/LocaleCmdOverrides.java" = "" +"java/util/Locale/LocaleEnhanceTest.java" = "" +"java/util/Locale/LocaleProvidersLogger.java" = "" +"java/util/Locale/LocaleProvidersRun.java" = "" +"java/util/Locale/LocaleShouldSetFromCLI.java" = "" +"java/util/Locale/LocaleTest.java" = "" +"java/util/Locale/ThaiGov.java" = "" +"java/util/Locale/UseOldISOCodesTest.java" = "" +"java/util/Locale/UserRegionTest.java" = "" +"java/util/Locale/bcp47u/CurrencyFormatTests.java" = "" +"java/util/Locale/bcp47u/CurrencyTests.java" = "" +"java/util/Locale/bcp47u/DisplayNameTests.java" = "" +"java/util/Locale/bcp47u/FormatTests.java" = "" +"java/util/Locale/bcp47u/SymbolsTests.java" = "" +"java/util/Locale/bcp47u/SystemPropertyTests.java" = "" +"java/util/Locale/bcp47u/spi/DateFormatSymbolsProviderTests.java" = "" +"java/util/Locale/bcp47u/spi/LocaleNameProviderTests.java" = "" +"java/util/PluggableLocale/BreakIteratorProviderTest.java" = "" +"java/util/PluggableLocale/CalendarDataProviderTest.java" = "" +"java/util/PluggableLocale/CalendarNameProviderTest.java" = "" +"java/util/PluggableLocale/ClasspathTest.java" = "" +"java/util/PluggableLocale/CollatorProviderTest.java" = "" +"java/util/PluggableLocale/CurrencyNameProviderTest.java" = "" +"java/util/PluggableLocale/DateFormatProviderTest.java" = "" +"java/util/PluggableLocale/DateFormatSymbolsProviderTest.java" = "" +"java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java" = "" +"java/util/PluggableLocale/GenericTest.java" = "" +"java/util/PluggableLocale/LocaleNameProviderTest.java" = "" +"java/util/PluggableLocale/NumberFormatProviderTest.java" = "" +"java/util/PluggableLocale/TimeZoneNameProviderTest.java" = "" +"java/util/Properties/StoreReproducibilityTest.java" = "" +"java/util/ResourceBundle/Bug6299235/Bug6299235Test.java" = "" +"java/util/ResourceBundle/Control/Bug6530694.java" = "" +"java/util/ResourceBundle/UTF8Properties/CodePointTest.java" = "" +"java/util/ResourceBundle/UTF8Properties/IllegalSequenceTest.java" = "" +"java/util/ResourceBundle/modules/basic/BasicTest.java" = "" +"java/util/ResourceBundle/modules/cache/CacheTest.java" = "" +"java/util/ResourceBundle/modules/casesensitive/CaseInsensitiveNameClash.java" = "" +"java/util/ResourceBundle/modules/unnamed/UnNamedTest.java" = "" +"java/util/ResourceBundle/modules/visibility/VisibilityTest.java" = "" +"java/util/Scanner/ScanTest.java" = "" +"java/util/Scanner/ScannerStreamTest.java" = "" +"java/util/Scanner/spi/UseLocaleWithProvider.java" = "" +"java/util/ServiceLoader/ModulesTest.java" = "" +"java/util/ServiceLoader/ReloadTest.java" = "" +"java/util/ServiceLoader/inheritance/NoInheritanceTest.java" = "" +"java/util/ServiceLoader/nouses/NoUsesTest.java" = "" +"java/util/Spliterator/IteratorFromSpliteratorTest.java" = "" +"java/util/Spliterator/SpliteratorCollisions.java" = "" +"java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java" = "" +"java/util/StringJoiner/StringJoinerTest.java" = "" "java/util/TimeZone/AssureTzdataVersion.java" = "" -"javax/net/ssl/HttpsURLConnection/CriticalSubjectAltName.java" = "" +"java/util/TimeZone/CLDRDisplayNamesTest.java" = "" +"java/util/TimeZone/HongKong.java" = "" +"java/util/WeakHashMap/GCDuringIteration.java" = "" +"java/util/concurrent/ArrayBlockingQueue/WhiteBox.java" = "" +"java/util/concurrent/ExecutorService/CloseTest.java" = "" +"java/util/concurrent/StructuredTaskScope/StressCancellation.java" = "" +"java/util/concurrent/StructuredTaskScope/StructuredTaskScopeTest.java" = "" +"java/util/concurrent/StructuredTaskScope/StructuredThreadDumpTest.java" = "" +"java/util/concurrent/StructuredTaskScope/WithScopedValue.java" = "" +"java/util/concurrent/forkjoin/Uniprocessor.java" = "" +"java/util/concurrent/locks/Lock/OOMEInAQS.java" = "" +"java/util/concurrent/locks/Lock/TimedAcquireLeak.java" = "" +"java/util/concurrent/locks/LockSupport/ParkLoops.java" = "" +"java/util/concurrent/locks/StampedLock/OOMEInStampedLock.java" = "" +"java/util/concurrent/tck/JSR166TestCase.java" = "" +"java/util/jar/JarFile/mrjar/MultiReleaseJarHttpProperties.java" = "" +"java/util/jar/JarFile/mrjar/MultiReleaseJarProperties.java" = "" +"java/util/jar/Manifest/IncludeInExceptionsTest.java" = "" +"java/util/logging/CustomLogManagerTest.java" = "" +"java/util/logging/DefaultConfigTest.java" = "" +"java/util/logging/FileHandlerMaxLocksTest.java" = "" +"java/util/logging/Handler/StreamHandlerLockingTest.java" = "" +"java/util/logging/HandlersConfigTest.java" = "" +"java/util/logging/Level/CustomLevel.java" = "" +"java/util/logging/LogManager/Configuration/rootLoggerHandlers/BadRootLoggerHandlers.java" = "" +"java/util/logging/LogManager/Configuration/rootLoggerHandlers/RootLoggerHandlers.java" = "" +"java/util/logging/Logger/bundleLeak/BundleTest.java" = "" +"java/util/logging/Logger/getGlobal/TestGetGlobal.java" = "" +"java/util/logging/Logger/getGlobal/TestGetGlobalByName.java" = "" +"java/util/logging/Logger/getGlobal/TestGetGlobalConcurrent.java" = "" +"java/util/logging/MemoryHandlerTest.java" = "" +"java/util/logging/RootLogger/RootLevelInConfigFile.java" = "" +"java/util/logging/SimpleFormatterFormat.java" = "" +"java/util/logging/SimpleLogManager.java" = "" +"java/util/logging/TestLoggerWeakRefLeak.java" = "" +"java/util/logging/TestLoggingWithMainAppContext.java" = "" +"java/util/logging/TestMainAppContext.java" = "" +"java/util/logging/modules/GetResourceBundleTest.java" = "" +"java/util/logging/modules/LogManagerInModule/LogManagerInModuleTest.java" = "" +"java/util/prefs/AddNodeChangeListener.java" = "" +"java/util/prefs/CheckUserPrefsStorage.java" = "" +"java/util/prefs/CodePointZeroPrefsTest.java" = "" +"java/util/prefs/CommentsInXml.java" = "" +"java/util/prefs/ConflictInFlush.java" = "" +"java/util/prefs/ExportNode.java" = "" +"java/util/prefs/ExportSubtree.java" = "" +"java/util/prefs/PrefsSpiTest.java" = "" +"java/util/prefs/RemoveNullKeyCheck.java" = "" +"java/util/prefs/RemoveReadOnlyNode.java" = "" +"java/util/prefs/RemoveUnregedListener.java" = "" +"java/util/regex/PatternStreamTest.java" = "" +"java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java" = "" +"java/util/stream/GathererTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorExample.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorToUnmodListTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorsTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/IterateTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpStatefulTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java" = "" +"java/util/stream/test/org/openjdk/tests/java/util/stream/mapMultiOpTest.java" = "" +"java/util/zip/EntryCount64k.java" = "" +"java/util/zip/ZipFile/TestCleaner.java" = "" +"javax/crypto/CryptoPermissions/InconsistentEntries.java" = "" +"javax/crypto/CryptoPermissions/TestExemption.java" = "" +"javax/crypto/CryptoPermissions/TestUnlimited.java" = "" +"javax/crypto/EncryptedPrivateKeyInfo/EncryptKey.java" = "" +"javax/crypto/EncryptedPrivateKeyInfo/GetKey.java" = "" +"javax/crypto/JceSecurity/VerificationResults.java" = "" +"javax/crypto/KDF/KDFDelayedProviderException.java" = "" +"javax/crypto/KDF/KDFDelayedProviderTest.java" = "" +"javax/crypto/KDF/KDFDelayedProviderThreadingTest.java" = "" +"javax/crypto/SecretKeyFactory/TestFailOver.java" = "" +"javax/management/Introspector/ClassLeakTest.java" = "" +"javax/management/MBeanInfo/NullInfoArraysTest.java" = "" +"javax/management/MBeanInfo/SerializationTest.java" = "" +"javax/management/MBeanInfo/SerializationTest1.java" = "" +"javax/management/MBeanServer/ExceptionTest.java" = "" +"javax/management/MBeanServer/OldMBeanServerTest.java" = "" +"javax/management/descriptor/ImmutableDescriptorSerialTest.java" = "" +"javax/management/descriptor/MBeanInfoInteropTest.java" = "" +"javax/management/modelmbean/DescriptorSupportSerialTest.java" = "" +"javax/management/modelmbean/UnserializableTargetObjectTest.java" = "" +"javax/management/mxbean/GenericArrayTypeTest.java" = "" +"javax/management/mxbean/LeakTest.java" = "" +"javax/management/mxbean/MXBeanExceptionHandlingTest.java" = "" +"javax/management/mxbean/MXBeanInteropTest1.java" = "" +"javax/management/mxbean/MXBeanInteropTest2.java" = "" +"javax/management/mxbean/MXBeanLoadingTest1.java" = "" +"javax/management/mxbean/MXBeanNotifTest.java" = "" +"javax/management/mxbean/MXBeanTest.java" = "" +"javax/management/mxbean/MXBeanWeirdParamTest.java" = "" +"javax/management/mxbean/RecordsMXBeanTest.java" = "" +"javax/management/mxbean/ThreadMXBeanTest.java" = "" +"javax/management/openmbean/ArrayTypeTest.java" = "" +"javax/management/openmbean/OpenTypeDescriptorTest.java" = "" +"javax/management/proxy/NotificationEmitterProxy.java" = "" +"javax/management/proxy/ProxyObjectMethodsTest.java" = "" +"javax/management/query/SupportedQueryTypesTest.java" = "" +"javax/management/remote/mandatory/RemovedSubjectDelegation.java" = "" +"javax/management/remote/mandatory/connection/AddressableTest.java" = "" +"javax/management/remote/mandatory/connection/BrokenConnectionTest.java" = "" +"javax/management/remote/mandatory/connection/CloseServerTest.java" = "" +"javax/management/remote/mandatory/connection/CloseUnconnectedTest.java" = "" +"javax/management/remote/mandatory/connection/ConnectionTest.java" = "" +"javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java" = "" +"javax/management/remote/mandatory/connection/DeadLockTest.java" = "" +"javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java" = "" +"javax/management/remote/mandatory/connection/FailedConnectionTest.java" = "" +"javax/management/remote/mandatory/connection/IdleTimeoutTest.java" = "" +"javax/management/remote/mandatory/connection/MultiOpenCloseTest.java" = "" +"javax/management/remote/mandatory/connection/MultiThreadDeadLockTest.java" = "" +"javax/management/remote/mandatory/connection/NewRMIClientFilterTest.java" = "" +"javax/management/remote/mandatory/connection/RMIConnectionIdTest.java" = "" +"javax/management/remote/mandatory/connection/RMIConnectorLogAttributesTest.java" = "" +"javax/management/remote/mandatory/connection/RMIConnectorNullSubjectConnTest.java" = "" +"javax/management/remote/mandatory/connection/RMIExitTest.java" = "" +"javax/management/remote/mandatory/connection/ReconnectTest.java" = "" +"javax/management/remote/mandatory/connectorServer/ConnectorStopDeadlockTest.java" = "" +"javax/management/remote/mandatory/connectorServer/JNDIFailureTest.java" = "" +"javax/management/remote/mandatory/connectorServer/MBSFPreStartPostStartTest.java" = "" +"javax/management/remote/mandatory/connectorServer/RMIExporterTest.java" = "" +"javax/management/remote/mandatory/loading/DeserializeEncodedURLTest.java" = "" +"javax/management/remote/mandatory/loading/MethodResultTest.java" = "" +"javax/management/remote/mandatory/loading/MissingClassTest.java" = "" +"javax/management/remote/mandatory/loading/RMIDownloadTest.java" = "" +"javax/management/remote/mandatory/loading/UserClassLoaderTest.java" = "" +"javax/management/remote/mandatory/notif/AddRemoveTest.java" = "" +"javax/management/remote/mandatory/notif/ConcurrentModificationTest.java" = "" +"javax/management/remote/mandatory/notif/DeadListenerTest.java" = "" +"javax/management/remote/mandatory/notif/DiffHBTest.java" = "" +"javax/management/remote/mandatory/notif/EmptyDomainNotificationTest.java" = "" +"javax/management/remote/mandatory/notif/ListenerScaleTest.java" = "" +"javax/management/remote/mandatory/notif/NotSerializableNotifTest.java" = "" +"javax/management/remote/mandatory/notif/NotifBufferSizePropertyNameTest.java" = "" +"javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java" = "" +"javax/management/remote/mandatory/notif/NotificationAccessControllerTest.java" = "" +"javax/management/remote/mandatory/notif/NotificationBufferCreationTest.java" = "" +"javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java" = "" +"javax/management/remote/mandatory/notif/NotificationEmissionTest.java" = "" +"javax/management/remote/mandatory/notif/RMINotifTest.java" = "" +"javax/management/remote/mandatory/notif/ServerNotifs.java" = "" +"javax/management/remote/mandatory/notif/UnexpectedNotifTest.java" = "" +"javax/management/remote/mandatory/passwordAccessFile/NonJMXPrincipalsTest.java" = "" +"javax/management/remote/mandatory/passwordAccessFile/PasswordAccessFileTest.java" = "" +"javax/management/remote/mandatory/passwordAuthenticator/RMIAltAuthTest.java" = "" +"javax/management/remote/mandatory/passwordAuthenticator/RMIPasswdAuthTest.java" = "" +"javax/management/remote/mandatory/provider/ProviderTest.java" = "" +"javax/management/remote/mandatory/serverError/JMXServerErrorTest.java" = "" +"javax/management/remote/mandatory/socketFactories/RMISocketFactoriesTest.java" = "" +"javax/management/remote/mandatory/threads/ExecutorShutdownTest.java" = "" +"javax/management/remote/mandatory/threads/ExecutorTest.java" = "" +"javax/management/remote/mandatory/threads/NoServerTimeoutTest.java" = "" +"javax/management/remote/mandatory/util/MapNullValuesTest.java" = "" +"javax/management/security/AuthorizationTest.java" = "" +"javax/management/security/HashedPasswordFileTest.java" = "" +"javax/management/security/SecurityTest.java" = "" +"javax/naming/ldap/LdapName/NameTests.java" = "" +"javax/naming/ldap/LdapName/RdnMisc.java" = "" +"javax/naming/module/RunBasic.java" = "" +"javax/naming/spi/FactoryCacheTest.java" = "" +"javax/net/ssl/ALPN/SSLEngineAlpnTest.java" = "" +"javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java" = "" +"javax/net/ssl/DTLS/DTLSDataExchangeTest.java" = "" +"javax/net/ssl/DTLS/DTLSEnginesClosureTest.java" = "" +"javax/net/ssl/DTLS/DTLSHandshakeTest.java" = "" +"javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java" = "" +"javax/net/ssl/DTLS/DTLSIncorrectAppDataTest.java" = "" +"javax/net/ssl/DTLS/DTLSMFLNTest.java" = "" +"javax/net/ssl/DTLS/DTLSRehandshakeTest.java" = "" +"javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java" = "" +"javax/net/ssl/DTLS/DTLSSequenceNumberTest.java" = "" +"javax/net/ssl/DTLS/DTLSWontNegotiateV10.java" = "" +"javax/net/ssl/DTLS/WeakCipherSuite.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10IncorrectAppDataTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java" = "" +"javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java" = "" +"javax/net/ssl/Fix5070632.java" = "" +"javax/net/ssl/SSLEngine/Arrays.java" = "" +"javax/net/ssl/SSLEngine/ExtendedKeyEngine.java" = "" +"javax/net/ssl/SSLEngine/NoAuthClientAuth.java" = "" +"javax/net/ssl/SSLEngine/TestAllSuites.java" = "" +"javax/net/ssl/TLS/TLSDataExchangeTest.java" = "" +"javax/net/ssl/TLS/TLSEnginesClosureTest.java" = "" +"javax/net/ssl/TLS/TLSHandshakeTest.java" = "" +"javax/net/ssl/TLS/TLSMFLNTest.java" = "" +"javax/net/ssl/TLS/TLSRehandshakeTest.java" = "" +"javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java" = "" +"javax/net/ssl/TLS/TestJSSEClientDefaultProtocol.java" = "" "javax/net/ssl/TLSCommon/ConcurrentClientAccessTest.java" = "" +"javax/net/ssl/TLSCommon/TLSWithEdDSA.java" = "" "javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java" = "" -"javax/security/auth/login/Exceptions/NewExceptions.java" = "" -"javax/security/auth/login/LoginContext/SharedState.java" = "" +"javax/net/ssl/TLSv1/TLSDataExchangeTest.java" = "" +"javax/net/ssl/TLSv1/TLSEnginesClosureTest.java" = "" +"javax/net/ssl/TLSv1/TLSHandshakeTest.java" = "" +"javax/net/ssl/TLSv1/TLSMFLNTest.java" = "" +"javax/net/ssl/TLSv1/TLSRehandshakeTest.java" = "" +"javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java" = "" +"javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java" = "" +"javax/net/ssl/TLSv11/GenericBlockCipher.java" = "" +"javax/net/ssl/TLSv11/GenericStreamCipher.java" = "" +"javax/net/ssl/TLSv11/TLSDataExchangeTest.java" = "" +"javax/net/ssl/TLSv11/TLSEnginesClosureTest.java" = "" +"javax/net/ssl/TLSv11/TLSHandshakeTest.java" = "" +"javax/net/ssl/TLSv11/TLSMFLNTest.java" = "" +"javax/net/ssl/TLSv11/TLSRehandshakeTest.java" = "" +"javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java" = "" +"javax/net/ssl/TLSv12/TLSEnginesClosureTest.java" = "" +"javax/net/ssl/TLSv13/ClientHelloKeyShares.java" = "" +"javax/net/ssl/ciphersuites/DisabledAlgorithms.java" = "" +"javax/net/ssl/sanity/ciphersuites/CheckCipherSuites.java" = "" +"javax/net/ssl/sanity/ciphersuites/SystemPropCipherSuitesOrder.java" = "" +"javax/net/ssl/sanity/pluggability/CheckSockFacExport2.java" = "" +"javax/rmi/ssl/SSLSocketParametersTest.java" = "" +"javax/script/ScriptEngineOrder.sh" = "" +"javax/security/auth/Subject/CallAsWithScopedValue.java" = "" +"javax/security/auth/Subject/Serial.java" = "" +"javax/security/auth/Subject/SubjectNullTests.java" = "" +"javax/security/auth/SubjectDomainCombiner/Regression.java" = "" +"javax/security/auth/kerberos/KerberosTixDateTest.java" = "" +"javax/security/auth/login/LoginContext/LCTest.java" = "" +"javax/security/auth/login/LoginContext/ModuleSubject.java" = "" +"javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java" = "" +"javax/security/auth/login/modules/JaasModularClientTest.java" = "" +"javax/security/auth/login/modules/JaasModularDefaultHandlerTest.java" = "" +"javax/security/auth/x500/X500Principal/NameFormat.java" = "" +"javax/security/sasl/Sasl/DisabledMechanisms.java" = "" +"javax/security/sasl/Sasl/PassSysProps.java" = "" +"javax/smartcardio/HistoricalBytes.java" = "" +"javax/smartcardio/ResponseAPDUTest.java" = "" +"javax/smartcardio/Serialize.java" = "" +"javax/smartcardio/TerminalFactorySpiTest.java" = "" +"javax/smartcardio/TestCommandAPDU.java" = "" +"javax/xml/crypto/dsig/BadXPointer.java" = "" +"javax/xml/crypto/dsig/Basic.java" = "" +"javax/xml/crypto/dsig/GenerationTests.java" = "" "javax/xml/crypto/dsig/GetInstanceTests.java" = "" +"javax/xml/crypto/dsig/HereFunction.java" = "" +"javax/xml/crypto/dsig/PSS.java" = "" +"javax/xml/crypto/dsig/PSSSpec.java" = "" +"javax/xml/crypto/dsig/ResolveReferenceURIs.java" = "" +"javax/xml/crypto/dsig/SecureValidation.java" = "" +"javax/xml/crypto/dsig/SecureValidationSystemProperty.java" = "" "javax/xml/crypto/dsig/TransformService/NullParent.java" = "" -"javax/xml/crypto/dsig/TransformService/UnknownProvider.java" = "" -"javax/xml/crypto/dsig/XMLSignatureFactory/UnknownProvider.java" = "" -"javax/xml/crypto/dsig/keyinfo/KeyInfoFactory/UnknownProvider.java" = "" +"javax/xml/crypto/dsig/ValidationTests.java" = "" +"javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java" = "" +"javax/xml/jaxp/common/8035437/AbstractMethodErrorTest.java" = "" +"jdk/classfile/UtilTest.java" = "" "jdk/dynalink/BeanLinkerRecordsTest.java" = "" -"jdk/internal/loader/InterruptedClassLoad.java" = "" -"sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java" = "" -"sun/net/www/protocol/https/HttpsURLConnection/Identities.java" = "" -"sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java" = "" -"sun/security/jgss/spnego/MSOID.java" = "" -"sun/security/krb5/NullStringToKey.java" = "" -"sun/security/krb5/etype/UnsupportedKeyType.java" = "" +"jdk/dynalink/CallerSensitiveTest.java" = "" +"jdk/dynalink/LookupTest.java" = "" +"jdk/internal/agent/AgentCMETest.java" = "" +"jdk/internal/agent/AgentCheckTest.java" = "" +"jdk/internal/jimage/JImageOpenTest.java" = "" +"jdk/internal/jline/AbstractWindowsTerminalTest.java" = "" +"jdk/internal/jline/JLineConsoleProviderTest.java" = "" +"jdk/internal/jline/KeyConversionTest.java" = "" +"jdk/internal/jline/LazyJdkConsoleProvider.java" = "" +"jdk/internal/jline/OSUtilsTest.java" = "" +"jdk/internal/jline/RedirectedStdOut.java" = "" +"jdk/internal/jrtfs/Basic.java" = "" +"jdk/internal/loader/URLClassPath/JarCheckTest.java" = "" +"jdk/internal/math/ToDecimal/DoubleToDecimalTest.java" = "" +"jdk/internal/math/ToDecimal/FloatToDecimalTest.java" = "" +"jdk/internal/math/ToDecimal/MathUtilsTest.java" = "" +"jdk/internal/misc/TerminatingThreadLocal/TestTerminatingThreadLocal.java" = "" +"jdk/internal/misc/ThreadFlock/WithScopedValue.java" = "" +"jdk/internal/misc/VM/RuntimeArguments.java" = "" +"jdk/internal/ref/Cleaner/CleanableListTest.java" = "" +"jdk/internal/reflect/Reflection/GetCallerClassTest.java" = "" +"jdk/internal/reflect/constantPool/ConstantPoolTest.java" = "" +"jdk/internal/util/ReferencedKeyTest.java" = "" +"jdk/internal/vm/AnnotationEncodingDecoding/TestAnnotationEncodingDecoding.java" = "" +"jdk/internal/vm/Continuation/ClassUnloading.java" = "" +"jdk/internal/vm/Continuation/Fuzz.java" = "" +"jdk/internal/vm/Continuation/HumongousStack.java" = "" +"jdk/internal/vm/Continuation/LiveFramesDriver.java" = "" +"jdk/internal/vm/Continuation/Scoped.java" = "" +"jdk/internal/vm/TestTranslatedException.java" = "" +"jdk/management/VirtualThreadSchedulerMXBean/VirtualThreadSchedulerMXBeanTest.java" = "" +"jdk/modules/etc/DefaultModules.java" = "" +"jdk/modules/etc/JmodExcludedFiles.java" = "" +"jdk/modules/etc/UpgradeableModules.java" = "" +"jdk/modules/etc/VerifyModuleDelegation.java" = "" +"jdk/modules/incubator/DefaultImage.java" = "" +"jdk/modules/incubator/ImageModules.java" = "" +"jdk/modules/incubator/ServiceBinding.java" = "" +"jdk/modules/open/Basic.java" = "" +"jdk/modules/scenarios/automaticmodules/RunWithAutomaticModules.java" = "" +"jdk/modules/scenarios/container/ContainerTest.java" = "" +"jdk/modules/scenarios/overlappingpackages/OverlappingPackagesTest.java" = "" +"jdk/nio/zipfs/ReleaseDeflater.java" = "" +"jdk/security/logging/RecursiveEventHelper.java" = "" +"jdk/security/logging/TestSecurityPropertyModificationLog.java" = "" +"jdk/security/logging/TestTLSHandshakeLog.java" = "" +"jdk/security/logging/TestX509CertificateLog.java" = "" +"jdk/security/logging/TestX509ValidationLog.java" = "" +"sun/management/HotspotClassLoadingMBean/GetClassInitializationTime.java" = "" +"sun/management/HotspotClassLoadingMBean/GetClassLoadingTime.java" = "" +"sun/management/HotspotClassLoadingMBean/GetInitializedClassCount.java" = "" +"sun/management/HotspotClassLoadingMBean/GetLoadedClassSize.java" = "" +"sun/management/HotspotClassLoadingMBean/GetMethodDataSize.java" = "" +"sun/management/HotspotClassLoadingMBean/GetUnloadedClassSize.java" = "" +"sun/management/HotspotRuntimeMBean/GetSafepointCount.java" = "" +"sun/management/HotspotRuntimeMBean/GetSafepointSyncTime.java" = "" +"sun/management/HotspotRuntimeMBean/GetTotalSafepointTime.java" = "" +"sun/management/HotspotThreadMBean/GetInternalThreads.java" = "" +"sun/management/LoggingTest/LoggingWithJULTest.java" = "" +"sun/management/LoggingTest/LoggingWithLoggerFinderTest.java" = "" +"sun/management/PlatformMBeanProviderConstructorCheck.java" = "" +"sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java" = "" +"sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java" = "" +"sun/management/jmxremote/bootstrap/JvmstatCountersTest.java" = "" +"sun/management/jmxremote/bootstrap/LocalManagementTest.java" = "" +"sun/management/jmxremote/bootstrap/RmiBootstrapTest.java" = "" +"sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java" = "" +"sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.java" = "" +"sun/management/jmxremote/startstop/JMXStartStopTest.java" = "" +"sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java" = "" +"sun/management/jmxremote/startstop/JMXStatusTest.java" = "" +"sun/misc/SunMiscSignalTest.java" = "" +"sun/misc/UnsafeMemoryAccessWarnings.java" = "" +"sun/net/InetAddress/nameservice/simple/DefaultCaching.java" = "" +"sun/net/www/http/HttpClient/KeepAliveTest.java" = "" +"sun/net/www/http/HttpClient/RetryPost.java" = "" +"sun/net/www/http/HttpURLConnection/DigestAuth.java" = "" +"sun/net/www/http/KeepAliveCache/B8291637.java" = "" +"sun/net/www/http/KeepAliveCache/KeepAliveProperty.java" = "" +"sun/net/www/http/KeepAliveStreamCleaner/KeepAliveStreamCleanerTestDriver.java" = "" +"sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java" = "" +"sun/net/www/protocol/file/NonLocalFtpFallback.java" = "" +"sun/net/www/protocol/http/CloseOptionHeader.java" = "" +"sun/net/www/protocol/http/DigestTest.java" = "" +"sun/net/www/protocol/http/NoNTLM.java" = "" +"sun/net/www/protocol/http/UserAgent.java" = "" +"sun/net/www/protocol/https/HttpsClient/ProxyAuthTest.java" = "" +"sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.java" = "" +"sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java" = "" +"sun/net/www/protocol/jrt/Basic.java" = "" +"sun/net/www/protocol/jrt/OtherResourcesTest.java" = "" +"sun/nio/ch/TestMaxCachedBufferSize.java" = "" +"sun/nio/cs/TestGB18030.java" = "" +"sun/nio/cs/mapping/CoderTest.java" = "" +"sun/reflect/ReflectionFactory/ReflectionFactoryTest.java" = "" +"sun/rmi/log/ReliableLog/LogAlignmentTest.java" = "" +"sun/rmi/runtime/Log/4504153/Test4504153.java" = "" +"sun/rmi/runtime/Log/6409194/NoConsoleOutput.java" = "" +"sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java" = "" +"sun/rmi/runtime/Log/checkLogging/CheckLogging.java" = "" +"sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java" = "" +"sun/rmi/transport/tcp/DeadCachedConnection.java" = "" +"sun/security/ec/TestEC.java" = "" +"sun/security/jgss/spnego/NegTokenTargFields.java" = "" +"sun/security/jgss/spnego/NoSpnegoAsDefMech.java" = "" +"sun/security/jgss/spnego/NotPreferredMech.java" = "" +"sun/security/krb5/IPv6.java" = "" +"sun/security/krb5/Krb5NameEquals.java" = "" +"sun/security/krb5/RFC396xTest.java" = "" +"sun/security/krb5/auto/CaseSensitive.java" = "" +"sun/security/krb5/auto/Cleaners.java" = "" +"sun/security/krb5/auto/DiffSaltParams.java" = "" +"sun/security/krb5/auto/HttpsCB.java" = "" +"sun/security/krb5/auto/KdcPolicy.java" = "" +"sun/security/krb5/auto/ModuleName.java" = "" +"sun/security/krb5/auto/NonAscii.java" = "" +"sun/security/krb5/auto/NoneReplayCacheTest.java" = "" +"sun/security/krb5/auto/RealmSpecificValues.java" = "" +"sun/security/krb5/auto/ReferralsTest.java" = "" +"sun/security/krb5/auto/ReplayCachePrecise.java" = "" +"sun/security/krb5/auto/ReplayCacheTestProc.java" = "" +"sun/security/krb5/auto/ReplayCacheTestProcWithMD5.java" = "" +"sun/security/krb5/auto/S4U2selfNotF.java" = "" +"sun/security/krb5/ccache/EmptyRealmCC.java" = "" +"sun/security/krb5/config/DNS.java" = "" +"sun/security/krb5/config/DefUdpLimit.java" = "" +"sun/security/krb5/config/YesNo.java" = "" +"sun/security/krb5/ktab/FileKeyTab.java" = "" +"sun/security/krb5/ktab/KeyTabIndex.java" = "" +"sun/security/lib/cacerts/VerifyCACerts.java" = "" +"sun/security/pkcs11/Provider/Absolute.java" = "" +"sun/security/pkcs11/Provider/MultipleLogins.sh" = "" +"sun/security/pkcs11/Provider/RequiredMechCheck.java" = "" +"sun/security/pkcs12/ParamsPreferences.java" = "" +"sun/security/provider/DSA/TestLegacyDSAKeyPairGenerator.java" = "" +"sun/security/provider/FileInputStreamPool/FileInputStreamPoolTest.java" = "" +"sun/security/provider/NamedEdDSA.java" = "" +"sun/security/provider/NamedKeyFactoryTest.java" = "" +"sun/security/provider/SecureRandom/AbstractDrbg/SpecTest.java" = "" +"sun/security/provider/SecureRandom/CommonSeeder.java" = "" "sun/security/provider/SecureRandom/StrongSeedReader.java" = "" -"sun/security/rsa/TestCACerts.java" = "" +"sun/security/provider/certpath/OCSP/OCSPNoContentLength.java" = "" +"sun/security/provider/certpath/OCSP/OCSPReadTimeoutDefault.java" = "" +"sun/security/provider/certpath/OCSP/OCSPSingleExtensions.java" = "" +"sun/security/rsa/SignatureTest.java" = "" +"sun/security/ssl/CipherSuite/RestrictNamedGroup.java" = "" +"sun/security/ssl/ClientHandshaker/LengthCheckTest.java" = "" "sun/security/ssl/ClientHandshaker/RSAExport.java" = "" +"sun/security/ssl/DHKeyExchange/DHEKeySizing.java" = "" +"sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java" = "" +"sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java" = "" +"sun/security/ssl/HandshakeHash/HandshakeHashCloneExhaustion.java" = "" +"sun/security/ssl/SSLCipher/ReadOnlyEngine.java" = "" +"sun/security/ssl/SSLContextImpl/CustomizedCipherSuites.java" = "" +"sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java" = "" +"sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java" = "" +"sun/security/ssl/SSLContextImpl/CustomizedDefaultProtocols.java" = "" +"sun/security/ssl/SSLContextImpl/CustomizedServerDefaultProtocols.java" = "" "sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java" = "" "sun/security/ssl/SSLContextImpl/DefaultEnabledProtocols.java" = "" +"sun/security/ssl/SSLContextImpl/IllegalProtocolProperty.java" = "" +"sun/security/ssl/SSLContextImpl/MD2InTrustAnchor.java" = "" +"sun/security/ssl/SSLContextImpl/NoOldVersionContext.java" = "" +"sun/security/ssl/SSLContextImpl/SSLContextVersion.java" = "" +"sun/security/ssl/SSLContextImpl/TrustTrustedCert.java" = "" +"sun/security/ssl/SSLEngineImpl/EmptyExtensionData.java" = "" +"sun/security/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java" = "" +"sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java" = "" +"sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java" = "" +"sun/security/ssl/SSLLogger/LoggingFormatConsistency.java" = "" +"sun/security/ssl/SSLSessionImpl/MultiNSTNoSessionCreation.java" = "" +"sun/security/ssl/SSLSocketImpl/DisableExtensions.java" = "" +"sun/security/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java" = "" +"sun/security/ssl/SSLSocketImpl/NoImpactServerRenego.java" = "" +"sun/security/ssl/SSLSocketImpl/NonAutoClose.java" = "" +"sun/security/ssl/SSLSocketImpl/RejectClientRenego.java" = "" +"sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java" = "" +"sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java" = "" +"sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java" = "" +"sun/security/ssl/SSLSocketImpl/SetClientMode.java" = "" +"sun/security/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java" = "" +"sun/security/ssl/SignatureScheme/CustomizedClientSchemes.java" = "" +"sun/security/ssl/SignatureScheme/CustomizedServerSchemes.java" = "" +"sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS12.java" = "" +"sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS13.java" = "" +"sun/security/ssl/SignatureScheme/SigSchemePropOrdering.java" = "" +"sun/security/ssl/Stapling/StatusResponseManager.java" = "" +"sun/security/ssl/X509TrustManagerImpl/distrust/Camerfirma.java" = "" +"sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java" = "" +"sun/security/ssl/X509TrustManagerImpl/distrust/Symantec.java" = "" +"sun/security/tools/jarsigner/AltProvider.java" = "" +"sun/security/tools/jarsigner/CheckAlgParams.java" = "" +"sun/security/tools/jarsigner/CheckSignerCertChain.java" = "" +"sun/security/tools/jarsigner/ConciseJarsigner.java" = "" +"sun/security/tools/jarsigner/DisableCurveTest.java" = "" +"sun/security/tools/jarsigner/OldSig.java" = "" +"sun/security/tools/jarsigner/OnlyManifest.java" = "" +"sun/security/tools/jarsigner/PosixPermissionsTest.java" = "" +"sun/security/tools/jarsigner/RestrictedAlgo.java" = "" +"sun/security/tools/jarsigner/TimestampCheck.java" = "" +"sun/security/tools/jarsigner/TsacertOptionTest.java" = "" +"sun/security/tools/jarsigner/VerifyHSSSignedJar.java" = "" +"sun/security/tools/keytool/CacertsOption.java" = "" +"sun/security/tools/keytool/ImportToPwordlessPK12.java" = "" +"sun/security/tools/keytool/PKCS12Passwd.java" = "" +"sun/security/tools/keytool/WeakAlg.java" = "" +"sun/security/tools/keytool/WeakSecretKeyTest.java" = "" +"sun/security/tools/keytool/fakecacerts/MyOwnCacerts.java" = "" +"sun/security/tools/keytool/fakecacerts/TrustedCRL.java" = "" +"sun/security/tools/keytool/fakecacerts/TrustedCert.java" = "" +"sun/security/tools/keytool/fakegen/DefaultSignatureAlgorithm.java" = "" +"sun/security/tools/keytool/fakegen/PSS.java" = "" +"sun/security/util/Debug/DebugOptions.java" = "" +"sun/security/util/HostnameChecker/NullHostnameCheck.java" = "" +"sun/security/util/Pem/PemEncoding.java" = "" +"sun/security/util/Resources/Format.java" = "" +"sun/security/validator/EndEntityExtensionCheck.java" = "" +"sun/security/x509/URICertStore/AIACertTimeout.java" = "" +"sun/security/x509/URICertStore/CRLReadTimeout.java" = "" +"sun/security/x509/URICertStore/ExtensionsWithLDAP.java" = "" +"sun/security/x509/X500Name/PrintX500PrincipalInDebugModeWithAvaOption.java" = "" +"sun/text/IntHashtable/patch-src/java.base/java/text/Bug4170614Test.java" = "" +"sun/text/resources/Collator/Bug4248694.java" = "" +"sun/text/resources/Collator/Bug4804273.java" = "" +"sun/text/resources/Collator/Bug6755060.java" = "" +"sun/text/resources/Collator/SwedishTest.java" = "" +"sun/text/resources/Format/Bug4395196.java" = "" +"sun/text/resources/Format/Bug4442855.java" = "" +"sun/text/resources/Format/Bug4621320.java" = "" +"sun/text/resources/Format/Bug4651568.java" = "" +"sun/text/resources/Format/Bug4762201.java" = "" +"sun/text/resources/Format/Bug4807540.java" = "" +"sun/text/resources/Format/Bug4810032.java" = "" +"sun/text/resources/Format/Bug5096553.java" = "" +"sun/text/resources/Format/Bug8037343.java" = "" +"sun/text/resources/Format/Bug8074791.java" = "" +"sun/text/resources/LocaleDataTest.java" = "" +"sun/util/logging/SourceClassName.java" = "" +"sun/util/resources/Locale/Bug4429024.java" = "" +"sun/util/resources/Locale/Bug4965260.java" = "" +"sun/util/resources/Locale/Bug6275682.java" = "" "sun/util/resources/TimeZone/Bug4848242.java" = "" -"tools/jlink/CheckExecutable.java" = "" -"tools/jlink/ReleaseImplementorTest.java" = "" +"sun/util/resources/TimeZone/Bug6271396.java" = "" +"sun/util/resources/TimeZone/Bug6317929.java" = "" +"sun/util/resources/TimeZone/Bug6377794.java" = "" +"sun/util/resources/TimeZone/Bug6442006.java" = "" +"sun/util/resources/cldr/Bug8134250.java" = "" +"sun/util/resources/cldr/Bug8204603.java" = "" +"sun/util/resources/cldr/LikelySubtagLocalesTest.java" = "" +"sun/util/resources/cldr/NorwegianFallbackTest.java" = "" +"sun/util/resources/cldr/TimeZoneNamesTest.java" = "" +"tools/jar/JarEntryTime.java" = "" +"tools/jar/modularJar/Basic.java" = "" +"tools/jar/multiRelease/RuntimeTest.java" = "" +"tools/jar/multiRelease/whitebox/Driver.java" = "" +"tools/jimage/JImageBasicsTest.java" = "" +"tools/jimage/JImageExtractTest.java" = "" +"tools/jimage/JImageInfoTest.java" = "" +"tools/jimage/JImageListTest.java" = "" +"tools/jimage/JImageNonAsciiNameTest.java" = "" +"tools/jimage/JImageTest.java" = "" +"tools/jimage/JImageVerifyTest.java" = "" +"tools/jlink/ClassFileInMetaInfo.java" = "" +"tools/jlink/DefaultProviderTest.java" = "" +"tools/jlink/ExplodedModuleNameTest.java" = "" +"tools/jlink/ImageFileCreatorTest.java" = "" +"tools/jlink/ImageFilePoolTest.java" = "" +"tools/jlink/IntegrationTest.java" = "" +"tools/jlink/JLink100Modules.java" = "" +"tools/jlink/JLink20000Packages.java" = "" +"tools/jlink/JLink2Test.java" = "" +"tools/jlink/JLinkDedupTestBatchSizeOne.java" = "" +"tools/jlink/JLinkEndianTest.java" = "" +"tools/jlink/JLinkHelpCapabilityTest.java" = "" +"tools/jlink/JLinkNegativeTest.java" = "" +"tools/jlink/JLinkOptionsTest.java" = "" +"tools/jlink/JLinkPluginsTest.java" = "" +"tools/jlink/JLinkReproducible2Test.java" = "" +"tools/jlink/JLinkReproducible3Test.java" = "" +"tools/jlink/JLinkSigningTest.java" = "" +"tools/jlink/JLinkTest.java" = "" +"tools/jlink/JLinkToolProviderTest.java" = "" +"tools/jlink/ModuleNamesOrderTest.java" = "" +"tools/jlink/NativeTest.java" = "" +"tools/jlink/ResourceDuplicateCheckTest.java" = "" +"tools/jlink/ResourcePoolTest.java" = "" +"tools/jlink/SnippetsTest.java" = "" +"tools/jlink/TaskHelperTest.java" = "" +"tools/jlink/basic/AllModulePath.java" = "" +"tools/jlink/basic/BasicTest.java" = "" +"tools/jlink/bindservices/BindServices.java" = "" +"tools/jlink/bindservices/SuggestProviders.java" = "" +"tools/jlink/multireleasejar/JLinkMRJavaBaseVersionTest.java" = "" +"tools/jlink/multireleasejar/JLinkMultiReleaseJarTest.java" = "" +"tools/jlink/plugins/AddOptionsPluginTest.java" = "" +"tools/jlink/plugins/CDSPluginTest.java" = "" +"tools/jlink/plugins/CompressorPluginTest.java" = "" +"tools/jlink/plugins/DefaultStripDebugPluginTest.java" = "" +"tools/jlink/plugins/ExcludeFilesPluginTest.java" = "" +"tools/jlink/plugins/ExcludeJmodSectionPluginTest.java" = "" +"tools/jlink/plugins/ExcludeModuleInfoTest.java" = "" +"tools/jlink/plugins/ExcludePluginTest.java" = "" +"tools/jlink/plugins/ExcludeVMPluginTest.java" = "" +"tools/jlink/plugins/GenerateJLIClassesPluginTest.java" = "" +"tools/jlink/plugins/IncludeLocalesPluginTest.java" = "" +"tools/jlink/plugins/LastSorterTest.java" = "" +"tools/jlink/plugins/LegalFilePluginTest.java" = "" +"tools/jlink/plugins/OrderResourcesPluginTest.java" = "" +"tools/jlink/plugins/PluginsNegativeTest.java" = "" +"tools/jlink/plugins/PrevisitorTest.java" = "" +"tools/jlink/plugins/ResourceFilterTest.java" = "" +"tools/jlink/plugins/StringSharingPluginTest.java" = "" +"tools/jlink/plugins/StripJavaDebugAttributesPluginTest.java" = "" +"tools/jlink/plugins/SystemModuleDescriptors/CompiledVersionTest.java" = "" +"tools/jlink/plugins/SystemModuleDescriptors/ModuleMainClassTest.java" = "" +"tools/jlink/plugins/SystemModuleDescriptors/SystemModulesTest.java" = "" +"tools/jlink/plugins/SystemModuleDescriptors/UserModuleTest.java" = "" +"tools/jlink/plugins/VendorInfoPluginsTest.java" = "" +"tools/jlink/runtimeImage/AddOptionsTest.java" = "" +"tools/jlink/runtimeImage/BasicJlinkMissingJavaBase.java" = "" +"tools/jlink/runtimeImage/BasicJlinkTest.java" = "" +"tools/jlink/runtimeImage/CustomModuleJlinkTest.java" = "" +"tools/jlink/runtimeImage/GenerateJLIClassesTest.java" = "" +"tools/jlink/runtimeImage/JavaSEReproducibleTest.java" = "" +"tools/jlink/runtimeImage/JimageDiffGeneratorTest.java" = "" +"tools/jlink/runtimeImage/KeepPackagedModulesFailTest.java" = "" +"tools/jlink/runtimeImage/ModifiedFilesExitTest.java" = "" +"tools/jlink/runtimeImage/ModifiedFilesWarningTest.java" = "" +"tools/jlink/runtimeImage/MultiHopTest.java" = "" +"tools/jlink/runtimeImage/PackagedModulesVsRuntimeImageLinkTest.java" = "" +"tools/jlink/runtimeImage/PatchedJDKModuleJlinkTest.java" = "" +"tools/jlink/runtimeImage/SystemModulesTest.java" = "" +"tools/jlink/runtimeImage/SystemModulesTest2.java" = "" +"tools/jlink/runtimeImage/UpgradeableFileCacertsTest.java" = "" +"tools/jmod/JmodNegativeTest.java" = "" +"tools/jmod/JmodTest.java" = "" +"tools/jmod/hashes/HashesOrderTest.java" = "" +"tools/jmod/hashes/HashesTest.java" = "" +"tools/launcher/ArgFileSyntax.java" = "" +"tools/launcher/ArgsEnvVar.java" = "" +"tools/launcher/ArgsFileTest.java" = "" +"tools/launcher/Arrrghs.java" = "" +"tools/launcher/ChangeDataModel.java" = "" +"tools/launcher/DiacriticTest.java" = "" +"tools/launcher/ExecutionEnvironment.java" = "" +"tools/launcher/FXLauncherTest.java" = "" +"tools/launcher/HelpFlagsTest.java" = "" +"tools/launcher/InfoStreams.java" = "" "tools/launcher/InstanceMainTest.java" = "" +"tools/launcher/LauncherExceptionTest.java" = "" +"tools/launcher/MacOSAppNamePropertyTest.java" = "" +"tools/launcher/MainClassAttributeTest.java" = "" +"tools/launcher/MainClassCantBeLoadedTest.java" = "" +"tools/launcher/MiscTests.java" = "" +"tools/launcher/Settings.java" = "" +"tools/launcher/SourceMode.java" = "" +"tools/launcher/TestSpecialArgs.java" = "" +"tools/launcher/TestXcheckJNIWarnings.java" = "" +"tools/launcher/ToolsOpts.java" = "" +"tools/launcher/VersionCheck.java" = "" +"tools/launcher/modules/addexports/AddExportsTest.java" = "" +"tools/launcher/modules/addexports/AddExportsTestWarningError.java" = "" +"tools/launcher/modules/addexports/manifest/AddExportsAndOpensInManifest.java" = "" +"tools/launcher/modules/addmods/AddModsTest.java" = "" +"tools/launcher/modules/addreads/AddReadsTest.java" = "" +"tools/launcher/modules/addreads/AddReadsTestWarningError.java" = "" +"tools/launcher/modules/basic/BasicTest.java" = "" +"tools/launcher/modules/basic/InitErrors.java" = "" +"tools/launcher/modules/basic/LauncherErrors.java" = "" +"tools/launcher/modules/classpath/JavaClassPathTest.java" = "" +"tools/launcher/modules/describe/DescribeModuleTest.java" = "" +"tools/launcher/modules/dryrun/DryRunTest.java" = "" +"tools/launcher/modules/illegalaccess/IllegalAccessTest.java" = "" +"tools/launcher/modules/limitmods/LimitModsTest.java" = "" +"tools/launcher/modules/listmods/ListModsTest.java" = "" +"tools/launcher/modules/patch/automatic/PatchTest.java" = "" +"tools/launcher/modules/patch/basic/PatchTest.java" = "" +"tools/launcher/modules/patch/basic/PatchTestWarningError.java" = "" +"tools/launcher/modules/patch/systemmodules/PatchSystemModules.java" = "" +"tools/launcher/modules/showmoduleresolution/ShowModuleResolutionTest.java" = "" +"tools/launcher/modules/validate/ValidateModulesTest.java" = "" +"tools/sincechecker/modules/java.base/JavaBaseCheckSince.java" = "" +"tools/sincechecker/modules/java.compiler/JavaCompilerCheckSince.java" = "" +"tools/sincechecker/modules/java.instrument/JavaInstrumentCheckSince.java" = "" +"tools/sincechecker/modules/java.management.rmi/JavaManagementRmiCheckSince.java" = "" +"tools/sincechecker/modules/java.management/JavaManagementCheckSince.java" = "" +"tools/sincechecker/modules/java.net.http/JavaNetHttpCheckSince.java" = "" +"tools/sincechecker/modules/java.scripting/JavaScriptingCheckSince.java" = "" +"tools/sincechecker/modules/java.security.jgss/JavaSecurityJgssCheckSince.java" = "" +"tools/sincechecker/modules/java.security.sasl/JavaSecuritySaslCheckSince.java" = "" +"tools/sincechecker/modules/java.smartcardio/JavaSmartcardioCheckSince.java" = "" +"tools/sincechecker/modules/java.xml.crypto/JavaXmlCryptoCheckSince.java" = "" +"tools/sincechecker/modules/jdk.attach/JdkAttachCheckSince.java" = "" +"tools/sincechecker/modules/jdk.charsets/JdkCharsetsCheckSince.java" = "" +"tools/sincechecker/modules/jdk.compiler/JdkCompilerCheckSince.java" = "" +"tools/sincechecker/modules/jdk.crypto.cryptoki/JdkCryptoCryptokiCheckSince.java" = "" +"tools/sincechecker/modules/jdk.dynalink/JdkDynalinkCheckSince.java" = "" +"tools/sincechecker/modules/jdk.httpserver/JdkHttpServerCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jartool/JdkJartoolCheckSince.java" = "" +"tools/sincechecker/modules/jdk.javadoc/JdkJavadocCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jcmd/JdkJcmdCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jconsole/JdkJconsoleCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jdeps/JdkJdepsCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jdi/JdkJdiCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jdwp.agent/JdkJdwpAgentCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jlink/JdkJlinkCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jshell/JdkJshellCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jsobject/JdkJsobjectCheckSince.java" = "" +"tools/sincechecker/modules/jdk.jstatd/JdkJstatdCheckSince.java" = "" +"tools/sincechecker/modules/jdk.localedata/JdkLocaledataCheckSince.java" = "" +"tools/sincechecker/modules/jdk.management.agent/JdkManagementAgentCheckSince.java" = "" +"tools/sincechecker/modules/jdk.management/JdkManagementCheckSince.java" = "" +"tools/sincechecker/modules/jdk.net/JdkNetCheckSince.java" = "" +"tools/sincechecker/modules/jdk.sctp/JdkSctpCheckSince.java" = "" +"tools/sincechecker/modules/jdk.security.auth/JavaScriptingCheckSince.java" = "" +"tools/sincechecker/modules/jdk.security.jgss/JavaScriptingCheckSince.java" = "" diff --git a/expectations/jdk-jtreg.reference.json b/expectations/jdk-jtreg.reference.linux-x64.json similarity index 100% rename from expectations/jdk-jtreg.reference.json rename to expectations/jdk-jtreg.reference.linux-x64.json diff --git a/harness/src/adapters/jdk-jtreg.test.ts b/harness/src/adapters/jdk-jtreg.test.ts index 2c88200..de6c47c 100644 --- a/harness/src/adapters/jdk-jtreg.test.ts +++ b/harness/src/adapters/jdk-jtreg.test.ts @@ -4,7 +4,8 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { PROTOCOL, - REFERENCE_BASELINE, + recordReferenceBaseline, + referenceBaselineName, ROOT, baselineResults, buildReferenceBaseline, @@ -22,7 +23,18 @@ import { markdown, parseJtr, portableReason, - propertiesReason, + portableRoot, + describe, + variantsOf, + jtrPath, + combine, + variantResult, + parseSummary, + effectiveExecution, + excludedReason, + JTREG_OPTIONS, + KEYWORD_FILTER, + REQUIRES_PROPERTIES, runSuiteOnRuntime, runtimeProgress, summary, @@ -83,48 +95,187 @@ test("discovery parses test descriptions without mistaking ordinary javadoc for expect( portableReason("java/lang/Example.java", source + "\n/**\n * @throws Exception reason\n */"), ).toBeNull(); + // jtreg evaluates its own directives; only what can never produce a result here is withheld. for (const tag of [ "requires vm.gc.G1", "library /test/lib", "modules java.base/jdk.internal.misc", - "ignore broken", "build Helper", "run main -XX:+WhiteBoxAPI Example", "run testng Example", - "test id=second", + "run junit Example", + "run driver Example", + "key randomness intermittent", + "enablePreview", + "compile Helper.java", ]) { - expect( - portableReason("java/lang/Example.java", `/* @test\n * @${tag}\n */\n${main}`), - ).not.toBeNull(); + expect(portableReason("java/lang/Example.java", `/* @test\n * @${tag}\n */\n${main}`)).toBeNull(); } - expect(propertiesReason("# comment\nallowSmartActionArgs=true\n")).toBeNull(); - expect(propertiesReason("modules=java.desktop\n")).not.toBeNull(); - expect( - portableReason("java/lang/Example.java", `/* @test\n @library /test/lib\n */\n${main}`), - ).toBe("Unsupported @library directive"); + expect(portableReason("java/lang/Example.java", `/* @test\n * @ignore 8000000 broken\n */\n${main}`)).toBe( + "Ignored upstream (@ignore)", + ); + for (const key of ["headful", "printer", "sound", "multimon", "i18n headful"]) { + expect(portableReason("java/lang/Example.java", `/* @test\n * @key ${key}\n */\n${main}`)).toBe( + "Requires a display, printer, or audio device (@key)", + ); + } + expect(portableReason("java/lang/Example.java", `/* @test\n * @run main/manual Example\n */\n${main}`)).toBe( + "Manual test action", + ); + expect(portableReason("java/lang/Example.java", `/* @test\n * @run main/othervm/manual=yesno Example\n */\n${main}`)).toBe( + "Manual test action", + ); + expect(portableReason("java/lang/Example.java", `/* @test\n * @run applet Example.html\n */\n${main}`)).toBe( + "Applet test action", + ); + expect(portableReason("java/lang/Example.html", "")).toBe("Unsupported test file type"); + expect(portableReason("java/lang/Example.jasm", "// @test")).toBe("Unsupported test file type"); + expect(portableReason("java/lang/Script.sh", "# @test\n# @run shell Script.sh\n")).toBeNull(); expect(hasTest(`/*\n @test\n */`)).toBe(true); + // Continued tag values belong to the tag above them. expect( - portableReason( - "java/lang/Example.java", - `/* @test\n * @run main Example\n * extraArgument\n */\n${main}`, - ), - ).not.toBeNull(); + describe("java/lang/Example.java", `/* @test\n * @run main Example\n * extraArgument\n */\n${main}`)[0]!.tags, + ).toContainEqual({ name: "run", value: "main Example extraArgument" }); +}); + +test("a file's @test variants are measured together and map to jtreg's per-variant results", () => { + const variants = `/* @test id=one\n * @run main Example one\n */\n/* @test id=two\n * @run main/othervm -ea Example two\n */\n${main}`; + expect(describe("java/lang/Example.java", variants).map((d) => d.id)).toEqual(["one", "two"]); + expect(variantsOf("java/lang/Example.java", variants)).toEqual(["one", "two"]); + expect(variantsOf("java/lang/Example.java", source)).toEqual([""]); + // A lone description keeps no id in jtreg's result names, even when it declares one. + expect(variantsOf("java/lang/Example.java", `/* @test id=only\n * @run main Example\n */\n${main}`)).toEqual([""]); + expect(portableReason("java/lang/Example.java", variants)).toBeNull(); + // Unnamed descriptions in a multi-description file take jtreg's positional ids. + const unnamed = `/* @test\n * @run main Example\n */\n/* @test id=named\n * @run main Example\n */\n/* @test\n * @run main Example\n */\n${main}`; + expect(variantsOf("java/lang/Example.java", unnamed)).toEqual(["id0", "named", "id2"]); + expect(portableReason("java/lang/Example.java", unnamed)).toBeNull(); + expect( + portableReason("java/lang/Example.java", `/* @test id=x\n * @run main Example\n */\n/* @test id=x\n * @run main Example\n */\n${main}`), + ).toBe("Duplicate test variant ids"); + expect(describe("java/lang/Script.sh", "# @test id=a\n# @run shell Script.sh\n\n# @test id=b\n# @run shell Script.sh b\n").map((d) => d.id)).toEqual(["a", "b"]); + expect(jtrPath("java/lang/Example.java", "")).toBe("java/lang/Example.jtr"); + expect(jtrPath("java/lang/Example.java", "two")).toBe("java/lang/Example_two.jtr"); + expect(jtrPath("java/lang/Script.sh", "")).toBe("java/lang/Script.jtr"); + const pass: Result = { status: "pass", detail: "Passed. Execution successful" }; + const fail: Result = { status: "fail", detail: "Failed. main threw exception" }; + expect(combine([{ variant: "one", result: pass }, { variant: "two", result: pass }])).toEqual(pass); + expect(combine([{ variant: "one", result: pass }, { variant: "two", result: fail }])).toEqual({ + status: "fail", + detail: "#two: Failed. main threw exception", + }); + expect(combine([{ variant: "", result: fail }])).toEqual(fail); + // The worst variant decides: a missing result outranks a failure, a timeout outranks an error. + expect( + combine([ + { variant: "a", result: fail }, + { variant: "b", result: { status: "blocked", detail: "No jtreg result; see harness.log" } }, + ]).status, + ).toBe("blocked"); + expect( + combine([ + { variant: "a", result: { status: "error", detail: "Error. x" } }, + { variant: "b", result: { status: "timeout", detail: "Error. Program timed out" } }, + ]).status, + ).toBe("timeout"); +}); + +test("filtered tests are read from jtreg's full summary as skips, never as missing results", () => { + const summaryText = + "java/lang/A.java Passed. Execution successful\njava/lang/B.java#two Not run.\njava/lang/C.java Not run.\n"; + const statuses = parseSummary(summaryText); + expect(statuses.get("java/lang/B.java#two")).toBe("Not run."); + expect(variantResult(jtr("Passed. Execution successful"), "Passed. Execution successful").status).toBe("pass"); + expect(variantResult(undefined, "Not run.")).toEqual({ + status: "skipped", + detail: "Not run. (filtered by keywords, @requires, or @ignore)", + }); + expect(variantResult(undefined, undefined).status).toBe("blocked"); + // A reference "Not run" is a skip (unscored); a Bali "Not run" under a passing reference is a failure. + const filtered = report(["skipped"]); + expect(flatten(filtered)[0]!.status).toBe("fail"); + filtered.tests[0]!.reference = { status: "skipped", detail: "Not run." }; + expect(flatten(filtered)[0]!.status).toBe("skip"); + expect(JTREG_OPTIONS).toContain("-report:all"); + expect(JTREG_OPTIONS).toContain("-ignore:quiet"); + expect(JTREG_OPTIONS).toContain("-othervm"); + expect(KEYWORD_FILTER).toBe("!headful&!printer&!sound&!multimon"); }); -test("inventory retains unsupported tests, excludes support files, and respects inherited settings", async () => { +test("the portable root keeps upstream keywords and directory policies and replaces the HotSpot probes", () => { + const upstream = + "# comment\nkeys=headful sound printer multimon \\\n i18n intermittent randomness cgroups\n" + + "othervm.dirs=java/awt java/beans\nexclusiveAccess.dirs=java/math/BigInteger/largeMemory \\\njava/rmi/Naming\n" + + "groups=TEST.groups\nrequires.extraPropDefns = ../jtreg-ext/requires/VMProps.java\n" + + "requires.extraPropDefns.bootlibs = ../lib/jdk/test/whitebox\nrequires.properties= \\\n sun.arch.data.model \\\n vm.flagless\n" + + "requiredVersion=7.5.1+1\nexternal.lib.roots = ../../\nuseNewOptions=true\n"; + const root = portableRoot(upstream); + expect(root.startsWith(ROOT)).toBe(true); + expect(root).toContain("keys=headful sound printer multimon i18n intermittent randomness cgroups\n"); + expect(root).toContain("othervm.dirs=java/awt java/beans\n"); + expect(root).toContain("exclusiveAccess.dirs=java/math/BigInteger/largeMemory java/rmi/Naming\n"); + expect(root).toContain("groups=TEST.groups\n"); + expect(root).not.toContain("whitebox"); + expect(root).not.toContain("jtreg-ext"); + expect(root.match(/^requires\.extraPropDefns=/gm)).toHaveLength(1); + expect(root).toContain("requires.extraPropDefns=../portable/requires/VMProps.java\n"); + expect(root).toContain("external.lib.roots=../../\n"); + for (const property of ["vm.flagless", "vm.gc.G1", "vm.hasJFR", "jdk.foreign.linker", "release.implementor"]) + expect(REQUIRES_PROPERTIES).toContain(property); + expect(portableRoot("")).toBe(ROOT); +}); + +test("manifest exclusions and --include scoping act on the inventory by path", () => { + const exclusions = [{ glob: "java/awt/**", reason: "desktop APIs are out of scope" }]; + expect(excludedReason("java/awt/Frame/Test.java", exclusions)).toBe("Excluded by manifest: desktop APIs are out of scope"); + expect(excludedReason("java/lang/Test.java", exclusions)).toBeNull(); + for (const exclusion of manifest.exclude) { + expect(exclusion.glob).toMatch(/^[\w/.-]+\*\*$/); + expect(exclusion.reason.length).toBeGreaterThan(10); + } + expect(effectiveExecution(manifest as Manifest, {}, 1)).toEqual(manifest.execution); + expect(effectiveExecution(manifest as Manifest, { BALI_JTREG_CONCURRENCY: "8" }, 1).concurrency).toBe(8); + expect(effectiveExecution(manifest as Manifest, {}, 6).concurrency).toBe(6); + expect(effectiveExecution(manifest as Manifest, { BALI_JTREG_CONCURRENCY: "nope" }, 1).concurrency).toBe( + manifest.execution.concurrency, + ); +}); + +test("inventory retains unsupported tests, excludes support files, and honours exclusions and scoping", async () => { const root = await mkdtemp(join(tmpdir(), "bali-compat-")); try { await mkdir(join(root, "java/lang/restricted"), { recursive: true }); + await mkdir(join(root, "java/awt"), { recursive: true }); + await mkdir(join(root, "jdk/nested"), { recursive: true }); await Bun.write(join(root, "java/lang/Example.java"), source); await Bun.write(join(root, "java/lang/Fixture.java"), "class Fixture {}"); await Bun.write(join(root, "java/lang/Script.sh"), "# @test\n# @run shell Script.sh\n"); await Bun.write(join(root, "java/lang/restricted/Example.java"), source); await Bun.write(join(root, "java/lang/restricted/TEST.properties"), "modules=java.desktop\n"); - const rows = await discover(root); - expect(rows.length).toBe(3); - expect(rows[0]!.unsupported).toBeNull(); - expect(rows[1]!.unsupported).toBe("Non-Java test action"); - expect(rows[2]!.unsupported).toContain("TEST.properties"); + await Bun.write(join(root, "java/awt/Frame.java"), source); + await Bun.write(join(root, "jdk/nested/TEST.ROOT"), "keys=x\n"); + await Bun.write(join(root, "jdk/nested/Inner.java"), source); + const rows = await discover(root, [{ glob: "java/awt/**", reason: "desktop" }]); + expect(rows.map((row) => row.id)).toEqual([ + "java/awt/Frame.java", + "java/lang/Example.java", + "java/lang/Script.sh", + "java/lang/restricted/Example.java", + "jdk/nested/Inner.java", + ]); + expect(rows[0]!.unsupported).toBe("Excluded by manifest: desktop"); + expect(rows[1]!.unsupported).toBeNull(); + expect(rows[1]!.variants).toEqual([""]); + expect(rows[2]!.unsupported).toBeNull(); + // Inherited TEST.properties are jtreg's to apply; only a nested TEST.ROOT is withheld. + expect(rows[3]!.unsupported).toBeNull(); + expect(rows[4]!.unsupported).toBe("Nested test root: jdk/nested"); + const scoped = await discover(root, [], ["java/lang/**"]); + expect(scoped.map((row) => row.id)).toEqual([ + "java/lang/Example.java", + "java/lang/Script.sh", + "java/lang/restricted/Example.java", + ]); } finally { await rm(root, { recursive: true, force: true }); } @@ -167,6 +318,7 @@ test("flattening keeps both-pass as pass, Bali-only failures as failures, and ot expect(flat.map((t) => t.status)).toEqual(["pass", "fail", "error", "fail", "skip"]); expect(flat[1]!.meta).toMatchObject({ area: "java/lang", bali: { status: "fail" } }); expect(flat[4]!.message).toBe("Unsupported @library directive"); + expect(flat[3]!.status).toBe("fail"); const referenceIssue = report(["pass"]); referenceIssue.tests[0]!.reference.status = "fail"; expect(flatten(referenceIssue)[0]).toMatchObject({ @@ -243,11 +395,11 @@ test("runtime progress counts only completed results, including timeouts and ski await Bun.write(join(work, "Running.jtr"), "#Test Results (version 2)\n"); expect( await runtimeProgress(work, [ - "Pass.java", - "Timeout.java", - "Skip.java", - "Running.java", - "Missing.java", + "Pass.jtr", + "Timeout.jtr", + "Skip.jtr", + "Running.jtr", + "Missing.jtr", ]), ).toEqual({ completed: 3, passed: 1, failed: 1, skipped: 1 }); } finally { @@ -274,6 +426,9 @@ exec '${process.execPath.replaceAll("'", "'\\''")}' '${join(root, "fake-jtreg.ts const args = process.argv.slice(2); const work = args.find(a => a.startsWith("-w:"))!.slice(3); await Bun.write(work + "/Example.jtr", "#-----testresult-----\\nexecStatus=Passed. Execution successful\\n#section:main\\n"); +await Bun.write(work + "/Variants_a.jtr", "#-----testresult-----\\nexecStatus=Passed. Execution successful\\n#section:main\\n"); +const report = args.find(a => a.startsWith("-r:"))!.slice(3); +await Bun.write(report + "/text/summary.txt", "Example.java Passed. Execution successful\\nVariants.java#a Passed. Execution successful\\nVariants.java#b Not run.\\nFiltered.java Not run.\\n"); console.log("fixture jtreg started"); console.error("fixture jtreg diagnostic"); while (!(await Bun.file(${JSON.stringify(join(root, "release"))}).exists())) await Bun.sleep(10); @@ -288,7 +443,11 @@ console.log("fixture jtreg completed"); "/fixture/jtreg.jar", ref, home, - [{ id: "Example.java", area: "fixture", unsupported: null }], + [ + { id: "Example.java", area: "fixture", unsupported: null }, + { id: "Variants.java", area: "fixture", unsupported: null, variants: ["a", "b"] }, + { id: "Filtered.java", area: "fixture", unsupported: null }, + ], manifest.execution, ); try { @@ -310,7 +469,13 @@ console.log("fixture jtreg completed"); const result = await running; expect(result.exitCode).toBe(0); expect(result.results.get("Example.java")?.status).toBe("pass"); + expect(result.results.get("Variants.java")).toEqual({ + status: "skipped", + detail: "#b: Not run. (filtered by keywords, @requires, or @ignore)", + }); + expect(result.results.get("Filtered.java")?.status).toBe("skipped"); const args = await Bun.file(join(output, "command.json")).json(); + for (const option of JTREG_OPTIONS) expect(args).toContain(option); expect(args).toContain("-testjdk:" + home); expect(args).toContain("-compilejdk:" + ref); expect(args).toContain("-javaoption:-Xmx2g"); @@ -336,7 +501,14 @@ const referenceInventory: Entry[] = [ { id: "java/lang/B.java", area: "java/lang", unsupported: "Unsupported @library directive" }, ]; const inputsFor = (inventory: Entry[] = referenceInventory, referenceVersion = 'openjdk version "25.0.2"') => - referenceInputs({ manifest: manifest as Manifest, root: ROOT, referenceVersion, inventory, platform: "linux-x64" }); + referenceInputs({ + manifest: manifest as Manifest, + root: ROOT, + requires: "class VMProps {}", + referenceVersion, + inventory, + platform: "linux-x64", + }); test("reference fingerprint covers exactly the inputs that determine stock-JDK outcomes", () => { const fingerprint = referenceFingerprint(inputsFor()); @@ -350,6 +522,18 @@ test("reference fingerprint covers exactly the inputs that determine stock-JDK o const grown = [...referenceInventory, { id: "java/lang/C.java", area: "java/lang", unsupported: null }]; expect(referenceFingerprint(inputsFor(grown))).not.toBe(fingerprint); expect(referenceFingerprint(inputsFor(referenceInventory, 'openjdk version "25.0.3"'))).not.toBe(fingerprint); + // The effective concurrency of the run is what the baseline records, not the manifest's alone. + const faster = referenceInputs({ + manifest: manifest as Manifest, + root: ROOT, + requires: "class VMProps {}", + referenceVersion: 'openjdk version "25.0.2"', + inventory: referenceInventory, + execution: { ...manifest.execution, concurrency: 8 }, + platform: "linux-x64", + }); + expect(faster.execution.concurrency).toBe(8); + expect(referenceFingerprint(faster)).not.toBe(fingerprint); const base = inputsFor(); const variants = [ { ...base, protocol: base.protocol + 1 }, @@ -357,6 +541,8 @@ test("reference fingerprint covers exactly the inputs that determine stock-JDK o { ...base, jtreg: "0".repeat(64) }, { ...base, execution: { ...base.execution, concurrency: base.execution.concurrency + 1 } }, { ...base, root: base.root + "extra=1\n" }, + { ...base, requires: "0".repeat(64) }, + { ...base, options: [...base.options, "-agentvm"] }, { ...base, heap: "-Xmx1g" }, { ...base, platform: "darwin-arm64" }, ]; @@ -389,7 +575,7 @@ test("a matching committed baseline replaces the stock-JDK run; missing, stale, expect(baseline.fingerprint).toBe(referenceFingerprint(inputs)); expect(Object.keys(baseline.results)).toEqual(["java/lang/A.java"]); - const path = join(root, REFERENCE_BASELINE); + const path = join(root, referenceBaselineName("linux-x64")); expect(await loadReferenceBaseline(path, baseline.fingerprint)).toMatchObject({ reason: expect.stringContaining("no reference baseline"), }); @@ -427,3 +613,33 @@ test("reports state whether the reference came from the baseline or from this ru expect(markdown(fromRun)).toContain("measured by running the stock JDK"); expect(markdown(report(["pass"]))).not.toContain("Reference outcomes"); }); + +test("baselines are per platform and are recorded only where the expectations directory is writable", async () => { + expect(referenceBaselineName("linux-x64")).toBe("jdk-jtreg.reference.linux-x64.json"); + expect(referenceBaselineName("darwin-arm64")).not.toBe(referenceBaselineName("linux-x64")); + expect(referenceBaselineName()).toContain(process.platform); + const root = await mkdtemp(join(tmpdir(), "bali-reference-record-")); + try { + const baseline = buildReferenceBaseline( + inputsFor(), + { exitCode: 0, results: new Map([["java/lang/A.java", { status: "pass", detail: "Passed." }]]) }, + referenceInventory, + "2026-09-10T09:23:55.252Z", + ); + const writable = join(root, "rw"); + await mkdir(writable); + const ok = await recordReferenceBaseline(join(writable, referenceBaselineName("linux-x64")), baseline); + expect(ok.written).toBe(true); + expect(await loadReferenceBaseline(join(writable, referenceBaselineName("linux-x64")), baseline.fingerprint)).toHaveProperty("baseline"); + // Docker mounts expectations/ read-only unless --ratchet: the run continues, nothing is written. + const readonly = join(root, "ro"); + await mkdir(readonly); + await chmod(readonly, 0o500); + const denied = await recordReferenceBaseline(join(readonly, referenceBaselineName("linux-x64")), baseline); + expect(denied.written).toBe(false); + expect(denied.message).toContain("--ratchet"); + await chmod(readonly, 0o700); + } finally { + await rm(root, { recursive: true, force: true }); + } +}); diff --git a/harness/src/adapters/jdk-jtreg.ts b/harness/src/adapters/jdk-jtreg.ts index bf5c498..489c98e 100644 --- a/harness/src/adapters/jdk-jtreg.ts +++ b/harness/src/adapters/jdk-jtreg.ts @@ -1,16 +1,22 @@ /** * RFC-0016: discover the pinned OpenJDK test/jdk inventory and measure runtime support. * - * The original TEST.ROOT probes HotSpot WhiteBox/diagnostic flags even for - * portable cases. Both runtimes use the same portable root; unsupported test - * directives remain visible as adapter gaps instead of disappearing from the inventory. - * All sibling fixtures are preserved. Stock javac compiles both runtime selections. + * jtreg runs the corpus on a stock JDK and on Bali with the directives the tests declare — + * `@library`, `@build`, `@modules`, `@requires`, `@key`, multiple `@test` variants, junit and + * testng actions — exactly as it would upstream; the harness only replaces what depends on + * HotSpot internals. The original TEST.ROOT evaluates `@requires` through WhiteBox and + * diagnostic VM flags, so both runtimes use one portable root whose property definitions + * (`suites/drivers/jdk-jtreg/requires/VMProps.java`) come from public APIs only. `test/lib` is + * staged beside `test/jdk` so `@library /test/lib` resolves as upstream's `external.lib.roots` + * intends. Files the harness does not run stay in the inventory with an explicit reason: tests + * needing a display, printer, or audio device, manual and applet actions, files ignored upstream, + * and areas the manifest excludes by policy. Stock javac compiles both runtime selections. * * The reference outcome is a function of the pins alone (corpus, jtreg, reference JDK, - * portable root, execution options, adapter protocol, runnable inventory), so it is kept - * as a committed, fingerprinted baseline in expectations/ and the stock JDK is only run - * when no matching baseline exists. `--ratchet` records a fresh reference run as the - * baseline, like it records the ratchet. + * portable root and property definitions, jtreg options, execution options, adapter protocol, + * runnable inventory), so it is kept as a committed, fingerprinted baseline in expectations/ and + * the stock JDK is only run when no matching baseline exists. `--ratchet` records a fresh + * reference run as the baseline, like it records the ratchet. * Archives are verified on every use and each run gets fresh work directories. * Reports distinguish verified passes, Bali gaps, reference issues, and unsupported * files. Paired outcomes are flattened into Elide's single-status model, so the shared @@ -21,10 +27,11 @@ */ import { $ } from "bun"; import { createHash } from "node:crypto"; -import { closeSync, createReadStream, openSync } from "node:fs"; +import { closeSync, openSync } from "node:fs"; import { mkdir, realpath, rename, rm } from "node:fs/promises"; import { arch, release } from "node:os"; import { basename, dirname, join, resolve } from "node:path"; +import picomatch from "picomatch"; import type { Adapter, AdapterContext } from "./types"; import { createJtregRunRoot, isJtregTimeout, jtregCommonArgs } from "./jtreg"; import type { Result as HarnessResult, TestResult } from "../results/schema"; @@ -32,20 +39,92 @@ export const REPO = resolve(import.meta.dir, "../../.."); const HEAP_CAP = "-Xmx2g"; // Bump the protocol only when result meaning changes, not on ordinary refactors. -export const PROTOCOL = 2; -export const ROOT = "requiredVersion=7.5.1+1\nuseNewOptions=true\nuseNewPatchModule=true\n"; -/** manifests/bali-jdk.json: pinned corpus, jtreg build, and fixed execution options. */ +// 3: jtreg directives run natively; files aggregate their @test variants; filtered tests +// ("Not run") are skips rather than missing results. +export const PROTOCOL = 3; + +/** Path of the portable `@requires` definitions, relative to the run's `src/test` directory. */ +export const REQUIRES_SOURCE = join(REPO, "suites/drivers/jdk-jtreg/requires/VMProps.java"); +const REQUIRES_STAGED = "portable/requires/VMProps.java"; + +/** Upstream's `requires.properties` list; every name is answered by the portable VMProps. */ +export const REQUIRES_PROPERTIES = [ + "sun.arch.data.model", + "java.runtime.name", + "java.enablePreview", + "vm.flagless", + "vm.gc.G1", + "vm.gc.Serial", + "vm.gc.Parallel", + "vm.gc.Shenandoah", + "vm.gc.Epsilon", + "vm.gc.Z", + "vm.graal.enabled", + "vm.compiler1.enabled", + "vm.compiler2.enabled", + "vm.cds", + "vm.cds.write.archived.java.heap", + "vm.continuations", + "vm.musl", + "vm.debug", + "vm.hasSA", + "vm.hasJFR", + "vm.jvmci", + "vm.jvmci.enabled", + "vm.jvmti", + "vm.cpu.features", + "container.support", + "systemd.support", + "release.implementor", + "jdk.containerized", + "jdk.foreign.linker", + "jlink.runtime.linkable", + "jlink.packagedModules", + "jdk.static", +]; + +/** The harness's half of TEST.ROOT; `portableRoot` appends the upstream lines it preserves. */ +export const ROOT = + "requiredVersion=7.5.1+1\n" + + "useNewOptions=true\n" + + "useNewPatchModule=true\n" + + // `/test/lib` and other absolute @library paths resolve against test/, as upstream declares. + "external.lib.roots=../../\n" + + `requires.extraPropDefns=../${REQUIRES_STAGED}\n` + + `requires.properties=${REQUIRES_PROPERTIES.join(" ")}\n`; + +/** Upstream TEST.ROOT settings carried into the portable root unchanged. */ +export const PRESERVED_ROOT_KEYS = ["keys", "othervm.dirs", "exclusiveAccess.dirs", "groups"]; + +/** jtreg keywords naming a physical resource the measurement never has. */ +export const DEVICE_KEYS = ["headful", "printer", "sound", "multimon"]; +export const KEYWORD_FILTER = DEVICE_KEYS.map((key) => `!${key}`).join("&"); + +/** Options every jtreg invocation gets beyond the shared ones; part of the reference fingerprint. */ +export const JTREG_OPTIONS = [ + "-othervm", + // Files ignored upstream are "Not run" rather than errors. + "-ignore:quiet", + // The text summary then lists filtered tests too, which is how "Not run" is read back. + "-report:all", + `-k:${KEYWORD_FILTER}`, +]; + +/** manifests/bali-jdk.json: pinned corpus, jtreg build, exclusions, and fixed execution options. */ export type Manifest = { id: string; scope: string; source: { url: string; sha256: string; revision: string }; jtreg: { url: string; sha256: string }; execution: { concurrency: number; timeoutFactor: number; headless: boolean }; + /** Areas the lane does not run, each with the policy reason reports show. */ + exclude?: { glob: string; reason: string }[]; }; const ARTIFACTS = ["bin/java", "bin/bali", "lib/modules", "release"]; export type Status = "pass" | "fail" | "error" | "timeout" | "blocked" | "unsupported" | "skipped"; export type Result = { status: Status; detail: string }; -export type Entry = { id: string; area: string; unsupported: string | null }; +/** One inventoried file; `variants` are its `@test` ids ("" for a lone unnamed description). */ +export type Entry = { id: string; area: string; unsupported: string | null; variants?: string[] }; export type Row = Entry & { reference: Result; bali: Result }; export type Report = { schema: 2; @@ -58,9 +137,11 @@ export type Report = { const CACHE = resolve(process.env.BALI_JTREG_CACHE ?? join(REPO, ".harness/bali/archives")); const digest = (value: string) => createHash("sha256").update(value).digest("hex"); +// Bun's file stream, not node:fs createReadStream: iterating the latter never completes on +// multi-hundred-megabyte files under Bun 1.3 on macOS (the Bali binary, the corpus tarball). async function fileDigest(path: string): Promise { const hash = createHash("sha256"); - for await (const chunk of createReadStream(path)) hash.update(chunk); + for await (const chunk of Bun.file(path).stream()) hash.update(chunk); return hash.digest("hex"); } @@ -79,21 +160,31 @@ export function parseJtr(text: string | undefined): Result { return { status: "blocked", detail }; } -/** Test-bearing files are counted once; multiple @test variants remain visible but unsupported. */ +/** Test-bearing files are counted once; their variants are measured together. */ export function hasTest(source: string): boolean { return /(?:\/\*|^[ \t]*(?:\*|#)?|