Add 'src/be/nikiroo/utils/' from commit '46add0670fdee4bd936a13fe2448c5e20a7ffd0a'
[nikiroo-utils.git] / src / be / nikiroo / utils / test / TestLauncher.java
index bee3071d7fce7a8689a1be50492b2ca28f729e68..895b565ae0f607522e494d92c8bc87541c672f51 100644 (file)
@@ -40,6 +40,8 @@ public class TestLauncher {
 
        private List<TestLauncher> series;
        private List<TestCase> tests;
+       private TestLauncher parent;
+
        private int columns;
        private String okString;
        private String koString;
@@ -50,6 +52,7 @@ public class TestLauncher {
        protected int total;
 
        private int currentSeries = 0;
+       private boolean details = false;
 
        /**
         * Create a new {@link TestLauncher} with default parameters.
@@ -90,13 +93,39 @@ public class TestLauncher {
                cont = true;
        }
 
+       /**
+        * Display the details of the errors
+        * 
+        * @return TRUE to display them, false to simply mark the test as failed
+        */
+       public boolean isDetails() {
+               if (parent != null) {
+                       return parent.isDetails();
+               }
+
+               return details;
+       }
+
+       /**
+        * Display the details of the errors
+        * 
+        * @param details
+        *            TRUE to display them, false to simply mark the test as failed
+        */
+       public void setDetails(boolean details) {
+               if (parent != null) {
+                       parent.setDetails(details);
+               }
+
+               this.details = details;
+       }
+
        /**
         * Called before actually starting the tests themselves.
         * 
         * @throws Exception
         *             in case of error
         */
-       @SuppressWarnings("unused")
        protected void start() throws Exception {
        }
 
@@ -106,7 +135,6 @@ public class TestLauncher {
         * @throws Exception
         *             in case of error
         */
-       @SuppressWarnings("unused")
        protected void stop() throws Exception {
        }
 
@@ -116,6 +144,7 @@ public class TestLauncher {
 
        protected void addSeries(TestLauncher series) {
                this.series.add(series);
+               series.parent = this;
        }
 
        /**
@@ -287,11 +316,12 @@ public class TestLauncher {
                name = prefix(depth, false)
                                + (name == null ? "" : name).replace("\t", "    ");
 
-               while (name.length() < columns - 11) {
-                       name += ".";
+               StringBuilder dots = new StringBuilder();
+               while ((name.length() + dots.length()) < columns - 11) {
+                       dots.append('.');
                }
 
-               System.out.print(name);
+               System.out.print(name + dots.toString());
        }
 
        /**
@@ -305,12 +335,14 @@ public class TestLauncher {
        private void print(int depth, Throwable error) {
                if (error != null) {
                        System.out.println(" " + koString);
-                       StringWriter sw = new StringWriter();
-                       PrintWriter pw = new PrintWriter(sw);
-                       error.printStackTrace(pw);
-                       String lines = sw.toString();
-                       for (String line : lines.split("\n")) {
-                               System.out.println(prefix(depth, false) + "\t\t" + line);
+                       if (isDetails()) {
+                               StringWriter sw = new StringWriter();
+                               PrintWriter pw = new PrintWriter(sw);
+                               error.printStackTrace(pw);
+                               String lines = sw.toString();
+                               for (String line : lines.split("\n")) {
+                                       System.out.println(prefix(depth, false) + "\t\t" + line);
+                               }
                        }
                } else {
                        System.out.println(" " + okString);