harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: local test server (Was: Re: [jira] Commented: (HARMONY-71) java.net.URLConnection.setUseCaches throws unspecified IllegalAccessError)
Date Wed, 22 Feb 2006 22:04:48 GMT
George Harley wrote:
> 
> Geir Magnusson Jr wrote:
>>
>>
>> George Harley wrote:
>>> Geir Magnusson Jr wrote:
>>>> So, does this summarize to :
>>>>
>>>> 1) We need a new server or we should enahnce the current one?
>>>>
>>>> 2) We need instructions on how to do this.
>>>>
>>>> ?
>>>>
>>>> (I hope we don't need httpd to test Harmony...)
>>>
>>> Could you remind me what the "current one" is ?
>>
>> The one in the pending JIRA
> 
> There is no server in the pending JIRA.

(psst) take a look at
<HARMONY-57>\Harmony\Harmony_Tests\src\test\java\tests\support\Support_HttpServer.java

Regards,
Tim

> As briefly mentioned somewhere
> else in this thread, the submitted zip for that JIRA contains
> configuration code and properties files that permits the tester to use
> any server in any location (including localhost) and test resources for
> deploying on those servers.
> 
>>
>>>
>>> What is the problem with using httpd to test Harmony ?
>>
>> It's a rather large external dependency.  Reminds me of the time we
>> got the TCK for JavaMail (a story in itself) and the only practical
>> way to use it was to get Sun's IMAP server which only ran on Solaris.
>>
>> So what I was getting at is can we use something smaller/lighter that
>> we can include in the project for this?  What is it required to do?
> 
> The tests require an HTTP server, an FTP server and a SOCKS server to be
> listening on certain (configurable) ports. The respective servers need
> to have certain resources - text files, jars etc - deployed on them as a
> number of the java.net.* tests try and access them from the configured
> locations. The tests check that the expected content is available, that
> it is the expected size, contains the expected data etc etc.
> 
> There are a number of mature, stable, freely available HTTP/FTP/SOCKS
> servers out there that will do just great for satisfying the demands of
> these tests so I don't propose to recommend anything in particular
> (although I have had no problems running Apache HTTPD on my local
> Windows machine). I don't see any justification for someone to spend
> time developing a "new server" to run these tests. But, hey, it's not my
> time that will be wasted...
> 
>>
>> geir
>>
>>
>>>
>>>
>>>>
>>>>
>>>> Stepan Mishura wrote:
>>>>> Hi Richard,
>>>>>
>>>>> Yes, I'm always for simplifying testing routine. And creating a
>>>>> detail guide
>>>>> for configuring some testing server is a possible way to do it.
>>>>> However I'd
>>>>> prefer to try to develop a simple local test server that is easy to
>>>>> configure. I believe that it will cover most of cases.
>>>>>
>>>>> And I assume that there may be a number of sophisticated test cases
>>>>> that
>>>>> requires a special server set up. But I'd place them separately
>>>>> this was
>>>>> discussed in '[testing] code for exotic configurations' topic.
>>>>>
>>>>> Otherwise there is a chance to get the following detailed
>>>>> instructions:
>>>>> 1) Download http server from http://www.apache.org
>>>>> ...
>>>>> 50) Do this and that
>>>>> ...
>>>>> 100) Now you can run net tests
>>>>>
>>>>> Thanks,
>>>>> Stepan
>>>>>
>>>>>
>>>>> On 2/22/06, Richard Liang <richard.liangyx@gmail.com> wrote:
>>>>>> Dears,
>>>>>> Agree that server (maybe not local) is required for some
>>>>>> sophisticated
>>>>>> test cases. To make thing simply, we may provide more detail guide
>>>>>> (step-by-step) on how to setup/configure a typical testing server.
Or
>>>>>> shall we setup a test server and allow user to share our testing
>>>>>> server?
>>>>>>
>>>>>> Richard Liang
>>>>>> China Software Development Lab, IBM
>>>>>>
>>>>>>
>>>>>>
>>>>>> Tim Ellison wrote:
>>>>>>> Stepan Mishura wrote:
>>>>>>>
>>>>>>>> I glanced through a local server code from HARMONY-57 contribution
>>>>>> without
>>>>>>>> looking into implementation details and ... this made me
think.
>>>>>>>> I catch
>>>>>> hold
>>>>>>>> of the following:
>>>>>>>> 1) The server contains some testing code that looks not good
for me
>>>>>>>>
>>>>>>> Care to explain?
>>>>>>>
>>>>>>>
>>>>>>>> 2) It is not as simple as I expected - my impression was
that a
>>>>>>>> local
>>>>>> server
>>>>>>>> implementation should be very simple because we are not going
to
>>>>>>>> test
>>>>>>>> whether it corresponds to http spec. or not. IMHO, it should
only
>>>>>> provide a
>>>>>>>> test case with:
>>>>>>>> - a port number to open communication
>>>>>>>> - access to a server's input/output streams to verify a request
>>>>>>>> to a
>>>>>> server
>>>>>>>> or to form a server's response.
>>>>>>>> Naive? Well, I'm aware that I'm not so experienced in
>>>>>>>> java.netdevelopment
>>>>>>>> and testing and may be I'm wrong.
>>>>>>>>
>>>>>>> The local server I referenced can be used for a number of the
>>>>>>> java.net
>>>>>>> tests, some of which do require more sophisticated behavior,
like
>>>>>>> basic
>>>>>>> authentication, eTags, etc.
>>>>>>>
>>>>>>> I agree that the tests in HARMONY-71 only need something to
>>>>>>> accept their
>>>>>>> connection, but I was simply pointing out that there will be
a local
>>>>>>> server we can use if that contribution is accepted into the
>>>>>>> project, so
>>>>>>> probably not worth writing another.
>>>>>>>
>>>>>>>
>>>>>>>> I'd like to start with the first issue (BTW, is it ok to
discuss
>>>>>> details of
>>>>>>>> contribution implementation if it is not accepted yet?).
>>>>>>>>
>>>>>>> Sure -- I would expect people to be evaluating it thoroughly
so that
>>>>>>> they can vote the code in/out.  The PPMC will shout early if
the
>>>>>>> paperwork implies a contribution is unacceptable.
>>>>>>>
>>>>>>>
>>>>>>>> Can we avoid adding
>>>>>>>> a code that is specific for some test case to a local server?
>>>>>>>>
>>>>>>> Does it interfere with what you want to do?
>>>>>>> In some cases, the test case needs to know what is on the server
a
>>>>>>> priori, so that it can test the client behavior correctly.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Tim
>>>>>>>
>>>>>>>
>>>>>>>> On 2/16/06, Tim Ellison wrote:
>>>>>>>>
>>>>>>>>> I would rather that you just opened a new JIRA issue
for that
>>>>>>>>> as it
>>>>>>>>> doesn't relate to the original problem.
>>>>>>>>>
>>>>>>>>> FYI there is a local server incoming in the HARMONY-57
>>>>>>>>> contribution,
>>>>>> so
>>>>>>>>> don't spend any time on it, see:
>>>>>>>>>
>>>>>>>>>
>>>>>> <HARMONY-57>\Harmony\Harmony_Tests\src\test\java\tests\support\Support_HttpServer.java
>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Tim
>>>>>>>>>
>>>>>>>>> Stepan Mishura (JIRA) wrote:
>>>>>>>>>
>>>>>>>>>>     [
>>>>>>>>>>
>>>>>> http://issues.apache.org/jira/browse/HARMONY-71?page=comments#action_12366637
>>>>>>
>>>>>> ]
>>>>>>>>>> Stepan Mishura commented on HARMONY-71:
>>>>>>>>>> ---------------------------------------
>>>>>>>>>>
>>>>>>>>>> Tim,
>>>>>>>>>>
>>>>>>>>>> Added test case (test_setUseCachesZ) depends on network
and it
>>>>>>>>>> fails
>>>>>> if
>>>>>>>>> it can not create connection with apache.org. The same
for
>>>>>>>>> HARMONY-72.
>>>>>> I'm
>>>>>>>>> going to attach a patch file with a local server in it.
Could you
>>>>>> reopen
>>>>>>>>> this JIRA?
>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Stepan.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>  java.net.URLConnection.setUseCaches throws unspecified
>>>>>>>>>>>
>>>>>>>>> IllegalAccessError
>>>>>>>>>
>>>>>> --------------------------------------------------------------------------
>>>>>>
>>>>>>>>>>>          Key: HARMONY-71
>>>>>>>>>>>          URL: http://issues.apache.org/jira/browse/HARMONY-71
>>>>>>>>>>>      Project: Harmony
>>>>>>>>>>>         Type: Bug
>>>>>>>>>>>   Components: Classlib
>>>>>>>>>>>     Reporter: Svetlana Samoilenko
>>>>>>>>>>>     Assignee: Tim Ellison
>>>>>>>>>>> According to j2se 1.4.2 specification method
>>>>>>>>>>>
>>>>>>>>> java.net.URLConnection.setUseCaches(boolean) throws
>>>>>> IllegalStateException,
>>>>>>>>> if already connected. Harmony throws
>>>>>>>>> java.lang.IllegalAccessErrorinstead,
>>>>>>>>> that contradicts the specification.
>>>>>>>>>
>>>>>>>>>>> Code to reproduce:
>>>>>>>>>>> import java.io.IOException;
>>>>>>>>>>> import java.net.*;
>>>>>>>>>>> public class test2 {
>>>>>>>>>>>     public static void main(String[] args) {
>>>>>>>>>>>         HttpURLConnection u=null;
>>>>>>>>>>>         try {
>>>>>>>>>>>             u=(HttpURLConnection)(new URL("http://intel.com
>>>>>>>>>>>
>>>>>>>>> ").openConnection());
>>>>>>>>>
>>>>>>>>>>>             u.connect();
>>>>>>>>>>>         } catch (MalformedURLException e) {
>>>>>>>>>>>             System.out.println("unexpected
>>>>>> MalformedURLException"+e);
>>>>>>>>>>>         } catch (IOException f) {
>>>>>>>>>>>             System.out.println("unexpected IOException"+f);
>>>>>>>>>>>         }
>>>>>>>>>>>         try {
>>>>>>>>>>>            u.setUseCaches(true);
>>>>>>>>>>>         } catch (IllegalStateException e) {
>>>>>>>>>>>            System.out.println("OK. Expected
>>>>>>>>>>> IllegalStateException");
>>>>>>>>>>>            e.printStackTrace();
>>>>>>>>>>>         };
>>>>>>>>>>>     }
>>>>>>>>>>> }
>>>>>>>>>>> Steps to Reproduce:
>>>>>>>>>>> 1. Build Harmony (check-out on 2006-01-30) j2se
subset as
>>>>>>>>>>> described
>>>>>> in
>>>>>>>>> README.txt.
>>>>>>>>>
>>>>>>>>>>> 2. Compile test2.java using BEA 1.4 javac
>>>>>>>>>>>
>>>>>>>>>>>> javac -d . test2.java
>>>>>>>>>>>>
>>>>>>>>>>> 3. Run java using compatible VM (J9)
>>>>>>>>>>>
>>>>>>>>>>>> java -showversion test2
>>>>>>>>>>>>
>>>>>>>>>>> Output:
>>>>>>>>>>> C:\tmp>C:\jrockit-j2sdk1.4.2_04\bin\java.exe
-showversion test2
>>>>>>>>>>> java version "1.4.2_04"
>>>>>>>>>>> Java(TM) 2 Runtime Environment, Standard Edition
(build
>>>>>>>>>>> 1.4.2_04-b05
>>>>>> )
>>>>>>>>>>> BEA WebLogic JRockit(TM) 1.4.2_04 JVM (build
>>>>>>>>>>>
>>>>>>>>> ari-31788-20040616-1132-win-ia32, Native Threads, GC
strategy:
>>>>>> parallel)
>>>>>>>>>>> OK. Expected IllegalStateException
>>>>>>>>>>> java.lang.IllegalStateException: Already connected
>>>>>>>>>>>         at java.net.URLConnection.setUseCaches(Z)V(
>>>>>> URLConnection.java
>>>>>>>>> :828)
>>>>>>>>>
>>>>>>>>>>>         at test2.main([Ljava.lang.String;)V(test2.java:17)
>>>>>>>>>>> C:\tmp>C:\harmony\trunk\deploy\jre\bin\java
-showversion test2
>>>>>>>>>>> (c) Copyright 1991, 2005 The Apache Software
Foundation or its
>>>>>>>>>>>
>>>>>>>>> licensors, as applicable.
>>>>>>>>>
>>>>>>>>>>> java.lang.IllegalAccessError: Connection already
established
>>>>>>>>>>>         at
>>>>>>>>>>> java.net.URLConnection.setUseCaches(URLConnection.java
>>>>>> :923)
>>>>>>>>>>>         at test2.main(test2.java:17)
>>>>>>>>>>> Suggested junit test case:
>>>>>>>>>>> ------------------------
>>>>>> URLConnectionTest.java-------------------------------------------------
>>>>>>
>>>>>>>>>>> import java.io.IOException;
>>>>>>>>>>> import java.net.*;
>>>>>>>>>>> import junit.framework.*;
>>>>>>>>>>> public class URLConnectionTest extends TestCase
{
>>>>>>>>>>>     public static void main(String[] args) {
>>>>>>>>>>>         junit.textui.TestRunner.run(URLConnectionTest.class);
>>>>>>>>>>>     }
>>>>>>>>>>>     public void test_setUseCaches () {
>>>>>>>>>>>         HttpURLConnection u=null;
>>>>>>>>>>>         try {
>>>>>>>>>>>             u=(HttpURLConnection)(new URL("http://intel.com
>>>>>>>>>>>
>>>>>>>>> ").openConnection());
>>>>>>>>>
>>>>>>>>>>>             u.connect();
>>>>>>>>>>>         } catch (MalformedURLException e) {
>>>>>>>>>>>             fail("unexpected MalformedURLException"+e);
>>>>>>>>>>>         } catch (IOException f) {
>>>>>>>>>>>             fail("unexpected IOException"+f);
>>>>>>>>>>>         }
>>>>>>>>>>>         try {
>>>>>>>>>>>            u.setUseCaches(true);
>>>>>>>>>>>         } catch (IllegalStateException e) { //expected
>>>>>>>>>>>         };
>>>>>>>>>>>    }
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>>
>>>>>>>>> Tim Ellison (t.p.ellison@gmail.com)
>>>>>>>>> IBM Java technology centre, UK.
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Thanks,
>>>>> Stepan Mishura
>>>>> Intel Middleware Products Division
>>>>>
>>>>
>>>
>>>
>>
> 
> 

-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

Mime
View raw message