[icedtea-web] RFC: Fix cache entry tests

Omair Majid omajid at redhat.com
Tue May 13 15:26:58 UTC 2014


Hi,

* Jiri Vanek <jvanek at redhat.com> [2014-05-13 07:37]:
> Whoever touched CacheEntry, please see:
> 
> FAILED: verifyLocationIsSame(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyOriginalContentLengthIsSetCorrectly(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyNotCurrentWhenRemoteContentIsNewer(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyLastModifiedIsSetCorrectly(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyCurrentWhenCacheEntryHasSameTimeStamp(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyNotCachedIfContentLengthsDiffer(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyNotCachedIfFileIsAbsent(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyCachedIfContentLengthsAreSame(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyCachedIfOriginalContentLengthsAreSame(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyContentLengthIsSetCorrectly(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39
> FAILED: verifyLastUpdatedIsSetCorrectly(net.sourceforge.jnlp.cache.CacheEntryTest) String index out of range: -39

Sorry about this. For some reason, these errors did not occur on my
machine.

Actually, I am not even sure what the errors are. However, I see a
rather obvious mistake in the code: CacheUtil.getCacheFile is still
being called by the CacheEntry constructor in unit tests.

The attached patch fixes this. Okay to push?

Thanks,
Omair

-- 
PGP Key: 66484681 (http://pgp.mit.edu/)
Fingerprint = F072 555B 0A17 3957 4E95  0056 F286 F14F 6648 4681
-------------- next part --------------
diff --git a/netx/net/sourceforge/jnlp/cache/CacheEntry.java b/netx/net/sourceforge/jnlp/cache/CacheEntry.java
--- a/netx/net/sourceforge/jnlp/cache/CacheEntry.java
+++ b/netx/net/sourceforge/jnlp/cache/CacheEntry.java
@@ -60,10 +60,17 @@
         this.location = location;
         this.version = version;
 
+        this.properties = readCacheEntryInfo();
+    }
+
+    /**
+     * Seam for testing
+     */
+    PropertiesFile readCacheEntryInfo() {
         File infoFile = CacheUtil.getCacheFile(location, version);
         infoFile = new File(infoFile.getPath() + ".info"); // replace with something that can't be clobbered
 
-        properties = new PropertiesFile(infoFile, R("CAutoGen"));
+        return new PropertiesFile(infoFile, R("CAutoGen"));
     }
 
     /**
diff --git a/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java
--- a/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java
+++ b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java
@@ -48,6 +48,7 @@
 import java.nio.file.Files;
 
 import net.sourceforge.jnlp.Version;
+import net.sourceforge.jnlp.util.PropertiesFile;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -65,6 +66,14 @@
         protected File getCacheFile() {
             return cacheFile;
         }
+        @Override
+        protected PropertiesFile readCacheEntryInfo() {
+            try {
+                return new PropertiesFile(createFile(""));
+            } catch (IOException e) {
+                throw new AssertionError(e);
+            }
+        }
     }
 
     private URL url;
@@ -116,7 +125,7 @@
     public void verifyOriginalContentLengthIsSetCorrectly() {
         long ORIGINAL_CONTENT_LENGTH = 1000;
 
-        CacheEntry entry = new CacheEntry(url, version);
+        CacheEntry entry = new TestCacheEntry(url, version, null);
         entry.setOriginalContentLength(ORIGINAL_CONTENT_LENGTH);
 
         assertEquals(ORIGINAL_CONTENT_LENGTH, entry.getOriginalContentLength());
@@ -133,7 +142,7 @@
 
     @Test
     public void verifyNotCachedIfContentLengthsDiffer() throws IOException {
-        File cachedFile = createCacheFile("Foo");
+        File cachedFile = createFile("Foo");
 
         CacheEntry entry = new TestCacheEntry(url, version, cachedFile);
         entry.setRemoteContentLength(10000);
@@ -144,7 +153,7 @@
     @Test
     public void verifyCachedIfContentLengthsAreSame() throws IOException {
         String contents = "Foo";
-        File cachedFile = createCacheFile(contents);
+        File cachedFile = createFile(contents);
 
         CacheEntry entry = new TestCacheEntry(url, version, cachedFile);
         entry.setRemoteContentLength(contents.length());
@@ -156,7 +165,7 @@
     public void verifyCachedIfOriginalContentLengthsAreSame() throws IOException {
         String contents = "FooDECOMPRESSED";
         long compressedLength = 5;
-        File cachedFile = createCacheFile(contents);
+        File cachedFile = createFile(contents);
 
         CacheEntry entry = new TestCacheEntry(url, version, cachedFile);
         entry.setRemoteContentLength(compressedLength);
@@ -169,7 +178,7 @@
     public void verifyCurrentWhenCacheEntryHasSameTimeStamp() throws IOException {
         long lastModified = 10;
         String contents = "Foo";
-        File cachedFile = createCacheFile(contents);
+        File cachedFile = createFile(contents);
 
         CacheEntry entry = new TestCacheEntry(url, version, cachedFile);
         entry.setRemoteContentLength(contents.length());
@@ -183,7 +192,7 @@
         long oldTimeStamp = 10;
         long newTimeStamp = 100;
         String contents = "Foo";
-        File cachedFile = createCacheFile(contents);
+        File cachedFile = createFile(contents);
 
         CacheEntry entry = new TestCacheEntry(url, version, cachedFile);
         entry.setRemoteContentLength(contents.length());
@@ -192,7 +201,7 @@
         assertFalse(entry.isCurrent(newTimeStamp));
     }
 
-    protected File createCacheFile(String contents) throws IOException {
+    private static File createFile(String contents) throws IOException {
         File cachedFile = File.createTempFile("CacheEntryTest", null);
         Files.write(cachedFile.toPath(), contents.getBytes());
         cachedFile.deleteOnExit();


More information about the distro-pkg-dev mailing list