aboutsummaryrefslogtreecommitdiff
path: root/tests/TESTBENCH
blob: 7a4df940158427055a2c27e298877e2dd349b8b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-------------------------------------------------------------------------------
TODO :
  - DOC DOC DOC
  - make run
  - asynchronous sending ?
  - automate all the following:
  - test the protocol errors (broadcast, bindregexps, etc)
  - use a parameter for the local domain address . 10.192.36 is hardcoded,
    this is ugly
  - check the malformed broadcasts
    echo "coucou" | nc -u -b -q 0 127.255.255.255 2010
  - check the remote disconnections (ivyprobe ^C ) and check if the
    disappearance is OK
  - propagate the testbenches to other implementations ...

-------------------------------------------------------------------------------

How to check if it doesn't work ? -> There is now a simple testbench.
It can fail if the architecture doesn't support broadcast on loopback address
( change the IVY_BUS variable, e.g.: on MacOSX.2, or Solaris ).

to test every feature 		$ make 
For the old API and regexp Check$ make test1
For the new API Check		$ make api
For the end of input check	$ make probe
To be more robust		$ repeat 100 make

Things that are yet to be written, but not easy:
- automate tests with other implementations
- check the network connectivity (UDP broadcast, multicast)
- check the symmetry, whatever the order of the connections ( client A,
    client B, client C vs A, C, B ... )

-------------------------------------------------------------------------------
How to launch the testbenchs.

  First, recompile the class with the right library.
  in src, make JAVAC=/path/to/javac JAVA=/path/to/java
  in tests, make JAVAC=/path/to/javac JAVA=/path/to/java 
  in examples, make JAVAC=/path/to/javac JAVA=/path/to/java 
  It is possible to add an additionnal CLASSPATH make variable.

  For simplicity's sake, I personnaly use links from src/fr to tests/fr and
  to examples/fr

  For older JDK (1.1) , you must add swingall.jar (available from sun's web
  site) and classes.zip in your classpath. An example is provided in the
  makefile.

  Here is the list of commands I use and platforms I have tested successfully:

  linux:

    java version "1.4.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build
    Blackdown-1.4.1-beta)
    Java HotSpot(TM) Client VM (build Blackdown-1.4.1-beta, mixed mode)
    all tests ok.

    jdk1.1.8
    java version "1.1.8"
    be sure to recompile all the classes !!!
    linux blackdown 1.1.8_v3
    there is the JVM bug (see BUGS for details)

    java version "1.2.2"
    Classic VM (build Linux_JDK_1.2.2_FCS, native threads, sunwjit)
    there is a possible JVM bug ( see BUGS for details ) leading to a
    segmentation violation

    java version "1.3.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build
    Blackdown-1.3.1-FCS)
    Java HotSpot(TM) Client VM (build Blackdown-1.3.1-FCS, mixed mode)