various testing fixes and cleanups

This commit is contained in:
The MMGen Project 2022-08-30 12:06:05 +00:00
commit 3fc105ffec
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
6 changed files with 23 additions and 15 deletions

View file

@ -162,7 +162,8 @@ init_tests() {
[ "$MSYS2" ] && t_alts_skip='m z' # no moneropy (pysha3), zcash-mini (golang)
[ "$ARM32" ] && t_alts_skip='z e'
[ "$DISTRO" == 'arch' -o "$DISTRO" == 'archarm' ] || t_alts_skip+=' e' # ethkey available only on Arch Linux
# ARM ethkey available only on Arch Linux:
[ \( "$ARM32" -o "$ARM64" \) -a "$DISTRO" != 'archarm' ] && t_alts_skip+=' e'
f_alts='Gen-only altcoin tests completed'
@ -184,7 +185,8 @@ init_tests() {
[ "$FAST" ] && t_eth_skip='oe'
[ "$ARM32" -o "$ARM64" ] && t_eth_skip+=' parity'
[ \( "$ARM32" -o "$ARM64" \) -a "$DISTRO" != 'archarm' ] && t_eth_skip+=' oe' # ARM oe available only on ArchLinuxArm
# ARM openethereum available only on ArchLinuxArm:
[ \( "$ARM32" -o "$ARM64" \) -a "$DISTRO" != 'archarm' ] && t_eth_skip+=' oe'
i_autosign='Autosign'
s_autosign='The bitcoin, bitcoin-bchn and litecoin mainnet and testnet daemons must be running for the following test'

View file

@ -1312,7 +1312,10 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared):
from mmgen.tw.ctl import TrackingWallet
tw = await TrackingWallet(self.proto)
imsg(f'Moving tracking wallet')
os.rename( tw.tw_fn, tw.tw_fn+'.bak.json' )
bakfile = tw.tw_fn + '.bak.json'
if os.path.exists(bakfile):
os.unlink(bakfile)
os.rename( tw.tw_fn, bakfile )
return 'ok'
def twimport(self,add_args=[],expect_str=None):

View file

@ -53,7 +53,7 @@ def test_flags_err(ut,d):
def test_cmd(args_in,message):
qmsg_r(message)
args = [f'test/{args_in[0]}-coin-daemons.py'] + list(args_in[1:])
args = ['python3', f'test/{args_in[0]}-coin-daemons.py'] + list(args_in[1:])
vmsg('\n' + orange(f"Running '{' '.join(args)}':"))
pipe = None if opt.verbose else PIPE
cp = run( args, stdout=pipe, stderr=pipe, check=True )

View file

@ -103,12 +103,14 @@ class unit_tests:
N,r,p = 4,8,16
buflen = 64
import scrypt
scrypt.hash(passwd, salt, N=2**N, r=r, p=p, buflen=buflen)
vmsg('Testing builtin scrypt module (hashlib)')
from hashlib import scrypt # max N == 14!!
scrypt(password=passwd,salt=salt,n=2**N,r=r,p=p,maxmem=0,dklen=buflen)
vmsg('Testing standalone scrypt module')
import scrypt
scrypt.hash(passwd, salt, N=2**N, r=r, p=p, buflen=buflen)
return True
def solc(self,name,ut):

View file

@ -40,7 +40,6 @@ class unit_test(object):
assert ret == res, ret
def test_presets(do_presets):
vmsg(' id N p r')
for hp in do_presets:
hp = str(hp)
res = presets[hp]
@ -59,15 +58,15 @@ class unit_test(object):
silence()
g.force_standalone_scrypt_module = False
vmsg('Passwords:')
vmsg('Passwords (auto module selection):')
test_passwords()
vmsg('Hash presets:')
vmsg('Hash presets (auto module selection):')
test_presets((1,2,3,4) if opt.fast else (1,2,3,4,5,6,7))
g.force_standalone_scrypt_module = True
vmsg('Passwords (standalone scrypt):')
vmsg('Passwords (force standalone scrypt module):')
test_passwords()
vmsg('Hash presets (standalone scrypt):')
vmsg('Hash presets (force standalone scrypt module):')
test_presets((1,2,3))
if opt.quiet:

View file

@ -47,10 +47,12 @@ class unit_tests:
return True
def ethkey(self,name,ut):
if g.platform == 'linux':
if g.platform == 'linux' and os.uname().machine != 'x86_64':
distro = [l for l in open('/etc/os-release').read().split('\n') if l.startswith('ID=')][0][3:]
if distro not in ('arch','archarm'):
ymsg(f'Skipping ethkey availability test for distro {distro!r}')
if distro != 'archarm':
ymsg('Skipping ethkey availability test for distro {!r} on architecture {!r}'.format(
distro,
os.uname().machine ))
return True
from test.include.common import get_ethkey
get_ethkey()