Browse Source

test.py --segwit: execute only relevant tests

The MMGen Project 3 years ago
parent
commit
4d577609ee
2 changed files with 46 additions and 0 deletions
  1. 7 0
      test/test.py
  2. 39 0
      test/test_py_d/ts_main.py

+ 7 - 0
test/test.py

@@ -186,6 +186,8 @@ if not (opt.resume or opt.skip_deps):
 
 check_segwit_opts()
 
+testing_segwit = opt.segwit or opt.segwit_random or opt.bech32
+
 if g.test_suite_deterministic:
 	opt.no_timings = True
 	init_color(num_colors=0)
@@ -790,6 +792,7 @@ class TestSuiteRunner(object):
 
 		os.environ['MMGEN_BOGUS_WALLET_DATA'] = '' # zero this here, so test group doesn't have to
 		self.ts = self.gm.gm_init_group(self,gname,self.spawn_wrapper)
+		self.ts_clsname = type(self.ts).__name__
 
 		if opt.resume_after:
 			global resume
@@ -863,6 +866,10 @@ class TestSuiteRunner(object):
 			dpy          = False ):
 
 		self.ts.test_name = cmd
+
+		if self.ts_clsname == 'TestSuiteMain' and testing_segwit and cmd not in self.ts.segwit_do:
+			return False
+
 		rerun = root # force_delete is not passed to recursive call
 
 		fns = []

+ 39 - 0
test/test_py_d/ts_main.py

@@ -146,6 +146,45 @@ class TestSuiteMain(TestSuiteBase,TestSuiteShared):
 		('txcreate6', (21,'transaction creation with corrected vsize (6)', [[['addrs'],21]])),
 		('txsign6',   (21,'transaction signing with corrected vsize',      [[['mmdat','rawtx'],21]])),
 	)
+	segwit_do = (
+		'walletgen',
+		'addrgen',
+		'txcreate',
+		'txbump',
+		'txsign',
+		'txsend',
+		'txdo',
+		'export_incog',
+		'keyaddrgen',
+		'txsign_keyaddr',
+		'txcreate_ni',
+		'walletgen2',
+		'addrgen2',
+		'txcreate2',
+		'txsign2',
+		'export_mnemonic2',
+		'walletgen3',
+		'addrgen3',
+		'txcreate3',
+		'txsign3',
+		'walletgen14',
+		'addrgen14',
+		'keyaddrgen14',
+		'walletgen4',
+		'addrgen4',
+		'txcreate4',
+		'txsign4',
+		'txdo4',
+		'txbump4',
+		'walletgen5',
+		'addrgen5',
+		'txcreate5',
+		'txsign5',
+		'walletgen6',
+		'addrgen6',
+		'txcreate6',
+		'txsign6',
+	)
 
 	def __init__(self,trunner,cfgs,spawn):
 		TestSuiteBase.__init__(self,trunner,cfgs,spawn)