[rfc] icedtea-web minor fix for two unittests
Adam Domurad
adomurad at redhat.com
Tue Dec 18 06:45:35 PST 2012
On 12/18/2012 09:34 AM, Jiri Vanek wrote:
> On 12/17/2012 05:59 PM, Adam Domurad wrote:
>> On 12/17/2012 10:14 AM, Jiri Vanek wrote:
>>> This tests were wrongly adapted for lates ITW. And so they were
>>> incorrectly failing. This should fix them.
>>>
>>> J.
>>
>> Thanks for looking into it!
>>
>>>
>>> diff -r 1fe2a4f7981f
>>> tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
>>> ---
>>> a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
>>> Tue Dec 11 20:32:26 2012 +0100
>>> +++
>>> b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java
>>> Mon Dec 17 16:09:22 2012 +0100
>>> @@ -68,6 +68,24 @@
>>> throw new RuntimeException(ex);
>>> }
>>> }
>>> +
>>> + private class DummyJNLPFile extends JNLPFile{
>>> +
>>> + @Override
>>> + public ResourcesDesc getResources() {
>>> + return new ResourcesDesc(null, new Locale[0], new
>>> String[0], new String[0]);
>>> + }
>>> +
>>> + @Override
>>> + public URL getCodeBase() {
>>> + return CODEBASE_URL;
>>> + }
>>> +
>>> + @Override
>>> + public SecurityDesc getSecurity() {
>>> + return new SecurityDesc(this,
>>> SecurityDesc.SANDBOX_PERMISSIONS, null);
>>> + }
>>> + };
>>
>> +1
>>
>>> private static final String isWSA = "isWebstartApplication";
>>>
>>> static void setStaticField(Field field, Object newValue)
>>> throws Exception {
>>> @@ -97,47 +115,73 @@
>>> public void testResourceLoadSuccessCachingApplication() throws
>>> Exception {
>>> setWSA();
>>> //we are testing new resource not in cache
>>> - testResourceLoadSuccessCaching("Main.class");
>>> + testResourceLoadSuccessCaching2("Main.class");
>>
>> Just a nitpick,
>>
>> testResourceLoadSuccessCachingApplication calls
>> testResourceLoadSuccessCaching2
>> but testResourceLoadSuccessCachingApplication2 calls
>> testResourceLoadSuccessCaching1, the mismatch is a little confusing
>>
>>
>>> }
>>>
>>> @Test
>>> public void testResourceLoadSuccessCachingApplet() throws
>>> Exception {
>>> setApplet();
>>> //so new resource again not in cache
>>> - testResourceLoadSuccessCaching("HTMLPanel.java");
>>> + testResourceLoadSuccessCaching2("Main.class");
>>> + }
>>> +
>>> + @Test
>>> + public void testResourceLoadSuccessCachingApplication2() throws
>>> Exception {
>>> + setWSA();
>>> + //we are testing new resource not in cache
>>> + testResourceLoadSuccessCaching1("HTMLPanel.java");
>>> }
>>>
>>> - public void testResourceLoadSuccessCaching(String r) throws
>>> Exception {
>>> - JNLPFile dummyJnlpFile = new JNLPFile() {
>>> + @Test
>>> + public void testResourceLoadSuccessCachingApplet2() throws
>>> Exception {
>>> + setApplet();
>>> + //so new resource again not in cache
>>> + testResourceLoadSuccessCaching1("HTMLPanel.java");
>>> + }
>>>
>>> - @Override
>>> - public ResourcesDesc getResources() {
>>> - return new ResourcesDesc(null, new Locale[0], new
>>> String[0], new String[0]);
>>> - }
>>> + public void testResourceLoadSuccessCaching1(String r) throws
>>> Exception {
>>> + JNLPFile dummyJnlpFile = new DummyJNLPFile();
>>>
>>> - @Override
>>> - public URL getCodeBase() {
>>> - return CODEBASE_URL;
>>> - }
>>> -
>>> - @Override
>>> - public SecurityDesc getSecurity() {
>>> - return new SecurityDesc(this,
>>> SecurityDesc.SANDBOX_PERMISSIONS, null);
>>> - }
>>> - };
>>> JNLPClassLoader parent = new
>>> JNLPClassLoader(dummyJnlpFile, null);
>>> CodeBaseClassLoader classLoader = new
>>> CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent);
>>>
>>> long startTime, stopTime;
>>>
>>> startTime = System.nanoTime();
>>> - classLoader.findResource("net/sourceforge/jnlp/about/"+r);
>>> + URL u1 =
>>> classLoader.findResource("net/sourceforge/jnlp/about/"+r);
>>> + Assert.assertNull(u1);
>>> stopTime = System.nanoTime();
>>> long timeOnFirstTry = stopTime - startTime;
>>> ServerAccess.logErrorReprint("" + timeOnFirstTry);
>>>
>>> startTime = System.nanoTime();
>>> - classLoader.findResource("net/sourceforge/jnlp/about/"+r);
>>> + URL u2 =
>>> classLoader.findResource("net/sourceforge/jnlp/about/"+r);
>>> + Assert.assertNull(u2);
>>> + stopTime = System.nanoTime();
>>> + long timeOnSecondTry = stopTime - startTime;
>>> + ServerAccess.logErrorReprint("" + timeOnSecondTry);
>>> +
>>> + assertTrue(timeOnSecondTry< (timeOnFirstTry / 10));
>>> + }
>>> +
>>> + public void testResourceLoadSuccessCaching2(String r) throws
>>> Exception {
>>
>> I dislike numerically distinguished names strongly :-)
>> I had to do a diff to be sure of the difference here. It seems there
>> should just be one function (equivalent to
>> testResourceLoadSuccessCaching2), and the
>> "net/sourceforge/jnlp/about/" be added to the parameter upon usage.
>>
>>> + JNLPFile dummyJnlpFile = new DummyJNLPFile();
>>> +
>>> + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile,
>>> null);
>>> + CodeBaseClassLoader classLoader = new
>>> CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent);
>>> +
>>> + long startTime, stopTime;
>>> +
>>> + startTime = System.nanoTime();
>>> + URL u1 = classLoader.findResource(r);
>>> + Assert.assertNull(u1);
>>> + stopTime = System.nanoTime();
>>> + long timeOnFirstTry = stopTime - startTime;
>>> + ServerAccess.logErrorReprint("" + timeOnFirstTry);
>>> +
>>> + startTime = System.nanoTime();
>>> + URL u2 = classLoader.findResource(r);
>>> + Assert.assertNull(u2);
>>> stopTime = System.nanoTime();
>>> long timeOnSecondTry = stopTime - startTime;
>>> ServerAccess.logErrorReprint("" + timeOnSecondTry);
>>> @@ -161,23 +205,7 @@
>>> }
>>>
>>> public void testResourceLoadFailureCaching() throws Exception {
>>> - JNLPFile dummyJnlpFile = new JNLPFile() {
>>> -
>>> - @Override
>>> - public ResourcesDesc getResources() {
>>> - return new ResourcesDesc(null, new Locale[0], new
>>> String[0], new String[0]);
>>> - }
>>> -
>>> - @Override
>>> - public URL getCodeBase() {
>>> - return CODEBASE_URL;
>>> - }
>>> -
>>> - @Override
>>> - public SecurityDesc getSecurity() {
>>> - return new SecurityDesc(this,
>>> SecurityDesc.SANDBOX_PERMISSIONS, null);
>>> - }
>>> - };
>>> + JNLPFile dummyJnlpFile = new DummyJNLPFile();
>>>
>>> JNLPClassLoader parent = new
>>> JNLPClassLoader(dummyJnlpFile, null);
>>> CodeBaseClassLoader classLoader = new
>>> CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent);
>>> @@ -212,24 +240,8 @@
>>> }
>>>
>>> public void testParentClassLoaderIsAskedForClasses() throws
>>> Exception {
>>> - JNLPFile dummyJnlpFile = new JNLPFile() {
>>> -
>>> - @Override
>>> - public ResourcesDesc getResources() {
>>> - return new ResourcesDesc(null, new Locale[0], new
>>> String[0], new String[0]);
>>> - }
>>> -
>>> - @Override
>>> - public URL getCodeBase() {
>>> - return CODEBASE_URL;
>>> - }
>>> -
>>> - @Override
>>> - public SecurityDesc getSecurity() {
>>> - return new SecurityDesc(this,
>>> SecurityDesc.SANDBOX_PERMISSIONS, null);
>>> - }
>>> - };
>>> -
>>> + JNLPFile dummyJnlpFile = new DummyJNLPFile();
>>> +
>>> final boolean[] parentWasInvoked = new boolean[1];
>>>
>>> JNLPClassLoader parent = new
>>> JNLPClassLoader(dummyJnlpFile, null) {
>>
>> Please also rid of the duplicated dummy in testNullFileSecurityDesc.
>
> Atatched even more fixed and cleaned version
>
Nice. I like it better for sure, go ahead and push.
Thanks
-Adam
More information about the distro-pkg-dev
mailing list