Browse Source

tooltest2.py: use mnemonic vectors from unit tests

The MMGen Project 3 years ago
parent
commit
3dde478ebd
2 changed files with 38 additions and 51 deletions
  1. 13 50
      test/tooltest2.py
  2. 25 1
      test/unit_tests_d/ut_baseconv.py

+ 13 - 50
test/tooltest2.py

@@ -97,58 +97,21 @@ sample_text_hexdump = (
 
 kafile_opts = ['-p1','-Ptest/ref/keyaddrfile_password']
 
-from test.unit_tests_d.ut_bip39 import unit_test as bip39
+from test.unit_tests_d.ut_baseconv import unit_test as ut_baseconv
+from test.unit_tests_d.ut_bip39 import unit_test as ut_bip39
+from test.unit_tests_d.ut_xmrseed import unit_test as ut_xmrseed
 tests = {
 	'Mnemonic': {
-		'hex2mn': [
-			( ['deadbeefdeadbeefdeadbeefdeadbeef','fmt=mmgen'],
-			'table cast forgive master funny gaze sadness ripple million paint moral match' ),
-			( ['deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'],
-			('swirl maybe anymore mix scale stray fog use approach page crime rhyme ' +
-			'class former strange window snap soon') ),
-			( ['deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'],
-			('swell type milk figure cheese phone fill black test bloom heard comfort ' +
-			'image terrible radio lesson own reply battle goal goodbye need laugh stream') ),
-			( ['ffffffffffffffffffffffffffffffff'],
-			'yellow yeah show bowl season spider cling defeat poison law shelter reflect' ),
-			( ['ffffffffffffffffffffffffffffffffffffffffffffffff'],
-			('yeah youth quit fail perhaps drum out person young click skin ' +
-			'weird inside silently perfectly together anyone memory') ),
-			( ['ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'],
-			('wrote affection object cell opinion here laughter stare honest north cost begin ' +
-			'murder something yourself effort acid dot doubt game broke tell guilt innocent') ),
-			( ['0000000000000000000000000000000000000000000000000000000000000001'],
-			('able able able able able able able able able able able able ' +
-			'able able able able able able able able able able able about') ),
-			( ['e8164dda6d42bd1e261a3406b2038dcbddadbeefdeadbeefdeadbeefdeadbe0f','fmt=xmrseed'],
-			('viewpoint donuts ardent template unveil agile meant unafraid urgent athlete rustled mime azure ' +
-			'jaded hawk baby jagged haystack baby jagged haystack ramped oncoming point template') ),
-		] + [([a,'fmt=bip39'],b) for a,b in bip39.vectors],
-		'mn2hex': [
-			( ['table cast forgive master funny gaze sadness ripple million paint moral match','fmt=mmgen'],
-				'deadbeefdeadbeefdeadbeefdeadbeef' ),
-			( ['swirl maybe anymore mix scale stray fog use approach page crime rhyme ' +
-				'class former strange window snap soon'],
-				'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'),
-			( ['swell type milk figure cheese phone fill black test bloom heard comfort ' +
-				'image terrible radio lesson own reply battle goal goodbye need laugh stream'],
-				'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef' ),
-			( ['yellow yeah show bowl season spider cling defeat poison law shelter reflect'],
-				'ffffffffffffffffffffffffffffffff' ),
-			( ['yeah youth quit fail perhaps drum out person young click skin ' +
-				'weird inside silently perfectly together anyone memory'],
-				'ffffffffffffffffffffffffffffffffffffffffffffffff' ) ,
-			( ['wrote affection object cell opinion here laughter stare honest north cost begin ' +
-				'murder something yourself effort acid dot doubt game broke tell guilt innocent'],
-				'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'),
-			( ['able able able able able able able able able able able able ' +
-				'able able able able able able able able able able able about'],
-				'0000000000000000000000000000000000000000000000000000000000000001'),
-			( ['viewpoint donuts ardent template unveil agile meant unafraid urgent athlete ' +
-				'rustled mime azure jaded hawk baby jagged haystack baby jagged haystack ' +
-				'ramped oncoming point template','fmt=xmrseed'],
-				'e8164dda6d42bd1e261a3406b2038dcbddadbeefdeadbeefdeadbeefdeadbe0f'),
-		] + [([b,'fmt=bip39'],a) for a,b in bip39.vectors],
+		'hex2mn': (
+			[([a[0]],b) for a,b in ut_baseconv.vectors['mmgen']] +
+			[([a,'fmt=bip39'],b) for a,b in ut_bip39.vectors] +
+			[([a,'fmt=xmrseed'],b) for a,b in ut_xmrseed.vectors]
+		),
+		'mn2hex': (
+			[([b,'fmt=mmgen'],a[0]) for a,b in ut_baseconv.vectors['mmgen']] +
+			[([b,'fmt=bip39'],a) for a,b in ut_bip39.vectors] +
+			[([b,'fmt=xmrseed'],a) for a,b in ut_xmrseed.vectors]
+		),
 		'mn_rand128': [
 			( [], is_mmgen_mnemonic, ['-r0']),
 			( ['fmt=mmgen'], is_mmgen_mnemonic, ['-r0']),

+ 25 - 1
test/unit_tests_d/ut_baseconv.py

@@ -127,6 +127,30 @@ class unit_test(object):
 			(('00'*24,'seed'),'1'*75),
 			(('00'*32,'seed'),'1'*100),
 		),
+		'mmgen': (
+			(('deadbeefdeadbeefdeadbeefdeadbeef','seed'),
+			'table cast forgive master funny gaze sadness ripple million paint moral match' ),
+			(('deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef','seed'),
+			'swirl maybe anymore mix scale stray fog use approach page crime rhyme ' +
+			'class former strange window snap soon'),
+			(('deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef','seed'),
+			'swell type milk figure cheese phone fill black test bloom heard comfort ' +
+			'image terrible radio lesson own reply battle goal goodbye need laugh stream'),
+			(('ffffffffffffffffffffffffffffffff','seed'),
+			'yellow yeah show bowl season spider cling defeat poison law shelter reflect'),
+			(('ffffffffffffffffffffffffffffffffffffffffffffffff','seed'),
+			'yeah youth quit fail perhaps drum out person young click skin ' +
+			'weird inside silently perfectly together anyone memory'),
+			(('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff','seed'),
+			'wrote affection object cell opinion here laughter stare honest north cost begin ' +
+			'murder something yourself effort acid dot doubt game broke tell guilt innocent'),
+			(('00000000000000000000000000000001','seed'),
+			'able ' * 11 + 'about'),
+			(('000000000000000000000000000000000000000000000001','seed'),
+			'able ' * 17 + 'about'),
+			(('0000000000000000000000000000000000000000000000000000000000000001','seed'),
+			'able ' * 23 + 'about'),
+		),
 	}
 
 	def run_test(self,name,ut):
@@ -163,7 +187,7 @@ class unit_test(object):
 			for (hexstr,pad),ret_chk in data:
 				if type(pad) == int:
 					pad = len(hexstr)
-				ret = baseconv(base).tohex( ret_chk, pad=pad )
+				ret = baseconv(base).tohex( ret_chk.split() if base == 'mmgen' else ret_chk, pad=pad )
 				if pad == None:
 					assert int(ret,16) == int(hexstr,16), rerr.format(int(ret,16),int(hexstr,16))
 				else: