Skip to content

Commit

Permalink
Big endian test compatibility
Browse files Browse the repository at this point in the history
[WIP] Fixes google#210
  • Loading branch information
turekt committed Mar 13, 2023
1 parent e016b4e commit d607166
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion nftables_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ import (
)

var (
enableSysTests = flag.Bool("run_system_tests", false, "Run tests that operate against the live kernel")
enableSysTests = flag.Bool("run_system_tests", false, "Run tests that operate against the live kernel")
isBigEndianSystem = binaryutil.NativeEndian.Uint16([]byte{0x01, 0x02}) == binaryutil.BigEndian.Uint16([]byte{0x01, 0x02})
)

// nfdump returns a hexdump of 4 bytes per line (like nft --debug=all), allowing
Expand Down Expand Up @@ -294,6 +295,19 @@ func TestConfigureNAT(t *testing.T) {
// batch end
[]byte("\x00\x00\x00\x0a"),
}
if isBigEndianSystem {
want = [][]byte{
[]byte("\x00\x00\x00\x0a"),
[]byte("\x00\x00\x00\x00"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x08\x00\x02\x00\x00\x00\x00"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x0f\x00\x03\x70\x72\x65\x72\x6f\x75\x74\x69\x6e\x67\x00\x00\x00\x14\x80\x04\x00\x08\x00\x01\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x08\x00\x07\x6e\x61\x74\x00"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x10\x00\x03\x70\x6f\x73\x74\x72\x6f\x75\x74\x69\x6e\x67\x00\x00\x14\x80\x04\x00\x08\x00\x01\x00\x00\x00\x04\x00\x08\x00\x02\x00\x00\x00\x64\x00\x08\x00\x07\x6e\x61\x74\x00"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x10\x00\x02\x70\x6f\x73\x74\x72\x6f\x75\x74\x69\x6e\x67\x00\x00\x74\x80\x04\x00\x24\x80\x01\x00\x09\x00\x01\x6d\x65\x74\x61\x00\x00\x00\x00\x00\x14\x80\x02\x00\x08\x00\x02\x00\x00\x00\x07\x00\x08\x00\x01\x00\x00\x00\x01\x00\x38\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x2c\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x18\x80\x03\x00\x14\x00\x01\x75\x70\x6c\x69\x6e\x6b\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x80\x01\x00\x09\x00\x01\x6d\x61\x73\x71\x00\x00\x00\x00\x00\x04\x80\x02"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x0f\x00\x02\x70\x72\x65\x72\x6f\x75\x74\x69\x6e\x67\x00\x00\x01\x98\x80\x04\x00\x24\x80\x01\x00\x09\x00\x01\x6d\x65\x74\x61\x00\x00\x00\x00\x00\x14\x80\x02\x00\x08\x00\x02\x00\x00\x00\x06\x00\x08\x00\x01\x00\x00\x00\x01\x00\x38\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x2c\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x18\x80\x03\x00\x14\x00\x01\x75\x70\x6c\x69\x6e\x6b\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x80\x01\x00\x09\x00\x01\x6d\x65\x74\x61\x00\x00\x00\x00\x00\x14\x80\x02\x00\x08\x00\x02\x00\x00\x00\x10\x00\x08\x00\x01\x00\x00\x00\x01\x00\x2c\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x20\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x0c\x80\x03\x00\x05\x00\x01\x06\x00\x00\x00\x00\x34\x80\x01\x00\x0c\x00\x01\x70\x61\x79\x6c\x6f\x61\x64\x00\x00\x24\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x02\x00\x08\x00\x03\x00\x00\x00\x02\x00\x08\x00\x04\x00\x00\x00\x02\x00\x2c\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x20\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x0c\x80\x03\x00\x06\x00\x01\x0f\xe6\x00\x00\x00\x2c\x80\x01\x00\x0e\x00\x01\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x00\x00\x00\x00\x18\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x0c\x80\x02\x00\x08\x00\x01\xc0\xa8\x17\x02\x00\x2c\x80\x01\x00\x0e\x00\x01\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x00\x00\x00\x00\x18\x80\x02\x00\x08\x00\x01\x00\x00\x00\x02\x00\x0c\x80\x02\x00\x06\x00\x01\x0f\xf0\x00\x00\x00\x30\x80\x01\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x24\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x02\x00\x08\x00\x03\x00\x00\x00\x01\x00\x08\x00\x05\x00\x00\x00\x02"),
[]byte("\x02\x00\x00\x00\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x0f\x00\x02\x70\x72\x65\x72\x6f\x75\x74\x69\x6e\x67\x00\x00\x01\xf8\x80\x04\x00\x24\x80\x01\x00\x09\x00\x01\x6d\x65\x74\x61\x00\x00\x00\x00\x00\x14\x80\x02\x00\x08\x00\x02\x00\x00\x00\x06\x00\x08\x00\x01\x00\x00\x00\x01\x00\x38\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x2c\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x18\x80\x03\x00\x14\x00\x01\x75\x70\x6c\x69\x6e\x6b\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x80\x01\x00\x09\x00\x01\x6d\x65\x74\x61\x00\x00\x00\x00\x00\x14\x80\x02\x00\x08\x00\x02\x00\x00\x00\x10\x00\x08\x00\x01\x00\x00\x00\x01\x00\x2c\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x20\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x00\x00\x0c\x80\x03\x00\x05\x00\x01\x11\x00\x00\x00\x00\x34\x80\x01\x00\x0c\x00\x01\x70\x61\x79\x6c\x6f\x61\x64\x00\x00\x24\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x02\x00\x08\x00\x03\x00\x00\x00\x02\x00\x08\x00\x04\x00\x00\x00\x02\x00\x2c\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x20\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x05\x00\x0c\x80\x03\x00\x06\x00\x01\x0f\xe6\x00\x00\x00\x2c\x80\x01\x00\x08\x00\x01\x63\x6d\x70\x00\x00\x20\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x03\x00\x0c\x80\x03\x00\x06\x00\x01\x0f\xfa\x00\x00\x00\x2c\x80\x01\x00\x0e\x00\x01\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x00\x00\x00\x00\x18\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x0c\x80\x02\x00\x08\x00\x01\xc0\xa8\x17\x02\x00\x2c\x80\x01\x00\x0e\x00\x01\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x00\x00\x00\x00\x18\x80\x02\x00\x08\x00\x01\x00\x00\x00\x02\x00\x0c\x80\x02\x00\x06\x00\x01\x0f\xe6\x00\x00\x00\x2c\x80\x01\x00\x0e\x00\x01\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x00\x00\x00\x00\x18\x80\x02\x00\x08\x00\x01\x00\x00\x00\x03\x00\x0c\x80\x02\x00\x06\x00\x01\x0f\xfa\x00\x00\x00\x38\x80\x01\x00\x08\x00\x01\x6e\x61\x74\x00\x00\x2c\x80\x02\x00\x08\x00\x01\x00\x00\x00\x01\x00\x08\x00\x02\x00\x00\x00\x02\x00\x08\x00\x03\x00\x00\x00\x01\x00\x08\x00\x05\x00\x00\x00\x02\x00\x08\x00\x06\x00\x00\x00\x03"),
[]byte("\x00\x00\x00\x0a"),
}
}

c, err := nftables.New(nftables.WithTestDial(
func(req []netlink.Message) ([]netlink.Message, error) {
Expand Down

0 comments on commit d607166

Please sign in to comment.