This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit e84eccc65d58d90620a9358ebf13672290953216
Author: opencode <[email protected]>
AuthorDate: Fri Oct 23 20:15:46 2026 +0200

    Follow Tomcat test naming and package conventions
    
    The suite used *Test.java names in two ad-hoc packages of its own,
    functional and config. Rename every test class to Test*.java, as the
    rest of the Tomcat source tree does - this is also what surefire's
    default include picks up first - and move each class into the package
    of the code it tests:
    
    * org.apache.tomcat.jdbc: JdbcPoolBaseTest, the shared H2-TCP fixture,
      renamed from functional.PoolTestSupport and promoted to the module's
      root test package, which is where a base class covering naming, pool,
      interceptor and jmx behaviour belongs;
    * org.apache.tomcat.jdbc.pool: the pool behaviour and pooled-statement
      classes, plus the three pure-unit configuration cases that lived in
      config and test PoolProperties/PooledConnection/parsing -
      TestConnectionAcquireRelease, TestConnectionSetup, TestValidation,
      TestPoolEviction, TestPurge, TestAsyncBorrow, TestInterruptedWaiter,
      TestAlternateCredentials, TestProxyContract, TestTransaction,
      TestStatementExecution, TestXaConnection, TestFairBlockingQueue,
      TestPoolProperties, TestShouldForceReconnect and
      TestJdbcInterceptorConfigParsing;
    * org.apache.tomcat.jdbc.pool.interceptor: TestInterceptorSemantics,
      TestInterceptorLifecycle, TestStatementLifecycle,
      TestStatementCacheReuse, TestSessionState, TestSlowQueryComparator;
    * org.apache.tomcat.jdbc.pool.jmx: TestJmxMonitor;
    * org.apache.tomcat.jdbc.naming: TestNamingFactory.
    
    The functional and config test packages are gone. Behaviour is
    unchanged - same 24 classes, same 140 tests, green - and
    TESTING-PLAN.md's layout paragraph and harvest map point at the new
    names; its legacy columns keep naming the retired JUnit 4 classes.
---
 modules/jdbc-pool/TESTING-PLAN.md                  | 81 +++++++++++-----------
 .../PoolTestSupport.java => JdbcPoolBaseTest.java} |  4 +-
 .../TestNamingFactory.java}                        |  5 +-
 .../TestAlternateCredentials.java}                 |  5 +-
 .../TestAsyncBorrow.java}                          |  5 +-
 .../TestConnectionAcquireRelease.java}             |  5 +-
 .../TestConnectionSetup.java}                      |  5 +-
 .../TestFairBlockingQueue.java}                    |  4 +-
 .../TestInterruptedWaiter.java}                    |  5 +-
 .../TestJdbcInterceptorConfigParsing.java}         |  4 +-
 .../TestPoolEviction.java}                         |  5 +-
 .../TestPoolProperties.java}                       |  4 +-
 .../TestProxyContract.java}                        |  5 +-
 .../PurgeTest.java => pool/TestPurge.java}         |  5 +-
 .../TestShouldForceReconnect.java}                 |  6 +-
 .../TestStatementExecution.java}                   |  5 +-
 .../TestTransaction.java}                          |  5 +-
 .../TestValidation.java}                           |  5 +-
 .../TestXaConnection.java}                         |  5 +-
 .../interceptor/TestInterceptorLifecycle.java}     |  5 +-
 .../interceptor/TestInterceptorSemantics.java}     |  5 +-
 .../interceptor/TestSessionState.java}             |  5 +-
 .../interceptor/TestSlowQueryComparator.java}      |  4 +-
 .../interceptor/TestStatementCacheReuse.java}      |  5 +-
 .../interceptor/TestStatementLifecycle.java}       |  5 +-
 .../jmx/TestJmxMonitor.java}                       |  5 +-
 26 files changed, 112 insertions(+), 90 deletions(-)

diff --git a/modules/jdbc-pool/TESTING-PLAN.md 
b/modules/jdbc-pool/TESTING-PLAN.md
index 00dae6f5aa..7b62385186 100644
--- a/modules/jdbc-pool/TESTING-PLAN.md
+++ b/modules/jdbc-pool/TESTING-PLAN.md
@@ -34,7 +34,7 @@ regressions; scenario, not code, must survive:
 
 | Disposition | Classes |
 |---|---|
