This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 46dc8347c76c8ab9e63f40700ec0ed4ccc4562f6 Author: Andy Seaborne <[email protected]> AuthorDate: Wed Feb 25 16:57:07 2026 +0000 Check for missing test manifest entries --- .../org/apache/jena/arq/junit/manifest/Manifest.java | 17 +++++++++++++++-- .../jena/arq/junit/textrunner/ManifestHolder.java | 4 ++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java index bbb422ebd1..92e31fb0f8 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java @@ -65,8 +65,7 @@ public class Manifest } catch (RuntimeException ex) { // Exit on error. log.error("Error reading manifest: "+filenameOrURI); - System.exit(1); - throw ex; + throw new TestSetupException("Error reading manifest: "+filenameOrURI); } Manifest manifest = new Manifest(manifestRDF); return manifest; @@ -112,6 +111,20 @@ public class Manifest if ( entriesNode == null ) return; List<Node> items = G.rdfList(manifestGraph, entriesNode); + + List<Node> missingEntries = items.stream().filter(entry -> ! G.contains(manifestGraph, entry, null, null)).toList(); + if ( ! missingEntries.isEmpty() ) { + missingEntries.forEach(entry->{ + String x = null; + if ( entry.isURI() ) + x = manifestGraph.getPrefixMapping().shortForm(entry.getURI()); + if ( x == null ) + x = entry.toString(); + log.error("Can't find entry for "+x); + }); + throw new TestSetupException("Missing manifest entries"); + } + items.forEach(entry->{ String testName = getLiteral(entry, TestManifest.name.asNode()); Node testType = G.getZeroOrOneSP(manifestGraph, entry, RDF.Nodes.type); diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/textrunner/ManifestHolder.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/textrunner/ManifestHolder.java index 195017c698..b6da50d6f2 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/textrunner/ManifestHolder.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/textrunner/ManifestHolder.java @@ -31,6 +31,7 @@ import org.apache.jena.arq.junit.Scripts; import org.apache.jena.arq.junit.manifest.ManifestProcessor; import org.apache.jena.arq.junit.manifest.TestMaker; import org.apache.jena.arq.junit.manifest.TestMakers; +import org.apache.jena.arq.junit.manifest.TestSetupException; import org.apache.jena.atlas.lib.StreamOps; import org.apache.jena.riot.RiotNotFoundException; import org.apache.jena.shared.JenaException; @@ -69,6 +70,9 @@ class ManifestHolder { System.err.println("Not found: "+fn); // Exceptions are swallowed by JUnit5. throw new RiotNotFoundException("Manifest "+fn); + } catch (TestSetupException ex) { + System.exit(1); + return null; } catch (Exception ex) { ex.printStackTrace(); return null;
