[rfc] icedtea-web minor fix for two unittests
Adam Domurad
adomurad at redhat.com
Mon Dec 17 08:59:13 PST 2012
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.
-Adam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20121217/9f5c62df/attachment.html
More information about the distro-pkg-dev
mailing list