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 a9d93b10129f22766627c22a7c583f61db0b3dd4
Author: Andy Seaborne <[email protected]>
AuthorDate: Wed Dec 10 13:29:07 2025 +0000

    Be robust in diagnostic output
---
 .../java/org/apache/jena/arq/junit/LibTest.java    | 13 ++++++--
 .../arq/junit/sparql/tests/QuerySyntaxTest.java    | 14 +++-----
 .../jena/arq/junit/sparql/tests/SparqlTestLib.java | 21 +++++++-----
 .../arq/junit/sparql/tests/UpdateSyntaxTest.java   | 39 ++++++++++++----------
 .../java/org/apache/jena/atlas/lib/IRILib.java     |  2 +-
 5 files changed, 48 insertions(+), 41 deletions(-)

diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/LibTest.java 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/LibTest.java
index f54c730018..59e51a40b8 100644
--- a/jena-arq/src/test/java/org/apache/jena/arq/junit/LibTest.java
+++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/LibTest.java
@@ -20,6 +20,7 @@ package org.apache.jena.arq.junit;
 
 import org.apache.jena.atlas.io.IO;
 import org.apache.jena.atlas.lib.IRILib;
+import org.apache.jena.http.HttpOp;
 
 public class LibTest {
 
@@ -36,8 +37,14 @@ public class LibTest {
 
     /** Print a (small) file, with line numbers. The file is read into memory. 
*/
     public static void printFile(String filenameOrIRI) {
-        String filename = IRILib.IRIToFilename(filenameOrIRI);
-        String x = IO.readWholeFileAsUTF8(filename);
-        printString(x) ;
+        try {
+            String filename = IRILib.IRIToFilename(filenameOrIRI);
+            String x = IO.readWholeFileAsUTF8(filename);
+            printString(x) ;
+        } catch (RuntimeException ex) {
+            // Try HTTP
+            String x = HttpOp.httpGetString(filenameOrIRI);
+            printString(x) ;
+        }
     }
 }
diff --git 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QuerySyntaxTest.java
 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QuerySyntaxTest.java
index 57b3e8a57f..7c0a2410ae 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QuerySyntaxTest.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QuerySyntaxTest.java
@@ -46,29 +46,23 @@ public class QuerySyntaxTest extends AbstractManifestTest {
         try {
             Query query = SparqlTestLib.queryFromEntry(manifestEntry, 
testSyntax);
             if ( !expectLegalSyntax ) {
-                String filename = SparqlTestLib.queryFile(manifestEntry);
-                System.out.printf("==== %s\n", "Negative Syntax test");
+                String filename = SparqlTestLib.getAction(manifestEntry);
+                System.out.printf("==== %s\n", "Negative syntax test");
                 LibTest.printFile(filename);
                 fail("Expected parse failure");
             }
         } catch (QueryException qEx) {
             if ( expectLegalSyntax ) {
-                // Development
-                // System.err.println("AssertionError: 
"+super.manifestEntry.getURI()+" type="+manifestEntry.getTestType());
-                String filename = SparqlTestLib.queryFile(manifestEntry);
-                System.out.printf("==== %s\n", "Positive Syntax test");
+                String filename = SparqlTestLib.getAction(manifestEntry);
+                System.out.printf("==== %s\n", "Positive syntax test");
                 LibTest.printFile(filename);
                 throw qEx;
             }
         } catch (AssertionError ex) {
-            // Development
-            // System.err.println("AssertionError: 
"+super.manifestEntry.getURI()+" type="+manifestEntry.getTestType());
             throw ex;
         } catch (Exception ex) {
             ex.printStackTrace();
             fail("Exception: " + ex.getClass().getName() + ": " + 
ex.getMessage());
         }
     }
-
-
 }
diff --git 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java
 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java
