From: Ole Streicher <olebole@debian.org>
Date: Mon, 20 Feb 2017 11:01:05 +0100
Subject: Exclude some tests

FormatsTest and StorageTest depend on fits and votable, which shall
not be build-deps to avoid circular dependencies. So, during build we can't
test them. However, for CI tests we have everything available, and they
will be included in the test.

The FormatsTest needs to be adjusted to the supported formats.
---
 build.xml                                          | 11 ++++++
 src/main/uk/ac/starlink/table/StarTableOutput.java |  2 --
 .../uk/ac/starlink/table/gui/TableSaveChooser.java |  1 -
 .../uk/ac/starlink/table/FormatsTest.java          | 39 ++--------------------
 4 files changed, 14 insertions(+), 39 deletions(-)

diff --git a/build.xml b/build.xml
index ad1ebb1..42a800a 100644
--- a/build.xml
+++ b/build.xml
@@ -315,6 +315,11 @@
                classname="uk.ac.starlink.util.DataSource"/>
     <fail message="No Util available" unless="util.present"/>
 
+    <!-- Need Votable and Fits for some testcases, not essential -->
+    <available property="votable.present"
+               classpathref="classpath"
+               classname="uk.ac.starlink.votable.VOTableWriter"/>
+
     <!-- Need JUnit for testcases, not essential -->
     <available property="junit.present"
                classpathref="classpath"
@@ -933,6 +938,9 @@
 
       <classpath refid="tests-classpath"/>
       <exclude name="uk/ac/starlink/table/join/SkyPixellatorTest.java"/>
+      <exclude name="uk/ac/starlink/table/FormatsTest.java" unless="votable.present"/>
+      <exclude name="uk/ac/starlink/table/HealpixTest.java" unless="votable.present"/>
+      <exclude name="uk/ac/starlink/table/storage/StorageTest.java" unless="votable.present"/>
 
     </javac>
 
@@ -971,6 +979,9 @@
         <fileset dir="${tests.dir}">
           <include name="**/*Test*"/>
           <exclude name="uk/ac/starlink/table/join/SkyPixellatorTest.java"/>
+          <exclude name="uk/ac/starlink/table/FormatsTest.java" unless="votable.present"/>
+          <exclude name="uk/ac/starlink/table/HealpixTest.java" unless="votable.present"/>
+          <exclude name="uk/ac/starlink/table/storage/StorageTest.java" unless="votable.present"/>
         </fileset>
       </batchtest>
 
diff --git a/src/main/uk/ac/starlink/table/StarTableOutput.java b/src/main/uk/ac/starlink/table/StarTableOutput.java
index c37ff00..40fd688 100644
--- a/src/main/uk/ac/starlink/table/StarTableOutput.java
+++ b/src/main/uk/ac/starlink/table/StarTableOutput.java
@@ -747,8 +747,6 @@ public class StarTableOutput {
                  "votable(format=BINARY2,inline=false)" );
         map.put( "votable-fits-inline",
                  "votable(format=FITS,inline=true)" );
-        map.put( "ecsv-space", "ecsv(delimiter=space)" );
-        map.put( "ecsv-comma", "ecsv(delimiter=comma)" );
         map.put( "csv-noheader", "csv(header=false)" );
         map.put( "html-element", "html(standalone=false)" );
         map.put( "latex-document", "latex(standalone=true)" );
