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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
-------------------------------------------------------------------------------
BUGS
-------------------------------------------------------------------------------
1.2.14-v1 Ven 24 jui 2011 09:50:42 CEST
test async on MacOSX
make async sometimes fails, double connexion from MsReceive hangs the
process (each message callback is executed twice)
TODO !
-->Ivy[0]<-- found a peer
-->Ivy[0]<-- added IC[0,0] MSreceive:none:54063 in half: (none,)
-->Ivy[0]<-- waiting for a peer
-->Ivy[0]<-- added IC[3,0] MSreceive:MSsend:54063 in half: (MSsend,none,)
-->Ivy[0]<-- removed IC[3,0] MSreceive:MSsend:54063 from half: (none,)
-->Ivy[0]<-- added IC[3,0] MSreceive:MSsend:54063 in clients: (MSsend,)
-->Ivy[0]<-- removed IC[0,0] MSreceive:MSsend:54063 from half: ()
-->Ivy[0]<-- added IC[0,0] MSreceive:MSsend:54063 in clients: (MSsend,MSsend,)
fixed in 1.2.14-v3, seemingly, or so I hope
-------------------------------------------------------------------------------
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)
|