|
14 | 14 | 0xFF, 0xFF, 0xFF, 0xFF, // key
|
15 | 15 | 0xFF, 0xFF, 0xFF, 0xFF} // value
|
16 | 16 |
|
| 17 | + emptyV1Message = []byte{ |
| 18 | + 167, 236, 104, 3, // CRC |
| 19 | + 0x01, // magic version byte |
| 20 | + 0x00, // attribute flags |
| 21 | + 0x00, 0x00, 0x00, 0x00, // timestamp |
| 22 | + 0xFF, 0xFF, 0xFF, 0xFF, // key |
| 23 | + 0xFF, 0xFF, 0xFF, 0xFF} // value |
| 24 | + |
| 25 | + emptyV2Message = []byte{ |
| 26 | + 167, 236, 104, 3, // CRC |
| 27 | + 0x02, // magic version byte |
| 28 | + 0x00, // attribute flags |
| 29 | + 0xFF, 0xFF, 0xFF, 0xFF, // key |
| 30 | + 0xFF, 0xFF, 0xFF, 0xFF} // value |
| 31 | + |
17 | 32 | emptyGzipMessage = []byte{
|
18 | 33 | 97, 79, 149, 90, //CRC
|
19 | 34 | 0x00, // magic version byte
|
@@ -179,3 +194,19 @@ func TestMessageDecodingBulkLZ4(t *testing.T) {
|
179 | 194 | t.Errorf("Decoding produced a set with %d messages, but 2 were expected.", len(message.Set.Messages))
|
180 | 195 | }
|
181 | 196 | }
|
| 197 | + |
| 198 | +func TestMessageDecodingVersion1(t *testing.T) { |
| 199 | + message := Message{Version: 1} |
| 200 | + testDecodable(t, "decoding empty v1 message", &message, emptyV1Message) |
| 201 | +} |
| 202 | + |
| 203 | +func TestMessageDecodingUnknownVersions(t *testing.T) { |
| 204 | + message := Message{Version: 2} |
| 205 | + err := decode(emptyV2Message, &message) |
| 206 | + if err == nil { |
| 207 | + t.Error("Decoding did not produce an error for an unknown magic byte") |
| 208 | + } |
| 209 | + if err.Error() != "kafka: error decoding packet: unknown magic byte (2)" { |
| 210 | + t.Error("Decoding an unknown magic byte produced an unknown error ", err) |
| 211 | + } |
| 212 | +} |
0 commit comments