-| **Keep** (port to JUnit 5 as-is; fast, pure-unit, no fake DB) | 
`TestJdbcInterceptorConfigParsing`, `TestSlowQueryComparator`, 
`PoolPropertiesTest`, `ShouldForceReconnectTest` (`TestInterceptorShortName` 
moved to the harvest row below: it needs a live pool, and the real 
`SlowQueryReport` can play its role) |
+| **Keep** (port to JUnit 5 as-is; fast, pure-unit, no fake DB) | 
`JdbcInterceptorConfigParsingTest`, `SlowQueryComparatorTest`, 
`PoolPropertiesTest`, `ShouldForceReconnectTest` (`TestInterceptorShortName` 
moved to the harvest row below: it needs a live pool, and the real 
`SlowQueryReport` can play its role) |
 | **Harvest scenario → rewrite against real DB** | `Bug50571`, `Bug50805`, 
`Async0IdleTestBug50477` (regression memory), `TestConnectionState` (→ defect 
#3 repro), `TestGCClose` (GC-close semantics), `MultipleCloseTest`, 
`EqualsHashCodeTest`, `AlternateUsernameTest` (H2 supports multiple DB users → 
now a *real* test), `PoolPurgeTest`, `TestValidation`, 
`TestValidationQueryTimeout`, `TestTimeout`, `TestSuspectTimeout`, 
`TestGetConnection`, `TwoDataSources`, `JmxPasswordTest` (→ credential [...]
 | **Delete** (benchmarks, sleep-drift, DBCP/c3p0 comparisons, stub plumbing, 
examples) | `FairnessTest`, `CheckOutThreadTest`, `ConnectCountTest`, 
`StarvationTest`, `AbandonPercentageTest`, `TestConcurrency`, 
`TestSizePreservation`, `BorrowWaitTest`, `TestAsyncQueue`, `TestException`, 
`ProxiedResultSetTest`, `ProxiedStatementTest`, `PoolCleanerTest` (flaky), 
`CreateTestTable`, `DefaultTestCase`/`DefaultProperties` (DBCP plumbing), 
`SimplePOJO*Example`, `driver/*` |
 
@@ -48,43 +48,43 @@ driver what it remembered, the new test asks the database.
 
 | Legacy scenario | New home |
 |---|---|
-| `Async0IdleTestBug50477`, `Bug50805`, `TestAsyncQueue` (async borrow must 
not strand a waiter, accounting stays honest) | `functional/AsyncBorrowTest` 
(4) |
-| `Bug53367`, `FairnessTest`/`StarvationTest` *interrupt* case (an interrupted 
waiter must not eat a permit) | `functional/InterruptedWaiterTest` (2) |
-| `TestValidation`, `TestValidationQueryTimeout`, `TestTimeout` (validation 
query, timeout, `testOnBorrow`/`Return`/`WhileIdle`, `isValid()`, custom 
`Validator`) | `functional/ValidationTest` (9) |
-| `TestGetConnection`, `TwoDataSources`, `Bug50571`, `Bug54225`, `Bug54978` 
(connect-time setup: `initSQL`, blank `initSQL`, `initSQL` as connect 
validation, unusable configured isolation, `dbProperties`, side-door close 
detected) | `functional/ConnectionSetupTest` (6) |
-| `PoolPurgeTest` | `functional/PurgeTest` (2) — re-encoded to the real 
generational semantics: `purge()`/`purgeOnReturn()` both start a new pool 
generation, a pre-generation session is closed on return, `purge()` also closes 
the ones idle right now |
-| `MultipleCloseTest`, `EqualsHashCodeTest` (facade identity path) | 
`functional/ProxyContractTest` (4) |
-| `StatementFinalizerTest`, `TestStatementCache`, 
`ProxiedResultSetTest`/`ProxiedStatementTest` back-references | 
`functional/StatementLifecycleTest` (7) |
-| `TestConnectionState` (hygiene half; the leak half stays defect #3 backlog) 
| `functional/SessionStateTest` (3) |
-| `AlternateUsernameTest` (now a real test: H2 users, identity read back with 
`CURRENT_USER`) | `functional/AlternateCredentialsTest` (6) |
-| `TestInterceptorShortName`, `TestSlowQueryReport` lifecycle/statistics half 
| `functional/InterceptorLifecycleTest` (3) |
-| `JmxPasswordTest` (documented `getPassword()` redaction only) | 
`functional/JmxMonitorTest` (+1, 5 total) |
-| `PoolPropertiesTest` (config package: `toString` bracket balance **plus** 
password masking) | `config/PoolPropertiesTest` (2) |
-| `TestJdbcInterceptorConfigParsing` | 
`config/JdbcInterceptorConfigParsingTest` (4) |
-| `TestSlowQueryComparator` | `config/SlowQueryComparatorTest` (5) |
-| `ShouldForceReconnectTest` (truth table, expanded to a parameterised case 
per credential combination) | `config/ShouldForceReconnectTest` (17) |
+| `Async0IdleTestBug50477`, `Bug50805`, `TestAsyncQueue` (async borrow must 
not strand a waiter, accounting stays honest) | `pool/TestAsyncBorrow` (4) |
+| `Bug53367`, `FairnessTest`/`StarvationTest` *interrupt* case (an interrupted 
waiter must not eat a permit) | `pool/TestInterruptedWaiter` (2) |
+| `TestValidation`, `TestValidationQueryTimeout`, `TestTimeout` (validation 
query, timeout, `testOnBorrow`/`Return`/`WhileIdle`, `isValid()`, custom 
`Validator`) | `pool/TestValidation` (9) |
+| `TestGetConnection`, `TwoDataSources`, `Bug50571`, `Bug54225`, `Bug54978` 
(connect-time setup: `initSQL`, blank `initSQL`, `initSQL` as connect 
validation, unusable configured isolation, `dbProperties`, side-door close 
detected) | `pool/TestConnectionSetup` (6) |
+| `PoolPurgeTest` | `pool/TestPurge` (2) — re-encoded to the real generational 
semantics: `purge()`/`purgeOnReturn()` both start a new pool generation, a 
pre-generation session is closed on return, `purge()` also closes the ones idle 
right now |
+| `MultipleCloseTest`, `EqualsHashCodeTest` (facade identity path) | 
`pool/TestProxyContract` (4) |
+| `StatementFinalizerTest`, `TestStatementCache`, 
`ProxiedResultSetTest`/`ProxiedStatementTest` back-references | 
`pool/TestStatementLifecycle` (7) |
+| `TestConnectionState` (hygiene half; the leak half stays defect #3 backlog) 
| `pool/TestSessionState` (3) |
+| `AlternateUsernameTest` (now a real test: H2 users, identity read back with 
`CURRENT_USER`) | `pool/TestAlternateCredentials` (6) |
+| `TestInterceptorShortName`, `TestSlowQueryReport` lifecycle/statistics half 
| `pool/TestInterceptorLifecycle` (3) |
+| `JmxPasswordTest` (documented `getPassword()` redaction only) | 
`pool/TestJmxMonitor` (+1, 5 total) |
+| `PoolPropertiesTest` (pure unit: `toString` bracket balance **plus** 
password masking) | `pool/TestPoolProperties` (2) |
+| `TestJdbcInterceptorConfigParsing` | `pool/TestJdbcInterceptorConfigParsing` 
(4) |
+| `TestSlowQueryComparator` | `pool/TestSlowQueryComparator` (5) |
+| `ShouldForceReconnectTest` (truth table, expanded to a parameterised case 
per credential combination) | `pool/TestShouldForceReconnect` (17) |
 
 Deliberately dropped, with reasons:
 
 * `TestGCClose` — a finalizer-on-GC scenario cannot be gated (no
   deterministic trigger). The hazard it gestured at (a stale proxy
   driving somebody else's session) is a High catalog finding and is
-  pinned at the facade level by `ProxyContractTest`.
+  pinned at the facade level by `TestProxyContract`.
 * `TestQueryTimeoutInterceptor`, `TestValidation`'s "how many times did
   the driver get asked" cases — the first is already covered by
-  `InterceptorSemanticsTest`; the second counted stub-driver calls and
+  `TestInterceptorSemantics`; the second counted stub-driver calls and
   is superseded by session-count and outcome oracles.
 * `TestSlowQueryReport`'s JMX-notification counting and `bugs/Bug51582`
   (`SlowQueryReportJmx`) — High defect #7, §4 backlog.
 * `bugs/Bug54227` (a session older than `maxAge` must be replaced) was
   already covered before the harvest, by
-  `PoolEvictionTest#maxAgeRetiresAnOldConnectionBetweenBorrowers`.
+  `TestPoolEviction#maxAgeRetiresAnOldConnectionBetweenBorrowers`.
 * StatementCache hygiene cases H2 cannot observe: `maxFieldSize`
   (always reports 0), `getFetchDirection` (always `FETCH_FORWARD`),
   `isPoolable()` (always false — the interceptor tracks it itself) and
   driver-generated warnings (H2 raises none on `executeUpdate`). The
   observable half — batch, `closeOnCompletion`, `queryTimeout`,
-  `maxRows`, `fetchSize` — is in `StatementLifecycleTest`.
+  `maxRows`, `fetchSize` — is in `TestStatementLifecycle`.
 * Everything else per the disposition table above (benchmarks, DBCP
   comparisons, sleep-driven timing, stub plumbing, examples).
 
@@ -147,10 +147,12 @@ JUnit 5, three groups:
    `lockCount` property); if it is kept, it needs direct unit tests
    in the later phase — not in the functional baseline.
 
-Layout: `org.apache.tomcat.jdbc.functional` (behaviour against the real
-database, every class extending the fixture) and
-`org.apache.tomcat.jdbc.config` (the pure-unit configuration cases
-ported from the old suite — no pool, no database).
+Layout: each test class is `Test*.java` and sits in the package of
+the code it tests - `org.apache.tomcat.jdbc.pool` (pool behaviour and
+the pooled-statement surface, plus the pure-unit configuration cases
+ported from the old suite), `pool.interceptor`, `pool.jmx`, `naming`.
+The shared fixture is `org.apache.tomcat.jdbc.JdbcPoolBaseTest`, the
+one class all behavioural tests extend.
 
 Infrastructure: H2-TCP fixture (per-class server + fresh DB name);
 state-hygiene extension (every `DataSource` closed, pool statics and
@@ -159,7 +161,7 @@ the `PoolCleanerTest` flake class permanently); Awaitility 
instead
 of sleeps; `-Pdocker` profile for the Postgres tier.
 
 Fixture details worth knowing before writing a test against it
-(`functional/PoolTestSupport`):
+(`org.apache.tomcat.jdbc.JdbcPoolBaseTest`):
 
 * The database is bootstrapped by an admin connection with
   `SET DB_CLOSE_DELAY -1`. Without it an in-memory database is
@@ -212,31 +214,32 @@ the working list.
    helpers + Await-style polling helper. Old suite's flaky
    `PoolCleanerTest` excluded (already red in full-suite runs;
    superseded by the baseline). Suite-time target: new tests < 60 s.
-   **Done**: `org.apache.tomcat.jdbc.functional` package.
+   **Done**: the fixture as
+   `org.apache.tomcat.jdbc.JdbcPoolBaseTest`.
 2. **Spec tests** (green gate) for core pool + proxies +
    interceptors, against H2-TCP: acquire/reuse, statement
    execution, transactions, sizing/eviction/lifecycle first; then
    validation variants, fairness queues, interceptor chain
    semantics, JMX with live traffic, XA, JNDI factories.
-   **Done**: the phase 1 classes plus `InterceptorSemanticsTest`
+   **Done**: the phase 1 classes plus `TestInterceptorSemantics`
    (slow/failed query reporting, `QueryTimeoutInterceptor`
    cancellation, `StatementCache`, `StatementDecoratorInterceptor`),
-   `JmxMonitorTest` (pool + per-connection MBeans with live
-   traffic), `XaConnectionTest` (real 2-phase commit and rollback
-   against H2's XA resource), `NamingFactoryTest`
+   `TestJmxMonitor` (pool + per-connection MBeans with live
+   traffic), `TestXaConnection` (real 2-phase commit and rollback
+   against H2's XA resource), `TestNamingFactory`
    (`DataSourceFactory`, `GenericNamingResourcesFactory`) and
-   `FairBlockingQueueTest` (most-recently-used hand-off, blocking
+   `TestFairBlockingQueue` (most-recently-used hand-off, blocking
    retrieval, waiter fairness, documented-unsupported operations).
    The validation variants (`testOnBorrow`, `testOnReturn`,
    `testWhileIdle`; query vs `isValid()` vs a custom `Validator`,
    `validationQueryTimeout`) arrived with the harvest as
-   `ValidationTest`.
-   `InterceptorSemanticsTest` alone costs ~60 s: real timeout
+   `TestValidation`.
+   `TestInterceptorSemantics` alone costs ~60 s: real timeout
    cancellation needs a real multi-second query (H2 has no `SLEEP()`
    and an in-process `CREATE ALIAS` is not cancel-safe), so the
    "< 60 s" budget is understood to exclude it.
    Added afterwards, because the pool's own caching is core
-   functionality: `StatementCacheReuseTest` (6) pins the statement cache
+   functionality: `TestStatementCacheReuse` (6) pins the statement cache
    on the driver's own statement object - a closed statement is handed
    to the next borrower of the same session without a second prepare,
    each session caches its own, the `max` count is counted over the whole
@@ -246,7 +249,7 @@ the working list.
    Suite totals: 140 tests, ~80 s, 56.9 % instruction / 52.8 % branch.
 3. **Old suite removal**: **done**. The harvest (§1 "Harvest result")
    landed first: 75 tests in 12 new classes plus one added
-   `JmxMonitorTest` case. The JUnit 4 suite then went away together
+   `TestJmxMonitor` case. The JUnit 4 suite then went away together
    with its stub driver, the DBCP-comparison plumbing
    (`DefaultTestCase`, `DefaultProperties`), the `bugs/` classes, the
    test-only interceptors under `pool/interceptor/` and the two
@@ -285,7 +288,7 @@ the working list.
   * closing the `Connection` obtained from an H2 `XAConnection`
     closes the *physical* connection, so the pool discards it
     instead of pooling it; returning only the `XAConnection` keeps
-    it (what `XaConnectionTest` asserts).
+    it (what `TestXaConnection` asserts).
   * `ConnectionPool.close()` releases idle connections via
     `release()` but checked-out ones via `abandon()`, and only the
     former unregisters the per-connection
@@ -302,14 +305,14 @@ the working list.
     findings in `defects-pool/defects-...ProxyConnection.md` and
     `...DisposableConnectionFacade.md`; the baseline therefore pins
     only the identity semantics *at the facade*
-    (`ProxyContractTest`).
+    (`TestProxyContract`).
   * a borrow with alternate credentials that the database refuses
     leaves the pool having *closed the healthy idle session it
     already had*: size and server session count drop to 0 and the
     next ordinary borrow has to reconnect. The pool stays usable
-    (`AlternateCredentialsTest` pins that much), but the shrinkage is
+    (`TestAlternateCredentials` pins that much), but the shrinkage is
     not something to lock in as expected behaviour.
-* `StatementCacheReuseTest` pins the documented caching behaviour and
+* `TestStatementCacheReuse` pins the documented caching behaviour and
   deliberately stops there. The findings in
   `defects-pool/defects-...interceptor.StatementCache.md` stay unpinned:
   a cached statement keeps answering `getConnection()` with the
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolTestSupport.java
 b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/JdbcPoolBaseTest.java
similarity index 99%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolTestSupport.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/JdbcPoolBaseTest.java
index 3200e49ec7..7ec8c31193 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolTestSupport.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/JdbcPoolBaseTest.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc;
 
 import java.lang.reflect.Proxy;
 import java.sql.Connection;
@@ -54,7 +54,7 @@ import org.h2.tools.Server;
  * Test classes must not run in parallel (each uses static fixture
  * state); Surefire's default sequential execution applies.
  */
-public abstract class PoolTestSupport {
+public abstract class JdbcPoolBaseTest {
 
     /** Upper bound for any await-style condition; generous on slow CI. */
     protected static final long AWAIT_TIMEOUT_MS = 15000;
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/NamingFactoryTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/naming/TestNamingFactory.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/NamingFactoryTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/naming/TestNamingFactory.java
index 725f7dc5bf..4360a97ffc 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/NamingFactoryTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/naming/TestNamingFactory.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.naming;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -27,6 +27,7 @@ import javax.naming.CompositeName;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.DataSourceFactory;
 import org.apache.tomcat.jdbc.pool.XADataSource;
@@ -37,7 +38,7 @@ import org.apache.tomcat.jdbc.pool.XADataSource;
  * correctly configured, fully working pool; and the generic naming
  * factory applies documented property types to the configured object.
  */
-class NamingFactoryTest extends PoolTestSupport {
+class TestNamingFactory extends JdbcPoolBaseTest {
 
     private Reference dataSourceReference(String className) {
         Reference ref = new Reference(className, null, null);
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AlternateCredentialsTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAlternateCredentials.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AlternateCredentialsTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAlternateCredentials.java
index dcecb8a3e7..bc8c2e7074 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AlternateCredentialsTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAlternateCredentials.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -36,6 +36,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.CsvSource;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -50,7 +51,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * {@code AlternateUsernameTest}, which could only ask a fake driver which
  * credentials it had been handed.</p>
  */
-class AlternateCredentialsTest extends PoolTestSupport {
+class TestAlternateCredentials extends JdbcPoolBaseTest {
 
     private static final String ALT_USER = "POOL_ALT_USER";
     private static final String ALT_PASSWORD = "alt-password";
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AsyncBorrowTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAsyncBorrow.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AsyncBorrowTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAsyncBorrow.java
index 20a1f89b4e..168e7381b1 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/AsyncBorrowTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestAsyncBorrow.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -44,7 +45,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * {@code Async0IdleTestBug50477} (async borrow from a fair pool that has
  * no idle connections yet), neither of which ran in the old build.</p>
  */
-class AsyncBorrowTest extends PoolTestSupport {
+class TestAsyncBorrow extends JdbcPoolBaseTest {
 
     @Test
     void asyncBorrowKeepsAccountingConsistentWithTheDatabase() throws 
Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionAcquireReleaseTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionAcquireRelease.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionAcquireReleaseTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionAcquireRelease.java
index 7607087dba..58f57605d2 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionAcquireReleaseTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionAcquireRelease.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.AtomicReference;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -42,7 +43,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * returning them, and reusing them. All assertions about physical
  * connections are made against the database, not pool statistics.
  */
-class ConnectionAcquireReleaseTest extends PoolTestSupport {
+class TestConnectionAcquireRelease extends JdbcPoolBaseTest {
 
     @Test
     void initialSizePreCreatesPhysicalConnections() throws Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionSetupTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionSetup.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionSetupTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionSetup.java
index 39ed5dd348..129787bdad 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ConnectionSetupTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestConnectionSetup.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -29,6 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.NullAndEmptySource;
 import org.junit.jupiter.params.provider.ValueSource;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
 
@@ -45,7 +46,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
  * transaction isolation with the {@code ConnectionState} interceptor) -
  * none of which ran in the old build.</p>
  */
-class ConnectionSetupTest extends PoolTestSupport {
+class TestConnectionSetup extends JdbcPoolBaseTest {
 
     private static final String INIT_MARKER = "SET @POOL_INIT_STATE = 
'applied'";
 
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/FairBlockingQueueTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestFairBlockingQueue.java
similarity index 99%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/FairBlockingQueueTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestFairBlockingQueue.java
index 8b4357444a..9a24c4c73b 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/FairBlockingQueueTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestFairBlockingQueue.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -41,7 +41,7 @@ import org.apache.tomcat.jdbc.pool.FairBlockingQueue;
  * longest waiting consumer, and the collection operations the queue
  * deliberately leaves unsupported.
  */
-class FairBlockingQueueTest {
+class TestFairBlockingQueue {
 
     @Test
     void pollTimesOutOnEmptyQueue() throws Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterruptedWaiterTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestInterruptedWaiter.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterruptedWaiterTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestInterruptedWaiter.java
index cea1eb7577..717c424c23 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterruptedWaiterTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestInterruptedWaiter.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -27,6 +27,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -39,7 +40,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * <p>Asserted with pool accounting <em>and</em> the database's own
  * session count, for both queue implementations.</p>
  */
-class InterruptedWaiterTest extends PoolTestSupport {
+class TestInterruptedWaiter extends JdbcPoolBaseTest {
 
     private static final int HOLDERS = 3;
 
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/JdbcInterceptorConfigParsingTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestJdbcInterceptorConfigParsing.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/JdbcInterceptorConfigParsingTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestJdbcInterceptorConfigParsing.java
index 39134e97bd..e28325318b 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/JdbcInterceptorConfigParsingTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestJdbcInterceptorConfigParsing.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.config;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -39,7 +39,7 @@ import org.apache.tomcat.jdbc.pool.TrapException;
  * <p>Ported from the retired legacy
  * {@code TestJdbcInterceptorConfigParsing} (added for bug 54395).</p>
  */
-class JdbcInterceptorConfigParsingTest {
+class TestJdbcInterceptorConfigParsing {
 
     @Test
     void basicNamesAndPropertiesAreParsed() {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolEvictionTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolEviction.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolEvictionTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolEviction.java
index 5e7850598a..fc0da056c5 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PoolEvictionTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolEviction.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -29,6 +29,7 @@ import java.util.List;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -37,7 +38,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * validation keeping connections alive. Observed exclusively through
  * physical sessions on the database.
  */
-class PoolEvictionTest extends PoolTestSupport {
+class TestPoolEviction extends JdbcPoolBaseTest {
 
     @Test
     void excessIdleConnectionsAreClosedOnReturnDownToMaxIdle() throws 
Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/PoolPropertiesTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolProperties.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/PoolPropertiesTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolProperties.java
index 59392d1e01..fc1ece4043 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/PoolPropertiesTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPoolProperties.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.config;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -36,7 +36,7 @@ import org.apache.tomcat.jdbc.pool.PoolProperties;
  *
  * <p>Ported from the retired legacy {@code PoolPropertiesTest}.</p>
  */
-class PoolPropertiesTest {
+class TestPoolProperties {
 
     private static final String DEFAULT_USER = "username_def";
     private static final String DEFAULT_PASSWD = "password_def";
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ProxyContractTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestProxyContract.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ProxyContractTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestProxyContract.java
index 685b6bceda..080221cb3b 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ProxyContractTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestProxyContract.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -31,6 +31,7 @@ import javax.sql.PooledConnection;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -46,7 +47,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * the facade (with {@code useDisposableConnectionFacade=false}) is not
  * covered here on purpose - see TESTING-PLAN.md.</p>
  */
-class ProxyContractTest extends PoolTestSupport {
+class TestProxyContract extends JdbcPoolBaseTest {
 
     @Test
     void aClosedFacadeStaysClosedAfterTheSessionIsReborrowed() throws 
Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PurgeTest.java
 b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPurge.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PurgeTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPurge.java
index 2c5b40bfd1..3fad4679db 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/PurgeTest.java
+++ b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestPurge.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -23,6 +23,7 @@ import java.sql.Connection;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -38,7 +39,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * harvested from the retired legacy {@code PoolPurgeTest}, asserted here
  * with the database's session count.
  */
-class PurgeTest extends PoolTestSupport {
+class TestPurge extends JdbcPoolBaseTest {
 
     @Test
     void purgeClosesIdleSessionsAndDiscardsTheNextReturn() throws Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/ShouldForceReconnectTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestShouldForceReconnect.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/ShouldForceReconnectTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestShouldForceReconnect.java
index 8cf1e90104..aac9e0bfad 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/ShouldForceReconnectTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestShouldForceReconnect.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.config;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -42,9 +42,9 @@ import org.apache.tomcat.jdbc.pool.PooledConnection;
  *
  * <p>Ported from the retired legacy {@code ShouldForceReconnectTest}. The
  * {@code maxAge} half of the same decision is covered against a real
- * database by {@code 
PoolEvictionTest#maxAgeRetiresAnOldConnectionBetweenBorrowers}.</p>
+ * database by {@code 
TestPoolEviction#maxAgeRetiresAnOldConnectionBetweenBorrowers}.</p>
  */
-class ShouldForceReconnectTest {
+class TestShouldForceReconnect {
 
     private static final String DEFAULT_USER = "username_def";
     private static final String DEFAULT_PASSWD = "password_def";
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementExecutionTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestStatementExecution.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementExecutionTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestStatementExecution.java
index fd69785cab..7bd8e2845e 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementExecutionTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestStatementExecution.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -32,13 +32,14 @@ import java.sql.Statement;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
  * Expected functionality of executing statements (DDL, DML, queries,
  * batches, calls) through pooled connections against the real database.
  */
-class StatementExecutionTest extends PoolTestSupport {
+class TestStatementExecution extends JdbcPoolBaseTest {
 
     @Test
     void ddlDmlSelectRoundTrip() throws Exception {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/TransactionTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestTransaction.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/TransactionTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestTransaction.java
index ffec527760..bd66b09c8e 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/TransactionTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestTransaction.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -25,6 +25,7 @@ import java.sql.Statement;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 
 /**
@@ -33,7 +34,7 @@ import org.apache.tomcat.jdbc.pool.DataSource;
  * commit/rollback assertion is checked from an independent admin
  * connection, i.e. against what the database actually persisted.
  */
-class TransactionTest extends PoolTestSupport {
+class TestTransaction extends JdbcPoolBaseTest {
 
     private String createTable(DataSource ds) throws Exception {
         String t = uniqueTable();
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ValidationTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestValidation.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ValidationTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestValidation.java
index 73bae957ae..c4dae4eb81 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/ValidationTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestValidation.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -29,6 +29,7 @@ import java.util.List;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.PooledConnection;
 import org.apache.tomcat.jdbc.pool.Validator;
@@ -46,7 +47,7 @@ import org.apache.tomcat.jdbc.pool.Validator;
  * connection replaces the connection instead of reporting an error is
  * asserted explicitly, because it is easy to mistake for a bug.</p>
  */
-class ValidationTest extends PoolTestSupport {
+class TestValidation extends JdbcPoolBaseTest {
 
     /** Heavy pure-SQL aggregate; H2 honours statement timeouts on it. */
     private static final String SLOW_SQL =
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/XaConnectionTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestXaConnection.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/XaConnectionTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestXaConnection.java
index 1ec24ac07b..69c433e849 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/XaConnectionTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/TestXaConnection.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -33,6 +33,7 @@ import javax.transaction.xa.Xid;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.XADataSource;
 
@@ -42,7 +43,7 @@ import org.apache.tomcat.jdbc.pool.XADataSource;
  * out pooled connections that implement {@link XAConnection}, and the
  * XA resource drives real two-phase commit against the database.
  */
-class XaConnectionTest extends PoolTestSupport {
+class TestXaConnection extends JdbcPoolBaseTest {
 
     /** Simple test transaction id. */
     private static final class TestXid implements Xid {
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorLifecycleTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorLifecycle.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorLifecycleTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorLifecycle.java
index 64e3cffb28..d21e305fbb 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorLifecycleTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorLifecycle.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -31,6 +31,7 @@ import java.util.Map;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.JdbcInterceptor;
 import org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport;
@@ -49,7 +50,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport;
  * driver: the interceptor leaves evidence in the database work it sees and
  * in the statistics it publishes.</p>
  */
-class InterceptorLifecycleTest extends PoolTestSupport {
+class TestInterceptorLifecycle extends JdbcPoolBaseTest {
 
     private static final String REPORT_SQL = "SELECT COUNT(*) FROM 
SYSTEM_RANGE(1,10)";
 
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorSemanticsTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorSemantics.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorSemanticsTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorSemantics.java
index 9c60dae74b..dc9d549844 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/InterceptorSemanticsTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestInterceptorSemantics.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport;
 
@@ -40,7 +41,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport;
  * cancellation, per-connection statement caching and the decorated
  * statement proxy contract.
  */
-class InterceptorSemanticsTest extends PoolTestSupport {
+class TestInterceptorSemantics extends JdbcPoolBaseTest {
 
     /** Heavy pure-SQL aggregate; H2 honours query timeouts on it (~2 s). */
     private static final String HEAVY_SQL_PREFIX =
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/SessionStateTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSessionState.java
similarity index 97%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/SessionStateTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSessionState.java
index 20c9d6e022..b4f948135b 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/SessionStateTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSessionState.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -25,6 +25,7 @@ import java.sql.Statement;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
 
@@ -40,7 +41,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
  * the state really was restored: a write that stays invisible to an admin
  * connection proves the physical session is in manual commit mode.</p>
  */
-class SessionStateTest extends PoolTestSupport {
+class TestSessionState extends JdbcPoolBaseTest {
 
     private DataSource configuredPool() {
         DataSource ds = newDataSource();
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/SlowQueryComparatorTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSlowQueryComparator.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/SlowQueryComparatorTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSlowQueryComparator.java
index 4053633ddc..f70151bfed 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/config/SlowQueryComparatorTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestSlowQueryComparator.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.config;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -38,7 +38,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.QueryStatsCompara
  *
  * <p>Ported from the retired legacy {@code TestSlowQueryComparator}.</p>
  */
-class SlowQueryComparatorTest {
+class TestSlowQueryComparator {
 
     private final Comparator<QueryStats> comparator = new 
QueryStatsComparator();
 
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementCacheReuseTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementCacheReuse.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementCacheReuseTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementCacheReuse.java
index de567e3221..48c444b791 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementCacheReuseTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementCacheReuse.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -29,6 +29,7 @@ import java.sql.Statement;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.interceptor.StatementCache;
 
@@ -49,7 +50,7 @@ import org.apache.tomcat.jdbc.pool.interceptor.StatementCache;
  * pool, and once that count is reached further statements are not cached
  * and are closed immediately.</p>
  */
-class StatementCacheReuseTest extends PoolTestSupport {
+class TestStatementCacheReuse extends JdbcPoolBaseTest {
 
     private DataSource cachedPool(String properties, int maxActive) {
         DataSource ds = newDataSource();
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementLifecycleTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementLifecycle.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementLifecycleTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementLifecycle.java
index 73fd0532ee..5f903ca1bd 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/StatementLifecycleTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/interceptor/TestStatementLifecycle.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.interceptor;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,6 +36,7 @@ import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.interceptor.StatementCache;
 import org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor;
@@ -54,7 +55,7 @@ import 
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;
  * case here is decided by the database: the rows a recycled statement
  * actually inserted.</p>
  */
-class StatementLifecycleTest extends PoolTestSupport {
+class TestStatementLifecycle extends JdbcPoolBaseTest {
 
     private static final String INSERT_SQL = "INSERT INTO %s VALUES (?)";
 
diff --git 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/JmxMonitorTest.java
 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/jmx/TestJmxMonitor.java
similarity index 98%
rename from 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/JmxMonitorTest.java
rename to 
modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/jmx/TestJmxMonitor.java
index bb32f100ae..1256f1cb8d 100644
--- 
a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/functional/JmxMonitorTest.java
+++ 
b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/pool/jmx/TestJmxMonitor.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.tomcat.jdbc.functional;
+package org.apache.tomcat.jdbc.pool.jmx;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -34,6 +34,7 @@ import javax.management.ObjectName;
 
 import org.junit.jupiter.api.Test;
 
+import org.apache.tomcat.jdbc.JdbcPoolBaseTest;
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.jmx.ConnectionPoolMBean;
 
@@ -46,7 +47,7 @@ import org.apache.tomcat.jdbc.pool.jmx.ConnectionPoolMBean;
  * those same container callbacks and then read the published statistics
  * while real traffic flows to a real database.
  */
-class JmxMonitorTest extends PoolTestSupport {
+class TestJmxMonitor extends JdbcPoolBaseTest {
 
     private static final String POOL_DOMAIN = "tomcat.jdbc";
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to