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());
     }

Reply via email to