fmorillo7694 commented on PR #206:
URL: 
https://github.com/apache/flink-connector-aws/pull/206#issuecomment-5714683310

   ## Test evidence: full suite executed against real AWS Glue
   
   Following up on the review discussions about test coverage, the three 
commits just pushed (`38fd97b`, `d600182`, `eae545c`) extend the test pyramid 
and make it executable against the real service. Evidence below is from a 
single `mvn verify` invocation against **real AWS Glue in eu-central-1** 
(screenshot to follow in the next comment).
   
   ### What was run
   
   ```
   IT_CASE_GLUE_CATALOG_USE_DEFAULT_CREDENTIALS=true 
IT_CASE_GLUE_CATALOG_REGION=eu-central-1 \
     mvn -pl 
flink-catalog-aws/flink-catalog-aws-glue,flink-connector-aws-e2e-tests/flink-catalog-aws-glue-e2e-tests
 \
     -am verify -Prun-aws-end-to-end-tests -Dsurefire.rerunFailingTestsCount=3
   ```
   
   ```
   [WARNING] Tests run: 127, Failures: 0, Errors: 0, Skipped: 18, Flakes: 5   
<- unit suite vs REAL Glue
   [INFO] Tests run: 5, ... -- in ...glue.GlueCatalogMotoITCase               
<- wire-level (moto, CI tier)
   [INFO] Tests run: 3, ... -- in ...glue.GlueCatalogSqlMotoITCase            
<- SQL path (moto, CI tier)
   [INFO] Tests run: 2, ... -- in ...glue.test.GlueCatalogEndToEndITCase      
<- e2e vs REAL Glue
   [INFO] BUILD SUCCESS
   ```
   
   - The **18 skips** are fault-injection tests (simulated Glue server errors) 
— impossible against the real service by definition; they skip with that reason 
and run normally in CI's fake mode.
   - The **5 flakes** are Glue eventual-consistency transients 
(`CreateDatabase` → immediate read can briefly miss; `DeleteDatabase` is 
asynchronous); they passed on automatic rerun and are reported by surefire 
rather than hidden.
   - CI behaviour is **unchanged**: without credentials the unit suite runs 
against the in-memory fake exactly as before (verified: 127/127, zero skips), 
and the e2e module is compile-only.
   
   ### What the new tiers add
   
   | Tier | Tests | Runs in CI? | Backend |
   |---|---|---|---|
   | Unit suite (existing, now backend-switchable) | 127 | yes (fake) | fake 
**or real Glue** via `GlueTestClientFactory` |
   | `GlueCatalogMotoITCase` — catalog API over the real SDK wire path | 5 | 
yes | moto (Testcontainers) |
   | `GlueCatalogSqlMotoITCase` — `CREATE CATALOG` → SPI factory → planner → 
wire | 3 | yes | moto (Testcontainers) |
   | `GlueCatalogEndToEndITCase` — full user path incl. a data round-trip (real 
Flink job between catalog-registered tables) | 2 | compile-only 
(`-Prun-aws-end-to-end-tests` + credentials) | **real AWS Glue** |
   
   The e2e run also covers the two behaviours only real Glue exhibits: 
column-name lowercasing with case restoration through the catalog, and 
`dropDatabase` (whose emptiness check requires the UDF API that emulators do 
not implement).
   
   ### Bug found and fixed by the new coverage
   
   The e2e data round-trip immediately surfaced a contract violation no 
DDL-only test could reach: `GlueCatalog#getFunction` threw a bare 
`CatalogException` when the database did not exist, but the planner probes 
`getFunction` on the current database for **every SQL expression** and only 
falls back to built-in functions on `FunctionNotExistException` — so any 
expression query failed SQL validation whenever the session's current database 
was absent from Glue. Fixed in `38fd97b` with a regression test.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to