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
The following commit(s) were added to refs/heads/main by this push:
new 1598cfb636 Adjust output of 'rdftests' to allow for count of manifests
1598cfb636 is described below
commit 1598cfb63660956f43fbdc669972bc6a7fe3041d
Author: Andy Seaborne <[email protected]>
AuthorDate: Sat Jun 21 16:25:42 2025 +0100
Adjust output of 'rdftests' to allow for count of manifests
---
.../org/apache/jena/arq/junit/TextTestRunner.java | 14 ++++++----
.../jena/arq/junit/runners/RunnerOneManifest.java | 9 ++++++
.../jena/arq/junit/runners/SetupManifests.java | 19 ++++++++++---
.../apache/jena/atlas/junit/TextListenerLong.java | 32 +++++++++++++++++++++-
jena-cmds/src/test/java/arq/rdftests.java | 1 +
5 files changed, 65 insertions(+), 10 deletions(-)
diff --git
a/jena-arq/src/test/java/org/apache/jena/arq/junit/TextTestRunner.java
b/jena-arq/src/test/java/org/apache/jena/arq/junit/TextTestRunner.java
index 1780059f69..9cadcf6316 100644
--- a/jena-arq/src/test/java/org/apache/jena/arq/junit/TextTestRunner.java
+++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/TextTestRunner.java
@@ -22,10 +22,10 @@ import java.util.function.Function;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
-import org.junit.runner.Runner;
import org.apache.jena.arq.junit.manifest.Manifest;
import org.apache.jena.arq.junit.manifest.ManifestEntry;
+import org.apache.jena.arq.junit.runners.RunnerOneManifest;
import org.apache.jena.arq.junit.runners.SetupManifests;
import org.apache.jena.atlas.junit.TextListenerLong;
import org.apache.jena.sparql.expr.E_Function;
@@ -40,7 +40,8 @@ public class TextTestRunner {
public static void runOne(EarlReport report, String manifestFile,
Function<ManifestEntry, Runnable> testMaker) {
Manifest manifest = Manifest.parse(manifestFile);
- Runner top = SetupManifests.build(report, manifest, testMaker, null);
+ RunnerOneManifest top = SetupManifests.build(report, manifest,
testMaker, null);
+ int countManifests = top.getManifestCount();
NodeValue.VerboseWarnings = false ;
E_Function.WarnOnUnknownFunction = false ;
@@ -50,11 +51,14 @@ public class TextTestRunner {
// Count includes the manifest itself.
JUnitCore junitCore = new JUnitCore();
- junitCore.addListener(new TextListenerLong(System.out));
+ junitCore.addListener(new TextListenerLong(System.out,
countManifests));
//junit.addListener(new TextListenerDots(System.out));
+
Result result = junitCore.run(top);
- System.out.println("Run: "+result.getRunCount());
- System.out.println("Failures: "+result.getFailureCount());
+
+ System.out.println("Tests run:
"+(result.getRunCount()-countManifests));
+ System.out.println("Failures: "+result.getFailureCount());
+ System.out.println("Manifests: "+top.getManifestCount());
}
}
diff --git
a/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/RunnerOneManifest.java
b/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/RunnerOneManifest.java
index 3559b0eee5..eacc5bf880 100644
---
a/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/RunnerOneManifest.java
+++
b/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/RunnerOneManifest.java
@@ -31,6 +31,7 @@ public class RunnerOneManifest extends Runner {
private Description description;
private List<Runner> tests = new ArrayList<>();
private Manifest manifest;
+ private int manifestCount = -1;
public RunnerOneManifest(Manifest manifest, Description description) {
this.manifest = manifest;
@@ -54,4 +55,12 @@ public class RunnerOneManifest extends Runner {
description.addChild(runner.getDescription());
tests.add(runner);
}
+
+ public int getManifestCount() {
+ return this.manifestCount;
+ }
+
+ public void setManifestCount(int manifestCount) {
+ this.manifestCount = manifestCount;
+ }
}
diff --git
a/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/SetupManifests.java
b/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/SetupManifests.java
index f09127fa93..92558a271f 100644
---
a/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/SetupManifests.java
+++
b/jena-arq/src/test/java/org/apache/jena/arq/junit/runners/SetupManifests.java
@@ -41,21 +41,32 @@ public class SetupManifests {
/*package*/ static boolean PrintManifests = false;
/*package*/ static IndentedWriter out = IndentedWriter.stdout;
+ private static class ManifestStructure {
+ int manifestCount = 0 ;
+ }
+
/**
* Do one level of tests. test are {@link Runnable Runnables} that each
succeed or fail with an exception.
*/
- public static Runner build(EarlReport report, Manifest manifest,
Function<ManifestEntry, Runnable> maker, String prefix) {
- return buildForManifest(report, manifest, maker, prefix);
+ public static RunnerOneManifest build(EarlReport report, Manifest
manifest, Function<ManifestEntry, Runnable> maker, String prefix) {
+ ManifestStructure mStruct = new ManifestStructure();
+ RunnerOneManifest top = buildForManifest(mStruct, report, manifest,
maker, prefix);
+ top.setManifestCount(mStruct.manifestCount);
+ return top;
}
/**
* Do one level of tests, recurse into sub-levels.
* A test is a {@link Runnable} that succeeds or fails with an exception.
*/
- private static RunnerOneManifest buildForManifest(EarlReport report,
Manifest manifest, Function<ManifestEntry, Runnable> maker, String prefix) {
+ private static RunnerOneManifest buildForManifest(ManifestStructure
mStruct, EarlReport report, Manifest manifest, Function<ManifestEntry,
Runnable> maker, String prefix) {
Description description =
Description.createSuiteDescription(manifest.getName());
if ( PrintManifests )
out.println(manifest.getFileName()+" :: "+manifest.getName());
+
+ // Count - adjust later reporting
+ mStruct.manifestCount++;
+
RunnerOneManifest thisLevel = new RunnerOneManifest(manifest,
description);
Iterator<String> sub = manifest.includedManifests();
@@ -65,7 +76,7 @@ public class SetupManifests {
String mf = sub.next();
Manifest manifestSub = Manifest.parse(mf);
- Runner runner = buildForManifest(report, manifestSub, maker,
prefix);
+ Runner runner = buildForManifest(mStruct, report, manifestSub,
maker, prefix);
thisLevel.add(runner);
if ( PrintManifests )
out.decIndent();
diff --git
a/jena-base/src/test/java/org/apache/jena/atlas/junit/TextListenerLong.java
b/jena-base/src/test/java/org/apache/jena/atlas/junit/TextListenerLong.java
index 25bbc15db4..c391cd69d4 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/junit/TextListenerLong.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/junit/TextListenerLong.java
@@ -22,16 +22,19 @@ import java.io.PrintStream ;
import org.junit.internal.TextListener ;
import org.junit.runner.Description ;
+import org.junit.runner.Result;
import org.junit.runner.notification.Failure ;
/** JUnit4 test listener that prints one line per test */
public class TextListenerLong extends TextListener
{
private PrintStream out ;
+ private int manifestCount;
- public TextListenerLong(PrintStream writer) {
+ public TextListenerLong(PrintStream writer, int manifestCount) {
super(writer) ;
this.out = writer ;
+ this.manifestCount = manifestCount;
}
@Override
@@ -60,4 +63,31 @@ public class TextListenerLong extends TextListener
//out.print(each.getTrimmedTrace());
}
+ // TextListener does not expose getWriter()
+ private PrintStream getWriter() {
+ return this.out;
+ }
+
+ @Override
+ protected void printFooter(Result result) {
+ //super.printFooter(result);
+
+ int testCount = result.getRunCount();
+ // Adjust for manifests.
+ if ( manifestCount > 0 )
+ testCount = testCount - manifestCount;
+
+ // Copied from super, modified to count tests, not manifests.
+ if (result.wasSuccessful()) {
+ getWriter().println();
+ getWriter().print("OK");
+ getWriter().println(" (" + testCount + " test" + (testCount == 1 ?
"" : "s") + ")");
+
+ } else {
+ getWriter().println();
+ getWriter().println("FAILURES!!!");
+ getWriter().println("Tests run: " + testCount + ", Failures: " +
result.getFailureCount());
+ }
+ getWriter().println();
+ }
}
diff --git a/jena-cmds/src/test/java/arq/rdftests.java
b/jena-cmds/src/test/java/arq/rdftests.java
index e8d2112c15..f8bdde2635 100644
--- a/jena-cmds/src/test/java/arq/rdftests.java
+++ b/jena-cmds/src/test/java/arq/rdftests.java
@@ -192,6 +192,7 @@ public class rdftests extends CmdGeneral
static void oneManifest(String testManifest) {
TextTestRunner.runOne(testManifest, testMaker());
}
+
static void oneManifestEarl(EarlReport report, String testManifest) {
TextTestRunner.runOne(report, testManifest, testMaker());
}