diff --git a/nftables_test.go b/nftables_test.go index 2f5f1e8..c3008fb 100644 --- a/nftables_test.go +++ b/nftables_test.go @@ -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 @@ -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) {