]> source.dussan.org Git - poi.git/commitdiff
Fix unit test which failed after new corrupted file was added.
authorDominik Stadler <centic@apache.org>
Sun, 16 Feb 2014 08:39:47 +0000 (08:39 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 16 Feb 2014 08:39:47 +0000 (08:39 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1568741 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java

index 8f7bbd5b05312e8c04969bfa47d95a12cde7c008..53c2948d70fe8e41d13f417be0334bb016047932 100644 (file)
@@ -20,12 +20,14 @@ package org.apache.poi.hpsf.basic;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileFilter;
+import java.io.IOException;
 import java.io.InputStream;
 
 import junit.framework.TestCase;
 
-import org.apache.poi.hpsf.PropertySetFactory;
 import org.apache.poi.POIDataSamples;
+import org.apache.poi.hpsf.HPSFException;
+import org.apache.poi.hpsf.PropertySetFactory;
 
 /**
  * <p>Tests some HPSF functionality by reading all property sets from all files
@@ -35,42 +37,53 @@ import org.apache.poi.POIDataSamples;
  * @author Rainer Klute (klute@rainer-klute.de)
  */
 public class TestReadAllFiles extends TestCase {
+    private static String[] excludes = new String[] {
+        "TestZeroLengthCodePage.mpp",
+    };
 
     /**
      * <p>This test methods reads all property set streams from all POI
      * filesystems in the "data" directory.</p>
+     * 
+     * @throws IOException 
+     * @throws HPSFException
      */
-    public void testReadAllFiles()
+    public void testReadAllFiles() throws IOException, HPSFException
     {
         POIDataSamples _samples = POIDataSamples.getHPSFInstance();
         final File dataDir = _samples.getFile("");
         final File[] fileList = dataDir.listFiles(new FileFilter()
             {
+                @Override
                 public boolean accept(final File f)
                 {
+                    // exclude files that we know will fail
+                    for(String exclude : excludes) {
+                        if(f.getAbsolutePath().endsWith(exclude)) {
+                            return false;
+                        }
+                    }
+
                     return f.isFile();
                 }
             });
-        try
+
+        for (int i = 0; i < fileList.length; i++)
         {
-            for (int i = 0; i < fileList.length; i++)
-            {
-                final File f = fileList[i];
-                /* Read the POI filesystem's property set streams: */
-                final POIFile[] psf1 = Util.readPropertySets(f);
+            final File f = fileList[i];
+            /* Read the POI filesystem's property set streams: */
+            final POIFile[] psf1 = Util.readPropertySets(f);
 
-                for (int j = 0; j < psf1.length; j++)
-                {
-                    final InputStream in =
-                        new ByteArrayInputStream(psf1[j].getBytes());
+            for (int j = 0; j < psf1.length; j++)
+            {
+                final InputStream in =
+                    new ByteArrayInputStream(psf1[j].getBytes());
+                try {
                     PropertySetFactory.create(in);
+                } catch (Exception e) {
+                    throw new IOException("While handling file: " + f + " at " + j, e);
                 }
             }
         }
-        catch (Throwable t)
-        {
-            final String s = org.apache.poi.hpsf.Util.toString(t);
-            fail(s);
-        }
     }
 }