github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/pkg/iptables/firewalld_test.go (about) 1 package iptables 2 3 import ( 4 "net" 5 "strconv" 6 "testing" 7 ) 8 9 func TestFirewalldInit(t *testing.T) { 10 FirewalldInit() 11 } 12 13 func TestReloaded(t *testing.T) { 14 var err error 15 var fwdChain *Chain 16 17 fwdChain, err = NewChain("FWD", "lo", Filter) 18 if err != nil { 19 t.Fatal(err) 20 } 21 defer fwdChain.Remove() 22 23 // copy-pasted from iptables_test:TestLink 24 ip1 := net.ParseIP("192.168.1.1") 25 ip2 := net.ParseIP("192.168.1.2") 26 port := 1234 27 proto := "tcp" 28 29 err = fwdChain.Link(Append, ip1, ip2, port, proto) 30 if err != nil { 31 t.Fatal(err) 32 } else { 33 // to be re-called again later 34 OnReloaded(func() { fwdChain.Link(Append, ip1, ip2, port, proto) }) 35 } 36 37 rule1 := []string{ 38 "-i", fwdChain.Bridge, 39 "-o", fwdChain.Bridge, 40 "-p", proto, 41 "-s", ip1.String(), 42 "-d", ip2.String(), 43 "--dport", strconv.Itoa(port), 44 "-j", "ACCEPT"} 45 46 if !Exists(fwdChain.Table, fwdChain.Name, rule1...) { 47 t.Fatalf("rule1 does not exist") 48 } 49 50 // flush all rules 51 fwdChain.Remove() 52 53 reloaded() 54 55 // make sure the rules have been recreated 56 if !Exists(fwdChain.Table, fwdChain.Name, rule1...) { 57 t.Fatalf("rule1 hasn't been recreated") 58 } 59 } 60 61 func TestPassthrough(t *testing.T) { 62 rule1 := []string{ 63 "-i", "lo", 64 "-p", "udp", 65 "--dport", "123", 66 "-j", "ACCEPT"} 67 68 if firewalldRunning { 69 _, err := Passthrough(Iptables, append([]string{"-A"}, rule1...)...) 70 if err != nil { 71 t.Fatal(err) 72 } 73 if !Exists(Filter, "INPUT", rule1...) { 74 t.Fatalf("rule1 does not exist") 75 } 76 } 77 78 }