diff --git a/src/main/uk/ac/starlink/table/gui/TableSaveChooser.java b/src/main/uk/ac/starlink/table/gui/TableSaveChooser.java
index 2510e29..6ad68b2 100644
--- a/src/main/uk/ac/starlink/table/gui/TableSaveChooser.java
+++ b/src/main/uk/ac/starlink/table/gui/TableSaveChooser.java
@@ -474,7 +474,6 @@ public abstract class TableSaveChooser extends JPanel {
         list.add( "votable(format=BINARY2)" );
         if ( ! multi ) {
             list.add( "csv(header=false)" );
-            list.add( "ecsv(delimiter=comma)" );
             list.add( "latex(standalone=true)" );
         };
         list.add( "html(standalone=true)" );
diff --git a/src/testcases/uk/ac/starlink/table/FormatsTest.java b/src/testcases/uk/ac/starlink/table/FormatsTest.java
index 7c62d04..cd65ce9 100644
--- a/src/testcases/uk/ac/starlink/table/FormatsTest.java
+++ b/src/testcases/uk/ac/starlink/table/FormatsTest.java
@@ -17,10 +17,6 @@ import java.util.logging.Logger;
 import junit.framework.AssertionFailedError;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import uk.ac.starlink.ecsv.EcsvTableBuilder;
-import uk.ac.starlink.ecsv.EcsvTableWriter;
-import uk.ac.starlink.feather.FeatherTableBuilder;
-import uk.ac.starlink.feather.FeatherTableWriter;
 import uk.ac.starlink.fits.AbstractWideFits;
 import uk.ac.starlink.fits.BintableStarTable;
 import uk.ac.starlink.fits.ColFitsTableWriter;
@@ -93,8 +89,6 @@ public class FormatsTest extends TableCase {
         Logger.getLogger( "uk.ac.starlink.table" ).setLevel( Level.WARNING );
         Logger.getLogger( "uk.ac.starlink.fits" ).setLevel( Level.SEVERE );
         Logger.getLogger( "uk.ac.starlink.votable" ).setLevel( Level.WARNING );
-        Logger.getLogger( "uk.ac.starlink.feather" ).setLevel( Level.SEVERE );
-        Logger.getLogger( "uk.ac.starlink.ecsv" ).setLevel( Level.SEVERE );
 
         FitsConstants.configureHierarch();
     }
@@ -191,8 +185,8 @@ public class FormatsTest extends TableCase {
         String[] fnames = new String[] {
             "fits-basic", "fits-plus", "fits-var", "fits-healpix",
             "colfits-basic", "colfits-plus",
-            "votable", "ecsv", "feather", "text", "ascii", "csv",
-            "ipac", "tst", "html", "latex", "mirage",
+            "votable", "text", "ascii", "csv",
+            "ipac", "tst", "html", "latex",
         };
         for ( String fname : fnames ) {
             assertNotNull( tout.getHandler( fname ) );
@@ -202,7 +196,7 @@ public class FormatsTest extends TableCase {
         StarTableFactory tfact = new StarTableFactory();
         String[] bnames = new String[] {
             "fits", "colfits-basic", "colfits-plus",
-            "votable", "cdf", "ecsv", "feather",
+            "votable",
         };
         for ( String bname : bnames ) {
             assertNotNull( tfact.getTableBuilder( bname ) );
@@ -264,10 +258,6 @@ public class FormatsTest extends TableCase {
             "colfits-basic",
             "FITS",
             "VOTable",
-            "CDF",
-            "ECSV",
-            "feather",
-            "GBIN",
         };
         String[] knownFormats = new String[] {
             "FITS-plus",
@@ -275,10 +265,6 @@ public class FormatsTest extends TableCase {
             "colfits-basic",
             "FITS",
             "VOTable",
-            "CDF",
-            "ECSV",
-            "feather",
-            "GBIN",
             "ASCII",
             "CSV",
             "TST",
@@ -328,8 +314,6 @@ public class FormatsTest extends TableCase {
             "colfits-plus",
             "colfits-basic",
             "votable",
-            "ecsv",
-            "feather",
             "text",
             "ascii",
             "csv",
@@ -337,7 +321,6 @@ public class FormatsTest extends TableCase {
             "tst",
             "html",
             "latex",
-            "mirage",
         };
         String[] gotFormats = new String[ handlers.size() ];
         for ( int j = 0; j < handlers.size(); j++ ) {
@@ -524,16 +507,6 @@ public class FormatsTest extends TableCase {
         }
         exerciseReadWrite( new VOTableWriter(),
                            new VOTableBuilder(), "votable" );
-        exerciseReadWrite( EcsvTableWriter.SPACE_WRITER,
-                           new EcsvTableBuilder(), "ecsv" );
-        exerciseReadWrite( EcsvTableWriter.COMMA_WRITER,
-                           new EcsvTableBuilder(), "ecsv" );
-        exerciseReadWrite(
-            new FeatherTableWriter( false, StoragePolicy.PREFER_MEMORY ),
-            new FeatherTableBuilder(), "feather" );
-        exerciseReadWrite(
-            new FeatherTableWriter( true, StoragePolicy.PREFER_MEMORY ),
-            new FeatherTableBuilder(), "feather" );
         exerciseReadWrite( new AsciiTableWriter(),
                            new AsciiTableBuilder(), "text" );
         exerciseReadWrite( new CsvTableWriter( true ),
@@ -591,12 +564,6 @@ public class FormatsTest extends TableCase {
         else if ( "ipac".equals( equalMethod ) ) {
             assertIpacTableEquals( t1, t2 );
         }
-        else if ( "ecsv".equals( equalMethod ) ) {
-            assertEcsvTableEquals( t1, t2 );
-        }
-        else if ( "feather".equals( equalMethod ) ) {
-            assertFeatherTableEquals( t1, t2 );
-        }
         else if ( "exact".equals( equalMethod ) ) {
             assertTableEquals( t1, t2 );
         }
