Stepan Mishura wrote:
I feel that I need to study more details about net testing. Also to made discussion more concrete and constructive I'll to try to provide 'a proof of concept'. I believe that this won't be a wasted effort and it won't take too much time. I'm going to select a number of 'common testing scenarios', for example, I will try to "force a server to send a chunked response" without creating a special resource to be requested. And demonstrate that it is possible to run them without external server or sophisticated internal server. Anyway I was going to continue to work with Kerberos server stub (because I'm not delighted with configuring external Kerberos server in order to run unit tests) and this is a good change for me to review this issue from another angle. Thanks,
Stepan Mishura
Intel Middleware Products Division

Hi Stepan,

Sounds good to me.

Best regards,
George
IBM UK

On 2/23/06, *George Harley* <george.c.harley <at> googlemail.com <http://googlemail.com>> wrote:


    Tim Ellison wrote:
    > 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
    >

    Hi Tim,

    Funny. That's a test support class that is used to mock up an HTTP
    server for one, admittedly large, test case method
    (test_getInputStream
    in tests.api.java.net.URLConnectionTest).

    It is not "the server".

    There are a significantly larger number of test case methods that
    rely
    on using the configured external HTTP/FTP/SOCKS servers to test out
    their functionality.

    Best regards,
    George
    IBM UK


    >
    >> 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 <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> 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 <http://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
    <http://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 ( [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>)
    >>>>>>>>>> IBM Java technology centre, UK.
    >>>>>>>>>>
    >>>>>>>>>>
    >>>>>>>>>>
    >>>>>> --
    >>>>>> Thanks,
    >>>>>> Stepan Mishura
    >>>>>> Intel Middleware Products Division
    >>>>>>
    >>>>>>
    >>>>
    >>
    >
    >




--
Thanks,
Stepan Mishura
Intel Middleware Products Division

Reply via email to