a go dns packet parser
1package magna 2 3import ( 4 "testing" 5) 6 7func TestU8(t *testing.T) { 8 buf := []byte{ 9 0x01, 10 } 11 12 actual, offset, err := getU8(buf, 0) 13 assert_eq(t, uint8(1), actual) 14 assert_eq(t, 1, offset) 15 assert_no_error(t, err) 16 17 actual, offset, err = getU8(buf, 1) 18 assert_eq(t, uint8(0), actual) 19 assert_eq(t, 1, offset) 20 assert_error(t, err) 21} 22 23func TestU16(t *testing.T) { 24 buf := []byte{ 25 0x00, 0x01, 26 } 27 28 actual, offset, err := getU16(buf, 0) 29 assert_eq(t, uint16(1), actual) 30 assert_eq(t, 2, offset) 31 assert_no_error(t, err) 32 33 actual, offset, err = getU16(buf, 1) 34 assert_eq(t, uint16(0), actual) 35 assert_eq(t, 2, offset) 36 assert_error(t, err) 37} 38 39func TestU32(t *testing.T) { 40 buf := []byte{ 41 0x00, 0x00, 0x00, 0x01, 42 } 43 44 actual, offset, err := getU32(buf, 0) 45 assert_eq(t, uint32(1), actual) 46 assert_eq(t, 4, offset) 47 assert_no_error(t, err) 48 49 actual, offset, err = getU32(buf, 1) 50 assert_eq(t, uint32(0), actual) 51 assert_eq(t, 4, offset) 52 assert_error(t, err) 53} 54 55func TestSlice(t *testing.T) { 56 buf := []byte{ 57 0x62, 0x6c, 0x75, 58 } 59 60 actual, offset, err := getSlice(buf, 0, 3) 61 assert_eq(t, "blu", string(actual)) 62 assert_eq(t, 3, offset) 63 assert_no_error(t, err) 64 65 actual, offset, err = getSlice(buf, 0, 4) 66 assert_eq(t, "", string(actual)) 67 assert_eq(t, 3, offset) 68 assert_error(t, err) 69}