[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