Commit 5e76e34
committed
tests: fix and harden MLD host module tests after the IPv6 DAD-disable RNG shift
The DAD-disable fix (initiateDad now short-circuits to makeTentativeAddressPermanent
when dupAddrDetectTransmits=0, RFC 4862 Section 5.4) removed a uniform() draw, shifting
the seeded RNG stream in simulations that disable DAD.
MLD_host_basic and MLD_host_groupstates exercise the MLDv1 report-suppression race: when
two hosts share a group, the one with the shorter random uniform(0, maxRespDelay) delay
answers a Query and holds flag=true while the other suppresses, and only the flag=true
host sends a Done on leave. Which host wins is an RNG coin flip, so after the shift host2
wins at seed 0 and host1 sends no Done -- failing the HOST-04 assertion.
opp_test cannot express the relational property "the host that Reported is the one that
sends the Done, and the other sends none", so the tests pin the seed to fix the roles:
- re-seed both tests to 1, where host1 is the reporter again (a pure role choice -- host1
wins for seeds 1, 3, 4, 6 and loses for 0, 2, 5, 7; the behavior is identical either way);
- have host2 also leave at t=5s and assert via %not-contains that it sends no Done, so the
"exactly one Done, from the reporter" correlation is actually checked rather than being a
tautology of host2 never leaving;
- document the seed dependence and that an RNG-stream shift swaps the roles (re-pick a seed
where host1 wins).
(Not attempted: asserting "the other host sends no Report" -- MLDv1 hosts also send unsolicited
Report retransmits and the querier sends multiple Queries, so that is not a stable fact even at
a fixed seed. The Done is the one unambiguous per-host signal of who the reporter was.)1 parent 4cf53b9 commit 5e76e34
2 files changed
Lines changed: 64 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
41 | | - | |
| 43 | + | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
| |||
80 | 83 | | |
81 | 84 | | |
82 | 85 | | |
83 | | - | |
84 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
85 | 97 | | |
86 | 98 | | |
87 | 99 | | |
| |||
100 | 112 | | |
101 | 113 | | |
102 | 114 | | |
103 | | - | |
104 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
105 | 118 | | |
106 | 119 | | |
107 | 120 | | |
108 | 121 | | |
109 | 122 | | |
110 | 123 | | |
| 124 | + | |
111 | 125 | | |
112 | 126 | | |
113 | 127 | | |
| |||
145 | 159 | | |
146 | 160 | | |
147 | 161 | | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
148 | 170 | | |
149 | 171 | | |
150 | 172 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
46 | 47 | | |
47 | | - | |
48 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
| |||
57 | 60 | | |
58 | 61 | | |
59 | 62 | | |
60 | | - | |
| 63 | + | |
| 64 | + | |
61 | 65 | | |
62 | 66 | | |
63 | 67 | | |
| |||
99 | 103 | | |
100 | 104 | | |
101 | 105 | | |
102 | | - | |
103 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
104 | 116 | | |
105 | 117 | | |
106 | 118 | | |
| |||
120 | 132 | | |
121 | 133 | | |
122 | 134 | | |
123 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
124 | 138 | | |
125 | 139 | | |
126 | 140 | | |
127 | 141 | | |
128 | 142 | | |
129 | 143 | | |
| 144 | + | |
130 | 145 | | |
131 | 146 | | |
132 | 147 | | |
| |||
181 | 196 | | |
182 | 197 | | |
183 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
184 | 207 | | |
185 | 208 | | |
186 | 209 | | |
| |||
0 commit comments