Summary report generated on 2013-05-12T16:29:40Z (UTC) by Autobahn WebSockets Testsuite v0.5.2/v0.5.14.
| Pass | Test case was executed and passed successfully. |
| Non-Strict | Test case was executed and passed non-strictly. A non-strict behavior is one that does not adhere to a SHOULD-behavior as described in the protocol specification or a well-defined, canonical behavior that appears to be desirable but left open in the protocol specification. An implementation with non-strict behavior is still conformant to the protocol specification. |
| Fail | Test case was executed and failed. An implementation which fails a test case - other than a performance/limits related one - is non-conforming to a MUST-behavior as described in the protocol specification. |
| Info | Informational test case which detects certain implementation behavior left unspecified by the spec but nevertheless potentially interesting to implementors. |
| Missing | Test case is missing, either because it was skipped via the test suite configuration or deactivated, i.e. because the implementation does not implement the tested feature or breaks during running the test case. |
| 1 Framing | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 1.1 Text Messages | ||||||||||||||||
| Case 1.1.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.6 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.1.8 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 1 Framing | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 1.2 Binary Messages | ||||||||||||||||
| Case 1.2.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.6 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 1.2.8 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 2 Pings/Pongs | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| Case 2.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.5 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 2.6 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.8 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.9 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.10 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 2.11 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 3 Reserved Bits | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| Case 3.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.3 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.4 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.5 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.6 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 3.7 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 4 Opcodes | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 4.1 Non-control Opcodes | ||||||||||||||||
| Case 4.1.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.1.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.1.3 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.1.4 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.1.5 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 4 Opcodes | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 4.2 Control Opcodes | ||||||||||||||||
| Case 4.2.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.2.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.2.3 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.2.4 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 4.2.5 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 5 Fragmentation | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| Case 5.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.6 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.8 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.9 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.10 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.11 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.12 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.13 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.14 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.15 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.16 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.17 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.18 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 5.19 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 5.20 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.1 Valid UTF-8 with zero payload fragments | ||||||||||||||||
| Case 6.1.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.1.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.1.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.2 Valid UTF-8 unfragmented, fragmented on code-points and within code-points | ||||||||||||||||
| Case 6.2.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.2.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.2.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.2.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.3 Invalid UTF-8 differently fragmented | ||||||||||||||||
| Case 6.3.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.3.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.4 Fail-fast on invalid UTF-8 | ||||||||||||||||
| Case 6.4.1 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 |
| Case 6.4.2 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Fail | None | Non-Strict | 1007 | Non-Strict | 1007 |
| Case 6.4.3 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 |
| Case 6.4.4 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 | Non-Strict | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.5 Some valid UTF-8 sequences | ||||||||||||||||
| Case 6.5.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.6 All prefixes of a valid UTF-8 string that contains multi-byte code points | ||||||||||||||||
| Case 6.6.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.6.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.6.6 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.6.8 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.9 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.6.10 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.6.11 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.7 First possible sequence of a certain length | ||||||||||||||||
| Case 6.7.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.7.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.7.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.7.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.8 First possible sequence length 5/6 (invalid codepoints) | ||||||||||||||||
| Case 6.8.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.8.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.9 Last possible sequence of a certain length | ||||||||||||||||
| Case 6.9.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.9.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.9.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.9.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.10 Last possible sequence length 4/5/6 (invalid codepoints) | ||||||||||||||||
| Case 6.10.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.10.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.10.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.11 Other boundary conditions | ||||||||||||||||
| Case 6.11.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.11.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.11.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.11.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.11.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.12 Unexpected continuation bytes | ||||||||||||||||
| Case 6.12.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.6 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.7 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.12.8 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.13 Lonely start characters | ||||||||||||||||
| Case 6.13.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.13.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.13.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.13.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.13.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.14 Sequences with last continuation byte missing | ||||||||||||||||
| Case 6.14.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.6 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.7 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.8 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.9 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.14.10 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.15 Concatenation of incomplete sequences | ||||||||||||||||
| Case 6.15.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.16 Impossible bytes | ||||||||||||||||
| Case 6.16.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.16.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.16.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.17 Examples of an overlong ASCII character | ||||||||||||||||
| Case 6.17.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.17.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.17.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.17.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.17.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.18 Maximum overlong sequences | ||||||||||||||||
| Case 6.18.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.18.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.18.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.18.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.18.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.19 Overlong representation of the NUL character | ||||||||||||||||
| Case 6.19.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.19.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.19.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.19.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.19.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.20 Single UTF-16 surrogates | ||||||||||||||||
| Case 6.20.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.6 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.20.7 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.21 Paired UTF-16 surrogates | ||||||||||||||||
| Case 6.21.1 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.2 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.3 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.4 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.6 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.7 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 6.21.8 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.22 Non-character code points (valid UTF-8) | ||||||||||||||||
| Case 6.22.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.22.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 6.22.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.6 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.7 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.8 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.9 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.10 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.11 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.12 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.13 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.14 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.15 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.16 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.17 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.18 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.19 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.20 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.21 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.22 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.23 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.24 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.25 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.26 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.27 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.28 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.29 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.30 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.31 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.32 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.33 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| Case 6.22.34 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Fail | 1001 | Fail | 1001 | Pass | 1000 |
| 6 UTF-8 Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 6.23 Unicode replacement character | ||||||||||||||||
| Case 6.23.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.1 Basic close behavior (fuzzer initiated) | ||||||||||||||||
| Case 7.1.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.1.2 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.1.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.1.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.1.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.1.6 | Info | 1000 | Info | 1000 | Info | 1000 | Info | 1000 | Info | 1000 | Info | 1000 | Info | 1000 | Info | 1000 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.3 Close frame structure: payload length (fuzzer initiated) | ||||||||||||||||
| Case 7.3.1 | Pass | None | Pass | None | Pass | None | Pass | None | Pass | None | Pass | None | Pass | None | Pass | None |
| Case 7.3.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.3.3 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.3.4 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | Unclean | Pass | 1000 | Pass | 1000 |
| Case 7.3.5 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.3.6 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.5 Close frame structure: payload value (fuzzer initiated) | ||||||||||||||||
| Case 7.5.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.7 Close frame structure: valid close codes (fuzzer initiated) | ||||||||||||||||
| Case 7.7.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
| Case 7.7.2 | Pass | 1001 | Pass | 1001 | Pass | 1001 | Pass | 1001 | Pass | 1001 | Pass | 1001 | Pass | 1001 | Pass | 1001 |
| Case 7.7.3 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.7.4 | Pass | 1003 | Pass | 1003 | Pass | 1003 | Pass | 1003 | Pass | 1003 | Pass | 1003 | Pass | 1003 | Pass | 1003 |
| Case 7.7.5 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 | Pass | 1007 |
| Case 7.7.6 | Pass | 1008 | Pass | 1008 | Pass | 1008 | Pass | 1008 | Pass | 1008 | Pass | 1008 | Pass | 1008 | Pass | 1008 |
| Case 7.7.7 | Pass | 1009 | Pass | 1009 | Pass | 1009 | Pass | 1009 | Pass | 1009 | Pass | 1009 | Pass | 1009 | Pass | 1009 |
| Case 7.7.8 | Pass | 1010 | Pass | 1010 | Pass | 1010 | Pass | 1010 | Pass | 1010 | Pass | 1010 | Pass | 1010 | Pass | 1010 |
| Case 7.7.9 | Pass | 1011 | Pass | 1011 | Pass | 1011 | Pass | 1011 | Pass | 1011 | Pass | 1011 | Pass | 1011 | Pass | 1011 |
| Case 7.7.10 | Pass | 3000 | Pass | 3000 | Pass | 3000 | Pass | 3000 | Pass | 3000 | Pass | 3000 | Pass | 3000 | Pass | 3000 |
| Case 7.7.11 | Pass | 3999 | Pass | 3999 | Pass | 3999 | Pass | 3999 | Pass | 3999 | Pass | 3999 | Pass | 3999 | Pass | 3999 |
| Case 7.7.12 | Pass | 4000 | Pass | 4000 | Pass | 4000 | Pass | 4000 | Pass | 4000 | Pass | 4000 | Pass | 4000 | Pass | 4000 |
| Case 7.7.13 | Pass | 4999 | Pass | 4999 | Pass | 4999 | Pass | 4999 | Pass | 4999 | Pass | 4999 | Pass | 4999 | Pass | 4999 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.9 Close frame structure: invalid close codes (fuzzer initiated) | ||||||||||||||||
| Case 7.9.1 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.2 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.3 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.4 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.5 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.6 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.7 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.8 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.9 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.10 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.11 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.12 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| Case 7.9.13 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 | Pass | 1002 |
| 7 Close Handling | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 7.13 Informational close information (fuzzer initiated) | ||||||||||||||||
| Case 7.13.1 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 |
| Case 7.13.2 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 | Info | 1002 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.1 Text Message (increasing size) | ||||||||||||||||
| Case 9.1.1 | Pass 80 ms | 1000 | Pass 76 ms | 1000 | Pass 61 ms | 1000 | Pass 78 ms | 1000 | Pass 47 ms | 1000 | Pass 51 ms | 1000 | Pass 46 ms | 1000 | Pass 43 ms | 1000 |
| Case 9.1.2 | Pass 212 ms | 1000 | Pass 250 ms | 1000 | Pass 229 ms | 1000 | Pass 220 ms | 1000 | Pass 154 ms | 1000 | Pass 174 ms | 1000 | Pass 171 ms | 1000 | Pass 177 ms | 1000 |
| Case 9.1.3 | Pass 862 ms | 1000 | Pass 829 ms | 1000 | Pass 828 ms | 1000 | Pass 789 ms | 1000 | Pass 617 ms | 1000 | Pass 647 ms | 1000 | Pass 638 ms | 1000 | Pass 622 ms | 1000 |
| Case 9.1.4 | Pass 4204 ms | 1000 | Pass 3111 ms | 1000 | Pass 3130 ms | 1000 | Pass 2976 ms | 1000 | Pass 2438 ms | 1000 | Pass 2639 ms | 1000 | Pass 2460 ms | 1000 | Pass 2464 ms | 1000 |
| Case 9.1.5 | Pass 8008 ms | 1000 | Pass 6140 ms | 1000 | Pass 6286 ms | 1000 | Pass 5926 ms | 1000 | Pass 4788 ms | 1000 | Pass 5214 ms | 1000 | Pass 4852 ms | 1000 | Pass 4911 ms | 1000 |
| Case 9.1.6 | Pass 16077 ms | 1000 | Pass 11909 ms | 1000 | Pass 11981 ms | 1000 | Pass 11588 ms | 1000 | Pass 10237 ms | 1000 | Pass 10966 ms | 1000 | Pass 10270 ms | 1000 | Pass 9759 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.2 Binary Message (increasing size) | ||||||||||||||||
| Case 9.2.1 | Pass 49 ms | 1000 | Pass 106 ms | 1000 | Pass 84 ms | 1000 | Pass 103 ms | 1000 | Pass 31 ms | 1000 | Pass 29 ms | 1000 | Pass 31 ms | 1000 | Pass 17 ms | 1000 |
| Case 9.2.2 | Pass 120 ms | 1000 | Pass 123 ms | 1000 | Pass 127 ms | 1000 | Pass 119 ms | 1000 | Pass 62 ms | 1000 | Pass 82 ms | 1000 | Pass 65 ms | 1000 | Pass 68 ms | 1000 |
| Case 9.2.3 | Pass 443 ms | 1000 | Pass 380 ms | 1000 | Pass 379 ms | 1000 | Pass 351 ms | 1000 | Pass 247 ms | 1000 | Pass 246 ms | 1000 | Pass 241 ms | 1000 | Pass 232 ms | 1000 |
| Case 9.2.4 | Pass 1575 ms | 1000 | Pass 1359 ms | 1000 | Pass 1388 ms | 1000 | Pass 1310 ms | 1000 | Pass 882 ms | 1000 | Pass 1003 ms | 1000 | Pass 871 ms | 1000 | Pass 856 ms | 1000 |
| Case 9.2.5 | Pass 3038 ms | 1000 | Pass 2471 ms | 1000 | Pass 2670 ms | 1000 | Pass 2514 ms | 1000 | Pass 1736 ms | 1000 | Pass 2143 ms | 1000 | Pass 1809 ms | 1000 | Pass 1752 ms | 1000 |
| Case 9.2.6 | Pass 7296 ms | 1000 | Pass 5627 ms | 1000 | Pass 5398 ms | 1000 | Pass 5149 ms | 1000 | Pass 3803 ms | 1000 | Pass 4637 ms | 1000 | Pass 3823 ms | 1000 | Pass 3809 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.3 Fragmented Text Message (fixed size, increasing fragment size) | ||||||||||||||||
| Case 9.3.1 | Pass 7553 ms | 1000 | Pass 4409 ms | 1000 | Pass 4149 ms | 1000 | Pass 3962 ms | 1000 | Pass 3574 ms | 1000 | Pass 4432 ms | 1000 | Pass 3645 ms | 1000 | Pass 3518 ms | 1000 |
| Case 9.3.2 | Pass 4976 ms | 1000 | Pass 3328 ms | 1000 | Pass 3361 ms | 1000 | Pass 3259 ms | 1000 | Pass 2925 ms | 1000 | Pass 3533 ms | 1000 | Pass 2950 ms | 1000 | Pass 2903 ms | 1000 |
| Case 9.3.3 | Pass 3593 ms | 1000 | Pass 3078 ms | 1000 | Pass 3104 ms | 1000 | Pass 3071 ms | 1000 | Pass 2665 ms | 1000 | Pass 2918 ms | 1000 | Pass 2733 ms | 1000 | Pass 2658 ms | 1000 |
| Case 9.3.4 | Pass 3406 ms | 1000 | Pass 3036 ms | 1000 | Pass 3071 ms | 1000 | Pass 2863 ms | 1000 | Pass 2629 ms | 1000 | Pass 2764 ms | 1000 | Pass 2618 ms | 1000 | Pass 2668 ms | 1000 |
| Case 9.3.5 | Pass 3155 ms | 1000 | Pass 3027 ms | 1000 | Pass 3042 ms | 1000 | Pass 2865 ms | 1000 | Pass 2614 ms | 1000 | Pass 2792 ms | 1000 | Pass 2738 ms | 1000 | Pass 2661 ms | 1000 |
| Case 9.3.6 | Pass 3320 ms | 1000 | Pass 3021 ms | 1000 | Pass 3021 ms | 1000 | Pass 2866 ms | 1000 | Pass 2640 ms | 1000 | Pass 2824 ms | 1000 | Pass 2634 ms | 1000 | Pass 2697 ms | 1000 |
| Case 9.3.7 | Pass 3312 ms | 1000 | Pass 3030 ms | 1000 | Pass 3003 ms | 1000 | Pass 2808 ms | 1000 | Pass 2586 ms | 1000 | Pass 2753 ms | 1000 | Pass 2544 ms | 1000 | Pass 2655 ms | 1000 |
| Case 9.3.8 | Pass 3123 ms | 1000 | Pass 2978 ms | 1000 | Pass 2972 ms | 1000 | Pass 2824 ms | 1000 | Pass 2580 ms | 1000 | Pass 2713 ms | 1000 | Pass 2568 ms | 1000 | Pass 2652 ms | 1000 |
| Case 9.3.9 | Pass 3331 ms | 1000 | Pass 3561 ms | 1000 | Pass 3452 ms | 1000 | Pass 3396 ms | 1000 | Pass 2412 ms | 1000 | Pass 2507 ms | 1000 | Pass 2376 ms | 1000 | Pass 2386 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.4 Fragmented Binary Message (fixed size, increasing fragment size) | ||||||||||||||||
| Case 9.4.1 | Pass 6040 ms | 1000 | Pass 2526 ms | 1000 | Pass 2363 ms | 1000 | Pass 2455 ms | 1000 | Pass 1945 ms | 1000 | Pass 2910 ms | 1000 | Pass 1919 ms | 1000 | Pass 1968 ms | 1000 |
| Case 9.4.2 | Pass 3446 ms | 1000 | Pass 1574 ms | 1000 | Pass 1610 ms | 1000 | Pass 1522 ms | 1000 | Pass 1402 ms | 1000 | Pass 1729 ms | 1000 | Pass 1260 ms | 1000 | Pass 1289 ms | 1000 |
| Case 9.4.3 | Pass 2138 ms | 1000 | Pass 1328 ms | 1000 | Pass 1330 ms | 1000 | Pass 1227 ms | 1000 | Pass 1109 ms | 1000 | Pass 1249 ms | 1000 | Pass 1019 ms | 1000 | Pass 1044 ms | 1000 |
| Case 9.4.4 | Pass 1901 ms | 1000 | Pass 1304 ms | 1000 | Pass 1253 ms | 1000 | Pass 1167 ms | 1000 | Pass 1097 ms | 1000 | Pass 1172 ms | 1000 | Pass 987 ms | 1000 | Pass 1059 ms | 1000 |
| Case 9.4.5 | Pass 1477 ms | 1000 | Pass 1221 ms | 1000 | Pass 1235 ms | 1000 | Pass 1176 ms | 1000 | Pass 1018 ms | 1000 | Pass 1123 ms | 1000 | Pass 949 ms | 1000 | Pass 993 ms | 1000 |
| Case 9.4.6 | Pass 1478 ms | 1000 | Pass 1207 ms | 1000 | Pass 1219 ms | 1000 | Pass 1243 ms | 1000 | Pass 1048 ms | 1000 | Pass 1199 ms | 1000 | Pass 1068 ms | 1000 | Pass 1024 ms | 1000 |
| Case 9.4.7 | Pass 1479 ms | 1000 | Pass 1209 ms | 1000 | Pass 1212 ms | 1000 | Pass 1130 ms | 1000 | Pass 1023 ms | 1000 | Pass 1101 ms | 1000 | Pass 943 ms | 1000 | Pass 1000 ms | 1000 |
| Case 9.4.8 | Pass 1466 ms | 1000 | Pass 1226 ms | 1000 | Pass 1205 ms | 1000 | Pass 1113 ms | 1000 | Pass 1028 ms | 1000 | Pass 1107 ms | 1000 | Pass 949 ms | 1000 | Pass 1040 ms | 1000 |
| Case 9.4.9 | Pass 1448 ms | 1000 | Pass 1243 ms | 1000 | Pass 1215 ms | 1000 | Pass 1144 ms | 1000 | Pass 831 ms | 1000 | Pass 989 ms | 1000 | Pass 803 ms | 1000 | Pass 814 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.5 Text Message (fixed size, increasing chop size) | ||||||||||||||||
| Case 9.5.1 | Pass 1897 ms | 1000 | Pass 1756 ms | 1000 | Pass 1787 ms | 1000 | Pass 1732 ms | 1000 | Pass 1369 ms | 1000 | Pass 1381 ms | 1000 | Pass 1379 ms | 1000 | Pass 1363 ms | 1000 |
| Case 9.5.2 | Pass 1151 ms | 1000 | Pass 1287 ms | 1000 | Pass 1294 ms | 1000 | Pass 1217 ms | 1000 | Pass 983 ms | 1000 | Pass 1072 ms | 1000 | Pass 978 ms | 1000 | Pass 1001 ms | 1000 |
| Case 9.5.3 | Pass 1164 ms | 1000 | Pass 1030 ms | 1000 | Pass 977 ms | 1000 | Pass 940 ms | 1000 | Pass 800 ms | 1000 | Pass 839 ms | 1000 | Pass 787 ms | 1000 | Pass 801 ms | 1000 |
| Case 9.5.4 | Pass 893 ms | 1000 | Pass 919 ms | 1000 | Pass 878 ms | 1000 | Pass 842 ms | 1000 | Pass 700 ms | 1000 | Pass 723 ms | 1000 | Pass 690 ms | 1000 | Pass 705 ms | 1000 |
| Case 9.5.5 | Pass 816 ms | 1000 | Pass 787 ms | 1000 | Pass 769 ms | 1000 | Pass 749 ms | 1000 | Pass 654 ms | 1000 | Pass 690 ms | 1000 | Pass 664 ms | 1000 | Pass 643 ms | 1000 |
| Case 9.5.6 | Pass 785 ms | 1000 | Pass 786 ms | 1000 | Pass 804 ms | 1000 | Pass 756 ms | 1000 | Pass 634 ms | 1000 | Pass 651 ms | 1000 | Pass 630 ms | 1000 | Pass 622 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.6 Binary Text Message (fixed size, increasing chop size) | ||||||||||||||||
| Case 9.6.1 | Pass 1176 ms | 1000 | Pass 1309 ms | 1000 | Pass 1276 ms | 1000 | Pass 1311 ms | 1000 | Pass 975 ms | 1000 | Pass 1000 ms | 1000 | Pass 967 ms | 1000 | Pass 1012 ms | 1000 |
| Case 9.6.2 | Pass 754 ms | 1000 | Pass 788 ms | 1000 | Pass 821 ms | 1000 | Pass 799 ms | 1000 | Pass 594 ms | 1000 | Pass 629 ms | 1000 | Pass 600 ms | 1000 | Pass 590 ms | 1000 |
| Case 9.6.3 | Pass 559 ms | 1000 | Pass 584 ms | 1000 | Pass 591 ms | 1000 | Pass 618 ms | 1000 | Pass 413 ms | 1000 | Pass 429 ms | 1000 | Pass 409 ms | 1000 | Pass 406 ms | 1000 |
| Case 9.6.4 | Pass 441 ms | 1000 | Pass 455 ms | 1000 | Pass 433 ms | 1000 | Pass 428 ms | 1000 | Pass 302 ms | 1000 | Pass 340 ms | 1000 | Pass 316 ms | 1000 | Pass 309 ms | 1000 |
| Case 9.6.5 | Pass 407 ms | 1000 | Pass 366 ms | 1000 | Pass 351 ms | 1000 | Pass 355 ms | 1000 | Pass 256 ms | 1000 | Pass 286 ms | 1000 | Pass 257 ms | 1000 | Pass 263 ms | 1000 |
| Case 9.6.6 | Pass 365 ms | 1000 | Pass 321 ms | 1000 | Pass 308 ms | 1000 | Pass 298 ms | 1000 | Pass 229 ms | 1000 | Pass 269 ms | 1000 | Pass 236 ms | 1000 | Pass 229 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.7 Text Message Roundtrip Time (fixed number, increasing size) | ||||||||||||||||
| Case 9.7.1 | Pass 1269 ms | 1000 | Pass 520 ms | 1000 | Pass 610 ms | 1000 | Pass 659 ms | 1000 | Pass 503 ms | 1000 | Pass 569 ms | 1000 | Pass 467 ms | 1000 | Pass 494 ms | 1000 |
| Case 9.7.2 | Pass 1151 ms | 1000 | Pass 748 ms | 1000 | Pass 753 ms | 1000 | Pass 742 ms | 1000 | Pass 526 ms | 1000 | Pass 454 ms | 1000 | Pass 636 ms | 1000 | Pass 574 ms | 1000 |
| Case 9.7.3 | Pass 1533 ms | 1000 | Pass 976 ms | 1000 | Pass 984 ms | 1000 | Pass 966 ms | 1000 | Pass 814 ms | 1000 | Pass 428 ms | 1000 | Pass 706 ms | 1000 | Pass 666 ms | 1000 |
| Case 9.7.4 | Pass 1944 ms | 1000 | Pass 1496 ms | 1000 | Pass 1662 ms | 1000 | Pass 1612 ms | 1000 | Pass 1189 ms | 1000 | Pass 943 ms | 1000 | Pass 647 ms | 1000 | Pass 1105 ms | 1000 |
| Case 9.7.5 | Pass 4542 ms | 1000 | Pass 3749 ms | 1000 | Pass 3795 ms | 1000 | Pass 3771 ms | 1000 | Pass 2200 ms | 1000 | Pass 3319 ms | 1000 | Pass 2765 ms | 1000 | Pass 3214 ms | 1000 |
| Case 9.7.6 | Pass 9522 ms | 1000 | Pass 9718 ms | 1000 | Pass 9930 ms | 1000 | Pass 9941 ms | 1000 | Pass 3508 ms | 1000 | Pass 7914 ms | 1000 | Pass 4468 ms | 1000 | Pass 3268 ms | 1000 |
| 9 Limits/Performance | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 9.8 Binary Message Roundtrip Time (fixed number, increasing size) | ||||||||||||||||
| Case 9.8.1 | Pass 380 ms | 1000 | Pass 578 ms | 1000 | Pass 631 ms | 1000 | Pass 617 ms | 1000 | Pass 493 ms | 1000 | Pass 545 ms | 1000 | Pass 449 ms | 1000 | Pass 474 ms | 1000 |
| Case 9.8.2 | Pass 1027 ms | 1000 | Pass 653 ms | 1000 | Pass 667 ms | 1000 | Pass 702 ms | 1000 | Pass 540 ms | 1000 | Pass 601 ms | 1000 | Pass 554 ms | 1000 | Pass 517 ms | 1000 |
| Case 9.8.3 | Pass 1137 ms | 1000 | Pass 729 ms | 1000 | Pass 781 ms | 1000 | Pass 783 ms | 1000 | Pass 633 ms | 1000 | Pass 696 ms | 1000 | Pass 586 ms | 1000 | Pass 557 ms | 1000 |
| Case 9.8.4 | Pass 874 ms | 1000 | Pass 1092 ms | 1000 | Pass 1159 ms | 1000 | Pass 1111 ms | 1000 | Pass 827 ms | 1000 | Pass 1094 ms | 1000 | Pass 832 ms | 1000 | Pass 627 ms | 1000 |
| Case 9.8.5 | Pass 1898 ms | 1000 | Pass 2082 ms | 1000 | Pass 2164 ms | 1000 | Pass 2056 ms | 1000 | Pass 1488 ms | 1000 | Pass 1756 ms | 1000 | Pass 1231 ms | 1000 | Pass 1536 ms | 1000 |
| Case 9.8.6 | Pass 6420 ms | 1000 | Pass 5912 ms | 1000 | Pass 5981 ms | 1000 | Pass 5519 ms | 1000 | Pass 2558 ms | 1000 | Pass 4761 ms | 1000 | Pass 4174 ms | 1000 | Pass 2852 ms | 1000 |
| 10 Misc | JRuby 1.9.3 | MRI 1.9.2 | MRI 1.9.3 | MRI 2.0.0 | Node v0.10.5 | Node v0.4.12 | Node v0.6.19 | Node v0.8.23 | ||||||||
| 10.1 Auto-Fragmentation | ||||||||||||||||
| Case 10.1.1 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 | Pass | 1000 |
Case Description
Send text message with payload 0.
Case Expectation
Receive echo'ed text message (with empty payload). Clean close with normal code.
Case Description
Send text message message with payload of length 125.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 126.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 127.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 128.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65535.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65536.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65536. Sent out data in chops of 997 octets.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send binary message with payload 0.
Case Expectation
Receive echo'ed binary message (with empty payload). Clean close with normal code.
Case Description
Send binary message message with payload of length 125.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 126.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 127.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 128.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65535.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65536.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65536. Sent out data in chops of 997 octets.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send ping without payload.
Case Expectation
Pong (with empty payload) is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with small text payload.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with small binary (non UTF-8) payload.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with binary payload of 125 octets.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with binary payload of 126 octets.
Case Expectation
Connection is failed immediately (1002/Protocol Error), since control frames are only allowed to have payload up to and including 125 octets..
Case Description
Send ping with binary payload of 125 octets, send in octet-wise chops.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Implementations must be TCP clean. Clean close with normal code.
Case Description
Send unsolicited pong without payload. Verify nothing is received. Clean close with normal code.
Case Expectation
Nothing.
Case Description
Send unsolicited pong with payload. Verify nothing is received. Clean close with normal code.
Case Expectation
Nothing.
Case Description
Send unsolicited pong with payload. Send ping with payload. Verify pong for ping is received.
Case Expectation
Nothing in reply to own Pong, but Pong with payload echo'ed in reply to Ping. Clean close with normal code.
Case Description
Send 10 Pings with payload.
Case Expectation
Pongs for our Pings with all the payloads. Note: This is not required by the Spec .. but we check for this behaviour anyway. Clean close with normal code.
Case Description
Send 10 Pings with payload. Send out octets in octet-wise chops.
Case Expectation
Pongs for our Pings with all the payloads. Note: This is not required by the Spec .. but we check for this behaviour anyway. Clean close with normal code.
Case Description
Send small text message with RSV = 1.
Case Expectation
The connection is failed immediately (1002/protocol error), since RSV must be 0, when no extension defining RSV meaning has been negoiated.
Case Description
Send small text message, then send again with RSV = 2, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small text message, then send again with RSV = 3, then send Ping. Octets are sent in frame-wise chops. Octets are sent in octet-wise chops.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small text message, then send again with RSV = 4, then send Ping. Octets are sent in octet-wise chops.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small binary message with RSV = 5.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send Ping with RSV = 6.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send Close with RSV = 7.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send frame with reserved non-control Opcode = 3.
Case Expectation
The connection is failed immediately.
Case Description
Send frame with reserved non-control Opcode = 4 and non-empty payload.
Case Expectation
The connection is failed immediately.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 5, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 6 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 7 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send frame with reserved control Opcode = 11.
Case Expectation
The connection is failed immediately.
Case Description
Send frame with reserved control Opcode = 12 and non-empty payload.
Case Expectation
The connection is failed immediately.
Case Description
Send small text message, then send frame with reserved control Opcode = 13, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved control Opcode = 14 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved control Opcode = 15 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send Ping fragmented into 2 fragments.
Case Expectation
Connection is failed immediately, since control message MUST NOT be fragmented.
Case Description
Send Pong fragmented into 2 fragments.
Case Expectation
Connection is failed immediately, since control message MUST NOT be fragmented.
Case Description
Send text Message fragmented into 2 fragments.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, octets are sent in frame-wise chops.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, octets are sent in octet-wise chops.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between. Octets are sent in frame-wise chops.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between. Octets are sent in octet-wise chops.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in per-frame chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in octet-wise chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in per-frame chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in octet-wise chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send text Message fragmented into 2 fragments, then Continuation Frame with FIN = false where there is nothing to continue, then unfragmented Text Message, all sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Repeated 2x: Continuation Frame with FIN = false (where there is nothing to continue), then text Message fragmented into 2 fragments.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Repeated 2x: Continuation Frame with FIN = true (where there is nothing to continue), then text Message fragmented into 2 fragments.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send text Message fragmented into 2 fragments, with both frame opcodes set to text, sent in one chop.
Case Expectation
The connection is failed immediately, since all data frames after the initial data frame must have opcode 0.
Case Description
A fragmented text message is sent in multiple frames. After
sending the first 2 frames of the text message, a Ping is sent. Then we wait 1s,
then we send 2 more text fragments, another Ping and then the final text fragment.
Everything is legal.
Case Expectation
The peer immediately answers the first Ping before
it has received the last text message fragment. The peer pong's back the Ping's
payload exactly, and echo's the payload of the fragmented message back to us.
Case Description
Same as Case 5.19, but send all frames with SYNC = True.
Note, this does not change the octets sent in any way, only how the stream
is chopped up on the wire.
Case Expectation
Same as Case 5.19. Implementations must be agnostic to how
octet stream is chopped up on wire (must be TCP clean).
Case Description
Send text message of length 0.
Case Expectation
A message is echo'ed back to us (with empty payload).
Case Description
Send fragmented text message, 3 fragments each of length 0.
Case Expectation
A message is echo'ed back to us (with empty payload).
Case Description
Send fragmented text message, 3 fragments, first and last of length 0, middle non-empty.
Case Expectation
A message is echo'ed back to us (with payload = payload of middle fragment).
Case Description
Send a valid UTF-8 text message in one fragment.
MESSAGE:
Hello-µ@ßöäüà á-UTF-8!!
48656c6c6f2dc2b540c39fc3b6c3a4c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in two fragments, fragmented on UTF-8 code point boundary.
MESSAGE FRAGMENT 1:
Hello-µ@ßöä
48656c6c6f2dc2b540c39fc3b6c3a4
MESSAGE FRAGMENT 2:
üà á-UTF-8!!
c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
Hello-µ@ßöäüà á-UTF-8!!
48656c6c6f2dc2b540c39fc3b6c3a4c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send invalid UTF-8 text message unfragmented.
MESSAGE:
Îºá½¹ÏƒÎ¼Îµí €edited
cebae1bdb9cf83cebcceb5eda080656469746564
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send invalid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
Îºá½¹ÏƒÎ¼Îµí €edited
cebae1bdb9cf83cebcceb5eda080656469746564
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send invalid UTF-8 text message in 3 fragments (frames).
First frame payload is valid, then wait, then 2nd frame which contains the payload making the sequence invalid, then wait, then 3rd frame with rest.
Note that PART1 and PART3 are valid UTF-8 in themselves, PART2 is a 0x11000 encoded as in the UTF-8 integer encoding scheme, but the codepoint is invalid (out of range).
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5)
PART2 = ô€€ (f4908080)
PART3 = edited (656469746564)
Case Expectation
The first frame is accepted, we expect to timeout on the first wait. The 2nd frame should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.1, but in 2nd frame, we send only up to and including the octet making the complete payload invalid.
MESSAGE PARTS:
PART1 = κόσμεô (cebae1bdb9cf83cebcceb5f4)
PART2 = (90)
PART3 = €€edited (8080656469746564)
Case Expectation
The first frame is accepted, we expect to timeout on the first wait. The 2nd frame should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.1, but we send message not in 3 frames, but in 3 chops of the same message frame.
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5)
PART2 = ô€€ (f4908080)
PART3 = edited (656469746564)
Case Expectation
The first chop is accepted, we expect to timeout on the first wait. The 2nd chop should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.2, but we send message not in 3 frames, but in 3 chops of the same message frame.
MESSAGE PARTS:
PART1 = κόσμεô (cebae1bdb9cf83cebcceb5f4)
PART2 = (90)
PART3 = ()
Case Expectation
The first chop is accepted, we expect to timeout on the first wait. The 2nd chop should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
Î
ce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κ
ceba
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
뼇
cebae1
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κá½
cebae1bd
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κό
cebae1bdb9
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κόÏ
cebae1bdb9cf
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσ
cebae1bdb9cf83
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κόσÎ
cebae1bdb9cf83ce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμ
cebae1bdb9cf83cebc
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κόσμÎ
cebae1bdb9cf83cebcce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE: