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.
# 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.
# 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']:
t = 'test.%s' % kind
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.
TestCase('test.go', ['make', 'test.go']) # TODO summaryf=GoTest.summary
# test.wcfs runs unit tests for WCFS
# matrix: test.wcfs/{fs,zeo,neo}
#
# test.py runs unit- and function- tests for wendelin.core as a whole.
# matrix: test.py/{fs,zeo,neo}-{!wcfs,wcfs}
for stor in ['fs', 'zeo', 'neo']:
for nproc in gonprocv:
TestCase('test.go:%s' % nproc, ['make', 'test.go'],
envadj={'GOMAXPROCS': nproc})
# test.wcfs/<stor> runs unit tests for WCFS
# test.py/<stor>-wcfw runs unit- and functional- tests for wendelin.core in wcfs mode.
for stor in storv:
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]:
name = 'test.py/%s-%swcfs' % (stor, '' if wcfs else '!')
envadj = {'WENDELIN_CORE_VIRTMEM': 'r:wcfs+w:uvmm' if wcfs else 'rw:uvmm'}
envadj.update(envdb)
TestCase(name, ['make', 'test.py'], envadj=envadj, summaryf=PyTest.summary)
for nproc in gonprocv:
TestCase('test.wcfs/%s:%s' % (stor, nproc), ['make', 'test.wcfs'],
envadj=dict(GOMAXPROCS=nproc, **envdb), 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