@@ -342,22 +342,56 @@ def test_insert(self):
342342 self .fail ("inserted rule does not match original" )
343343
344344
345+ class TestXTNotrackTarget (unittest .TestCase ):
346+ def setUp (self ):
347+ self .rule = iptc .Rule ()
348+ self .rule .dst = "127.0.0.2"
349+ self .rule .protocol = "tcp"
350+ self .rule .out_interface = "eth0"
351+
352+ self .target = iptc .Target (self .rule , "NOTRACK" )
353+ self .rule .target = self .target
354+
355+ self .chain = iptc .Chain (iptc .Table (iptc .Table .RAW ),
356+ "iptc_test_notrack" )
357+ try :
358+ self .chain .flush ()
359+ self .chain .delete ()
360+ except :
361+ pass
362+ iptc .Table (iptc .Table .RAW ).create_chain (self .chain )
363+
364+ def tearDown (self ):
365+ self .chain .flush ()
366+ self .chain .delete ()
367+
368+ def test_notrack (self ):
369+ self .chain .insert_rule (self .rule )
370+ t = self .chain .rules [0 ].target
371+ self .assertIn (t .name , ["NOTRACK" , "CT" ])
372+
373+
345374def suite ():
375+ suites = []
346376 suite_target = unittest .TestLoader ().loadTestsFromTestCase (TestTarget )
347377 suite_tos = unittest .TestLoader ().loadTestsFromTestCase (TestXTTosTarget )
348378 suite_cluster = unittest .TestLoader ().loadTestsFromTestCase (
349379 TestXTClusteripTarget )
380+ suite_redir = unittest .TestLoader ().loadTestsFromTestCase (
381+ TestIPTRedirectTarget )
382+ suite_masq = unittest .TestLoader ().loadTestsFromTestCase (
383+ TestIPTMasqueradeTarget )
384+ suite_dnat = unittest .TestLoader ().loadTestsFromTestCase (
385+ TestDnatTarget )
386+ suite_conntrack = unittest .TestLoader ().loadTestsFromTestCase (
387+ TestXTNotrackTarget )
388+ suites .extend ([suite_target , suite_cluster , suite_tos ])
350389 if is_table_available (iptc .Table .NAT ):
351- suite_redir = unittest .TestLoader ().loadTestsFromTestCase (
352- TestIPTRedirectTarget )
353- suite_masq = unittest .TestLoader ().loadTestsFromTestCase (
354- TestIPTMasqueradeTarget )
355- suite_dnat = unittest .TestLoader ().loadTestsFromTestCase (
356- TestDnatTarget )
357- return unittest .TestSuite ([suite_target , suite_cluster , suite_redir ,
358- suite_tos , suite_masq , suite_dnat ])
359- else :
360- return unittest .TestSuite ([suite_target , suite_cluster , suite_tos ])
390+ suites .extend ([suite_target , suite_cluster , suite_redir , suite_tos ,
391+ suite_masq , suite_dnat ])
392+ if is_table_available (iptc .Table .RAW ):
393+ suites .extend ([suite_conntrack ])
394+ return unittest .TestSuite (suites )
361395
362396
363397def run_tests ():
0 commit comments