Commit 0ae88a32 authored by Kirill Smelkov's avatar Kirill Smelkov

X .nxdtest: Verify Go bits with GOMAXPROCS=1,2,`nproc`

Some wcfs bugs are aonly likely to trigger with GOMAXPROCS=1 (see
corresponding tox.ini history), same for 2. Go-fuse also has issues with
GOMAXPROCS=1 (https://github.com/hanwen/go-fuse/issues/261) that
sometimes manifest themselves as hangs with GOMAXPROCS=`nproc` too.
parent 6580fbf1
# setup to run tests on Nexedi testing infrastructure. # setup to run tests on Nexedi testing infrastructure.
# https://stack.nexedi.com/test_status # https://stack.nexedi.com/test_status
storv = ['fs', 'zeo', 'neo'] # storage backends to test against
# some bugs are only likely to trigger when there is only 1 or 2 main OS thread(s) in wcfs
# GOMAXPROCS='' means use `nproc`
gonprocv = [1, 2, ''] # GOMAXPROCS=... to test against
# test.t & friends unit-test core of UVMM and are Go-, Python- and ZODB-storage independent. # test.t & friends unit-test core of UVMM and are Go-, Python- and ZODB-storage independent.
# we don't run test.vg* because there is currently no valgrind on SlapOS # we don't run test.vg* because there is currently no valgrind on SlapOS.
for kind in ['t', 'fault', 'asan', 'tsan']: for kind in ['t', 'fault', 'asan', 'tsan']:
t = 'test.%s' % kind t = 'test.%s' % kind
TestCase(t, ['make', t]) # TODO summaryf=TAP.summary TestCase(t, ['make', t]) # TODO summaryf=TAP.summary
# test.py/<stor>-!wcfs runs unit- and functional- tests for wendelin.core in non-wcfs mode.
for stor in storv:
TestCase('test.py/%s-!wcfs' % stor, ['make', 'test.py'],
envadj={'WENDELIN_CORE_TEST_DB': stor, 'WENDELIN_CORE_VIRTMEM': 'rw:uvmm'},
summaryf=PyTest.summary)
# test.go unit-tests Go bits in wcfs. # test.go unit-tests Go bits in wcfs.
TestCase('test.go', ['make', 'test.go']) # TODO summaryf=GoTest.summary for nproc in gonprocv:
TestCase('test.go:%s' % nproc, ['make', 'test.go'],
# test.wcfs runs unit tests for WCFS envadj={'GOMAXPROCS': nproc})
# matrix: test.wcfs/{fs,zeo,neo}
# # test.wcfs/<stor> runs unit tests for WCFS
# test.py runs unit- and function- tests for wendelin.core as a whole. # test.py/<stor>-wcfw runs unit- and functional- tests for wendelin.core in wcfs mode.
# matrix: test.py/{fs,zeo,neo}-{!wcfs,wcfs} for stor in storv:
for stor in ['fs', 'zeo', 'neo']:
envdb = {'WENDELIN_CORE_TEST_DB': '<%s>' % stor} envdb = {'WENDELIN_CORE_TEST_DB': '<%s>' % stor}
TestCase('test.wcfs/%s' % stor, ['make', 'test.wcfs'], envadj=envdb, summaryf=PyTest.summary)
for wcfs in [False, True]: for nproc in gonprocv:
name = 'test.py/%s-%swcfs' % (stor, '' if wcfs else '!') TestCase('test.wcfs/%s:%s' % (stor, nproc), ['make', 'test.wcfs'],
envadj = {'WENDELIN_CORE_VIRTMEM': 'r:wcfs+w:uvmm' if wcfs else 'rw:uvmm'} envadj=dict(GOMAXPROCS=nproc, **envdb), summaryf=PyTest.summary)
envadj.update(envdb)
TestCase(name, ['make', 'test.py'], envadj=envadj, summaryf=PyTest.summary) for nproc in gonprocv:
TestCase('test.py/%s-wcfs:%s' % (stor, nproc), ['make', 'test.py'],
envadj=dict(WENDELIN_CORE_VIRTMEM='r:wcfs+w:uvmm', GOMAXPROCS=nproc, **envdb),
summaryf=PyTest.summary)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment