diff --git a/test/test.py b/test/test.py index 5881895b..bfed3661 100755 --- a/test/test.py +++ b/test/test.py @@ -872,7 +872,8 @@ cmd_group['conv_out'] = ( # writing ('ref_seed_conv_out', 'ref seed conversion to seed'), ('ref_incog_conv_out', 'ref seed conversion to incog data'), ('ref_incox_conv_out', 'ref seed conversion to hex incog data'), - ('ref_hincog_conv_out', 'ref seed conversion to hidden incog data') + ('ref_hincog_conv_out', 'ref seed conversion to hidden incog data'), + ('ref_hincog_blkdev_conv_out', 'ref seed conversion to hidden incog data on block device') ) cmd_group['regtest'] = ( @@ -2695,17 +2696,34 @@ class MMGenTestSuite(object): def ref_incox_conv_out(self,name): self.walletconv_out(name,'hex incognito data',out_fmt='xi',pw=True) - def ref_hincog_conv_out(self,name,extra_uopts=[]): - ic_f = os.path.join(cfg['tmpdir'],hincog_fn) + def ref_hincog_conv_out(self,name,ic_f=None): + if not ic_f: ic_f = os.path.join(cfg['tmpdir'],hincog_fn) hi_parms = '{},{}'.format(ic_f,ref_wallet_incog_offset) sl_parm = '-l' + str(cfg['seed_len']) self.walletconv_out(name, 'hidden incognito data', 'hi', - uopts=['-J',hi_parms,sl_parm] + extra_uopts, + uopts=['-J',hi_parms,sl_parm], uopts_chk=['-H',hi_parms,sl_parm], pw=True ) + def ref_hincog_blkdev_conv_out(self,name): + imsg('Creating block device image file') + ic_img = os.path.join(cfg['tmpdir'],'hincog_blkdev_img') + subprocess.check_output(['dd','if=/dev/zero','of='+ic_img,'bs=1K','count=1'],stderr=subprocess.PIPE) + ic_dev = subprocess.check_output(['losetup','-f']).strip().decode() + ic_dev_mode_orig = '{:o}'.format(os.stat(ic_dev).st_mode & 0xfff) + ic_dev_mode = '0666' + imsg("Changing permissions on loop device to '{}'".format(ic_dev_mode)) + subprocess.check_output(['sudo','chmod',ic_dev_mode,ic_dev],stderr=subprocess.PIPE) + imsg("Attaching loop device '{}'".format(ic_dev)) + subprocess.check_output(['losetup',ic_dev,ic_img]) + self.ref_hincog_conv_out(name,ic_f=ic_dev) + imsg("Detaching loop device '{}'".format(ic_dev)) + subprocess.check_output(['losetup','-d',ic_dev]) + imsg("Resetting permissions on loop device to '{}'".format(ic_dev_mode_orig)) + subprocess.check_output(['sudo','chmod',ic_dev_mode_orig,ic_dev],stderr=subprocess.PIPE) + def ref_wallet_chk(self,name): wf = os.path.join(ref_dir,cfg['ref_wallet']) self.walletchk(name,wf,pf=None,pw=True,sid=cfg['seed_id']) @@ -4013,6 +4031,7 @@ class MMGenTestSuite(object): 'ref_incog_conv_out', 'ref_incox_conv_out', 'ref_hincog_conv_out', + 'ref_hincog_blkdev_conv_out', 'ref_wallet_chk', 'refwalletgen', 'ref_seed_chk',