<default> | <default> | |||||||||||||||||||||
NodeRoles: | null | null | ||||||||||||||||||||
alpha | charlie | alpha | ||||||||||||||||||||
Node A | Node B | Node C | Node B | Node A | ||||||||||||||||||
RPC | Request | RPC | Request | RPC | Reply | RPC | Reply | |||||||||||||||
Message-A2B | Message-B2C | Message-C2B | Message-C2B | |||||||||||||||||||
TestAssertion | Block# | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | Block | Actor | BlkContents | mU | |||||
1 | t1 | next | A | 1 | t1 | next | AB | 1 | t1 | next | ABC | 1 | t1 | next | ABCB | 1 | ||||||
2 | t2 | next | X | 1 | FAULT | |||||||||||||||||
3 | t1 | alpha | A | 1 | t1 | next | AB | 1 | t1 | next | 1 | t1 | next | 1 | ||||||||
4 | t2 | alpha | X | 1 | FAULT | |||||||||||||||||
5 | t1 | null | A | 1 | t1 | null | A | 1 | t1 | next | AC | 1 | t1 | null | ACB | 1 | ||||||
6 | t2 | null | X | 1 | t2 | null | X | 1 | FAULT | |||||||||||||
7 | t1 | bravo | A | 1 | t1 | bravo | A | 1 | ||||||||||||||
8 | t2 | bravo | X | 1 | t2 | bravo | X | 1 | t2 | bravo | 1 | t2 | bravo | 1 | ||||||||
9 | t1 | charlie | A | 1 | t1 | charlie | A | 1 | t1 | next | AC | 1 | t1 | next | ACB | 1 | ||||||
10 | t2 | charlie | X | 1 | t2 | charlie | X | 1 | t2 | charlie | 1 | t2 | charlie | 1 | ||||||||
11 | t1 | next | A | 0 | t1 | next | AB | 0 | t1 | next | ABC | 0 | t1 | next | ABCB | 0 | ||||||
12 | t2 | next | X | 0 | ||||||||||||||||||
13 | t1 | alpha | A | 0 | t1 | next | AB | 0 | t1 | next | 0 | t1 | next | 0 | ||||||||
14 | t2 | alpha | X | 0 | t2 | alpha | X | 0 | t2 | alpha | 0 | t2 | alpha | 0 | ||||||||
15 | t1 | null | A | 0 | t1 | null | A | 0 | t1 | null | 0 | t1 | null | 0 | ||||||||
16 | t2 | null | X | 0 | t2 | null | X | 0 | t2 | null | 0 | t2 | null | 0 | ||||||||
17 | t1 | bravo | A | 0 | t1 | bravo | A | 0 | ||||||||||||||
18 | t2 | bravo | X | 0 | t2 | bravo | X | 0 | t2 | bravo | 0 | t2 | bravo | 0 | ||||||||
19 | t1 | charlie | A | 0 | t1 | charlie | A | 0 | t1 | next | 0 | t1 | next | 0 | ||||||||
20 | t2 | charlie | X | 0 | t2 | charlie | X | 0 | t2 | charlie | 0 | t2 | charlie | 0 | ||||||||
Processing Specifications | |
t1 | |
1. If actor=next, append my node name to end of list, then | |
a. if intermediary, fwd to actor=next | |
b. if ultimate SOAP receipient, copy t1 into reply and set actor=next | |
2. If actor=me-specifically (e.g., alpha), append my node name to end of list, then fwd to actor=next | |
t2 | Not defined (no one can understand it) |
t3 | if on arrival t2 is not in message, insert t2 with actor=null and another t2 with actor=next |
t4 | contents specifies role to be assumed by target |
(If forwarded, should target then drop that role?) | |
t5 | if received at anonymous actor, then insert t6 in response message |
t6 | lists unprocessed header blocks that reach ultimate receiver. |
unprocessed is when actor equal to next, null, or one of my roles (e.g., charlie) | |
body | echo back body |
NOTES | |
1 | null implies two cases: 1. actor="" and 2. No actor attribute |
2 | need to add cases for actor="none" |
3 | Can more than one node assume the same role (actor)? |
<t4 actor=next><role>charlie</role></t4> | |
4 | table needs review. I suspect many errors in B2C, C2B, B2A for given A2B |
5 | Additional test cases using t3, t4, t5, t6? |