go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/iptables_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package resources 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestParseStat(t *testing.T) { 13 // not opt 14 t.Run("parsing conf lines", func(t *testing.T) { 15 line := []string{ 16 "Chain OUTPUT (policy DROP 227 packets, 12904 bytes)", 17 "num pkts bytes target prot opt in out source destination", 18 "2 0 0 ACCEPT tcp * * ::/0 ::/0 state NEW,ESTABLISHED", 19 } 20 expected := []Stat{ 21 { 22 LineNumber: 2, 23 Packets: 0, 24 Bytes: 0, 25 Target: "ACCEPT", 26 Protocol: "tcp", 27 Opt: " ", 28 Input: "*", 29 Output: "*", 30 Source: "::/0", 31 Destination: "::/0", 32 Options: "state NEW,ESTABLISHED", 33 }, 34 } 35 result, err := ParseStat(line, true) 36 require.NoError(t, err) 37 require.Equal(t, expected, result) 38 }) 39 // opt 40 t.Run("parsing conf lines", func(t *testing.T) { 41 line := []string{ 42 "Chain OUTPUT (policy DROP 227 packets, 12904 bytes)", 43 "num pkts bytes target prot opt in out source destination", 44 "2 0 0 ACCEPT tcp opt * * ::/0 ::/0 state NEW,ESTABLISHED", 45 } 46 expected := []Stat{ 47 { 48 LineNumber: 2, 49 Packets: 0, 50 Bytes: 0, 51 Target: "ACCEPT", 52 Protocol: "tcp", 53 Opt: "opt", 54 Input: "*", 55 Output: "*", 56 Source: "::/0", 57 Destination: "::/0", 58 Options: "state NEW,ESTABLISHED", 59 }, 60 } 61 result, err := ParseStat(line, true) 62 require.NoError(t, err) 63 require.Equal(t, expected, result) 64 }) 65 }