You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2025/12/11 10:53:59 UTC
(jena) 02/03: Don't reject non-file URLs in syntax test entries
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 6d4265846c31fc4ee2cc5a566d22cc73e5c878b7
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Tue Dec 9 17:25:54 2025 +0000
Don't reject non-file URLs in syntax test entries
---
.../apache/jena/arq/junit/riot/RiotEvalTest.java | 1 -
.../apache/jena/arq/junit/riot/RiotSyntaxTest.java | 46 +++++++++++++---------
.../apache/jena/riot/stream/TestStreamManager.java | 33 ++++++----------
3 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotEvalTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotEvalTest.java
index 83ff832956..ec348b0083 100644
--- a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotEvalTest.java
+++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotEvalTest.java
@@ -78,7 +78,6 @@ public class RiotEvalTest extends AbstractManifestTest {
StreamRDF dest = StreamRDFLib.graph(graph);
try {
parser.accept(dest);
-
if ( ! positiveTest ) {
String fragment = fragment(manifestEntry.getURI());
if ( fragment != null )
diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotSyntaxTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotSyntaxTest.java
index 0b3d0b9a83..092e9a5db1 100644
--- a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotSyntaxTest.java
+++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotSyntaxTest.java
@@ -27,6 +27,8 @@ import org.apache.jena.arq.junit.manifest.ManifestEntry;
import org.apache.jena.atlas.io.IO;
import org.apache.jena.atlas.lib.FileOps;
import org.apache.jena.atlas.lib.IRILib;
+import org.apache.jena.atlas.lib.Lib;
+import org.apache.jena.irix.IRIs;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RiotException;
import org.apache.jena.riot.RiotNotFoundException;
@@ -37,7 +39,7 @@ import org.apache.jena.shared.NotFoundException;
public class RiotSyntaxTest extends AbstractManifestTest {
final private boolean expectLegalSyntax;
- final private String filename;
+ final private String actionURI;
final private String baseIRI;
final private Lang lang;
final private Consumer<StreamRDF> parser;
@@ -48,36 +50,39 @@ public class RiotSyntaxTest extends AbstractManifestTest {
public RiotSyntaxTest(ManifestEntry entry, String baseIRI, Lang lang, boolean positiveTest) {
super(entry);
- this.filename = entry.getAction().getURI();
- this.baseIRI = ( baseIRI == null ) ? filename : baseIRI;
+ this.actionURI = entry.getAction().getURI();
+ this.baseIRI = ( baseIRI == null ) ? actionURI : baseIRI;
this.expectLegalSyntax = positiveTest;
this.lang = lang;
boolean silentWarnings = RiotTestsConfig.allowWarnings(manifestEntry);
parser = ( baseIRI != null )
- ? ParsingStepForTest.parse(filename, baseIRI, lang, silentWarnings)
- : ParsingStepForTest.parse(filename, lang, silentWarnings);
-
+ ? ParsingStepForTest.parse(actionURI, baseIRI, lang, silentWarnings)
+ : ParsingStepForTest.parse(actionURI, lang, silentWarnings);
}
@Override
public void runTest() {
StreamRDF stream = StreamRDFLib.sinkNull();
- // Check so the parse step does not confuse missing with bad syntax.
- String fn = IRILib.IRIToFilename(filename);
- if ( ! FileOps.exists(fn) ) {
- throw new NotFoundException("File not found: "+filename) {
- @Override public Throwable fillInStackTrace() { return this; }
- };
+ // If a file, check so the parse step does not confuse missing with bad syntax.
+ String uriScheme = IRIs.scheme(actionURI);
+ boolean isLocal = "file".equals(Lib.lowercase(uriScheme));
+ String fn = isLocal ? IRILib.IRIToFilename(actionURI) : actionURI;
+ if (isLocal) {
+ if ( ! FileOps.exists(fn) ) {
+ throw new NotFoundException("File not found: "+actionURI) {
+ @Override public Throwable fillInStackTrace() { return this; }
+ };
+ }
}
+
try {
parser.accept(stream);
if (! expectLegalSyntax ) {
- String reason = "Parsing succeeded in a bad syntax test";
+ String reason = "Parsing succeeded in a bad syntax test: "+actionURI;
outputFailure(reason, fn, null);
- String s = IO.readWholeFileAsUTF8(fn);
- System.out.println();
- System.out.println("== "+filename);
- System.out.println(s);
+ if ( isLocal )
+ printIfFile(reason, actionURI, fn);
+ System.out.println("== "+actionURI);
fail(reason);
}
} catch(RiotNotFoundException ex) {
@@ -91,13 +96,16 @@ public class RiotSyntaxTest extends AbstractManifestTest {
}
}
- private void outputFailure(String reason, String fn, Throwable th) {
+ private void printIfFile(String reason, String uri, String fn) {
String s = IO.readWholeFileAsUTF8(fn);
System.err.println();
- System.err.println("== "+filename+ " -- "+reason);
+ System.err.println("== "+actionURI+ " -- "+reason);
System.err.print(s);
if ( !s.endsWith("\n") )
System.err.println();
+ }
+
+ private void outputFailure(String reason, String fn, Throwable th) {
fail("Parsing succeeded in a bad syntax test");
}
}
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
index ade7505469..7f97cc34e1 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/stream/TestStreamManager.java
@@ -40,8 +40,8 @@ import org.apache.jena.riot.system.stream.LocatorHTTP;
import org.apache.jena.riot.system.stream.StreamManager;
import org.apache.jena.sparql.util.Context;
-public class TestStreamManager
-{
+public class TestStreamManager {
+
private static final String directory = "testing/RIOT/StreamManager";
private static final String absDirectory = new File(directory).getAbsolutePath();
@@ -50,8 +50,8 @@ public class TestStreamManager
private static StreamManager streamMgrNull;
private static StreamManager streamMgrStd;
- @BeforeAll static public void beforeClass()
- {
+ @BeforeAll
+ static public void beforeClass() {
streamMgrStd = StreamManager.get();
streamMgrDir = new StreamManager();
// Not current directory.
@@ -66,13 +66,12 @@ public class TestStreamManager
streamMgrNull = new StreamManager();
}
- @AfterAll static public void afterClass()
- {
+ @AfterAll
+ static public void afterClass() {
StreamManager.setGlobal(streamMgrStd);
}
- private static Context context(StreamManager streamMgr)
- {
+ private static Context context(StreamManager streamMgr) {
Context context = new Context();
context.put(SysRIOT.sysStreamManager, streamMgr);
return context;
@@ -121,31 +120,25 @@ public class TestStreamManager
@Test public void fm_read_14() { read("file:D.rj"); }
@Test public void fm_read_15() { read("file:D.jsonld"); }
- // TriG
- // NQuads
-
- private static void open(StreamManager streamMgr, String dataName, Context context)
- {
+ private static void open(StreamManager streamMgr, String dataName, Context context) {
+ StreamManager sMgr = StreamManager.get();
StreamManager.setGlobal(streamMgr);
- try {
- TypedInputStream in = RDFDataMgr.open(dataName, StreamManager.get(context));
+ try (TypedInputStream in = RDFDataMgr.open(dataName, StreamManager.get(context))) {
assertNotNull(in);
IO.close(in);
} finally {
- StreamManager.setGlobal(streamMgrStd);
+ StreamManager.setGlobal(sMgr);
}
}
- private static void read(String dataName)
- {
+ private static void read(String dataName) {
try {
StreamManager.setGlobal(streamMgrDir);
Model m = ModelFactory.createDefaultModel();
RDFDataMgr.read(m, dataName);
- assertNotEquals(0, m.size(),()->"Read "+dataName);
+ assertNotEquals(0, m.size(), () -> "Read " + dataName);
} finally {
StreamManager.setGlobal(streamMgrStd);
}
}
}
-