index c6c80d4ecd..0af820b747 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java
@@ -78,14 +78,19 @@ class SparqlTestLib {
         throw new TestSetupException("Not a string or URI for "+context+": 
"+node);
     }
 
-    static String queryFile(ManifestEntry entry) {
+    // For tests which directly have the action as a URi to a file.
+    static String getAction(ManifestEntry entry) {
         Graph graph = entry.getGraph();
-        Node testResource = entry.getEntry();
-        Node queryFile = G.getZeroOrOneSP(graph, testResource, 
VocabTestQuery.query.asNode());
-        if ( queryFile != null )
-            return getStringOrURI(queryFile, "query file");
+        if ( entry.getAction().isBlank() )
+            throw new TestSetupException("action :: Blank node where URI 
expected");
+        return entry.getAction().getURI();
+    }
 
-        // No query property - must be this action node
+    // Query string - either on the action or as [ qt:query ...]
+    static String queryFile(ManifestEntry entry) {
+        Graph graph = entry.getGraph();
+        if ( entry.getAction().isURI() )
+            return entry.getAction().getURI();
 
         if ( entry.getAction().isBlank() ) {
             // action -> :query
@@ -94,7 +99,7 @@ class SparqlTestLib {
                 throw new TestSetupException("Can't determine the query from 
the action");
             return x.getURI();
         }
-        return entry.getAction().getURI();
+        throw new TestSetupException("Can't determine the query. Not a blank 
node or a URI. "+entry.getAction());
     }
 
     static Query queryFromEntry(ManifestEntry entry) {
@@ -164,14 +169,12 @@ class SparqlTestLib {
     }
 
     static UpdateRequest updateFromEntry(ManifestEntry entry, Syntax syntax) {
-
         if ( queryFile(entry) == null ) {
             SparqlTestLib.setupFailure("Query test file is null");
             return null;
         }
         String fn = queryFile(entry);
         Syntax syn = (syntax!=null) ? syntax : guessFileSyntax(fn);
-
         UpdateRequest request = UpdateFactory.read(fn, syn);
         return request;
     }
diff --git 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateSyntaxTest.java
 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateSyntaxTest.java
index 643890db9f..e74e6f697d 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateSyntaxTest.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateSyntaxTest.java
@@ -20,14 +20,12 @@ package org.apache.jena.arq.junit.sparql.tests;
 
 import static org.junit.jupiter.api.Assertions.fail;
 
+import org.apache.jena.arq.junit.LibTest;
 import org.apache.jena.arq.junit.manifest.AbstractManifestTest;
 import org.apache.jena.arq.junit.manifest.ManifestEntry;
-import org.apache.jena.query.QueryException ;
 import org.apache.jena.query.Syntax;
 
-public class UpdateSyntaxTest extends AbstractManifestTest
-{
-    static int count = 0 ;
+public class UpdateSyntaxTest extends AbstractManifestTest {
     final boolean expectLegalSyntax ;
     final Syntax testSyntax;
 
@@ -38,22 +36,27 @@ public class UpdateSyntaxTest extends AbstractManifestTest
     }
 
     @Override
-    public void runTest()
-    {
+    public void runTest() {
         try {
             SparqlTestLib.updateFromEntry(manifestEntry, testSyntax) ;
-            if ( ! expectLegalSyntax )
-                fail("Expected parse failure") ;
-        }
-        catch (QueryException qEx)
-        {
-            if ( expectLegalSyntax )
-                throw qEx ;
-        }
-
-        catch (Exception ex)
-        {
-            fail( "Exception: "+ex.getClass().getName()+": "+ex.getMessage()) ;
+            if ( ! expectLegalSyntax ) {
+                String filename = SparqlTestLib.getAction(manifestEntry);
+                System.out.printf("==== %s\n", "Negative update syntax test");
+                LibTest.printFile(filename);
+                fail("Expected parse failure");
+            }
+        } catch (RuntimeException ex) {
+            if ( expectLegalSyntax ) {
+                String filename = SparqlTestLib.getAction(manifestEntry);
+                System.out.printf("==== %s\n", "Positive update syntax test");
+                LibTest.printFile(filename);
+                throw ex;
+            }
+        } catch (AssertionError ex) {
+            throw ex;
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            fail("Exception: " + ex.getClass().getName() + ": " + 
ex.getMessage());
         }
     }
 }
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/IRILib.java 
b/jena-base/src/main/java/org/apache/jena/atlas/lib/IRILib.java
index 12451448bf..e465f09b95 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/IRILib.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/IRILib.java
@@ -172,7 +172,7 @@ public class IRILib
 
     /** Convert a file: IRI to a filename */
     public static String IRIToFilename(String iri) {
-        if ( ! isFilename("file:") )
+        if ( ! isFilename(iri) )
             throw new AtlasException("Not a file: URI: "+iri);
 
         String fn;

Reply via email to