• Kirill Smelkov's avatar
    stack/nxdtest · 0dd3e119
    Kirill Smelkov authored
    Currently Nexedi takes mostly a copy-paste approach when it comes to
    organizing bin/runTestSuite and an instance to run this inside testnode:
    
        kirr@deco:~/src/wendelin/slapos/slapos-master$ git ls-files |grep runTestSuite
        software/build-rina/runTestSuite.in
        software/buildout-testing/runTestSuite.in
        software/cython-test/runTestSuite.in
        software/erp5testnode/testsuite/deploy-test/runTestSuite.py
        software/jstestnode/runTestSuite.in
        software/neoppod/runTestSuite.in
        software/neoppod/stress-testing/runTestSuite.in
        software/unstable/pyodide/runTestSuite.in
    
    and adding new tests to be run this way will only increase the entropy.
    
    Let's stop this, at least for new tests, and use a uniform approach without copying:
    
    1) I've created nxdtest tool[1] which allows a project to specify in
       declarative way how to test itself: given such declaration nxdtest
       takes on itself the responsibility to communicate with testnode
       master, to drive test commands spawning etc, and leaves to the
       project only semantic part that is specific to the particular
       project.
    
       Nxdtest is based on my go/neo/t/nxd/runTestSuite[2,3] and on the code
       I've seen elsewhere scattered in other runTestSuite.in files.
    
    2) Let's add stack/nxdtest.cfg to SlapOS that provides easy way for a
       software or component to organize testing of itself.
    
    This patch adds stack/nxdtest and migrates software/neotest to use it
    (because stack/nxdtest is based on it and this way it helps to track the
    changes).
    
    In the following patches we will add testing support for pygolang,
    zodbtools and wendelin.core .
    
    [1] https://lab.nexedi.com/kirr/nxdtest/blob/master/nxdtest
    [2] kirr/neo@51b18490
    [3] kirr/neo@f67c147d
    0dd3e119