1. 12 Dec, 2022 3 commits
    • Levin Zimmermann's avatar
      stack/erp5: Fix NEO URL formatting for WCFS · c832ae56
      Levin Zimmermann authored
      The NEO/go commit kirr/neo@8c974485
      changed the URL with which a NEO/go client can be loaded from
      
          // neo://name@master1,master2,...,masterN?options
      
      to
      
          neo(s)://[credentials@]master1,master2,...,masterN/name?options
      
      We need to apply this change in the NEO URL structure to instance-wcfs.cfg.in
      to use WCFS with NEO storage.
      
      Why?
      
      The URL in instance-wcfs.cfg.in is finally send to wcfs binary, which
      will open a NEO/go client with this URL via the "openClientByURL" function [1].
      If the URL formatting instance-wcfs.cfg.in follows the old pattern,
      NEO/go is unable to create a NEO/go client and may even raise an
      exception [2], because information regarding NEO server is at the wrong
      position of the URL.
      
      [1] See https://lab.nexedi.com/kirr/neo/blob/87199da2b163c09ed3946b7ab9bb00a5b987d377/go/neo/client.go#L416-534
      for openClientByURL.
      
      [2] For instance when using the old pattern of putting the cluster name
      in the "user" part, NEO/go will raise "credentials can be specified only
      with neos:// scheme", because NEO/go reserves the "user" part for
      encryption information,
      see https://lab.nexedi.com/kirr/neo/blob/87199da2b163c09ed3946b7ab9bb00a5b987d377/go/neo/client.go#L449
      c832ae56
    • Levin Zimmermann's avatar
      software/erp5/tests: Extend WCFS test scope · 78728c9c
      Levin Zimmermann authored
      This patch enhances the ERP5 + WCFS integration tests. Before it was
      only minimal; now it runs actual workload of writing and reading
      ZBigArray to the ZODB. This is necessary to securely verify WC2 is
      working with ERP5.
      
      We had to implement the new tests in a separate test environment,
      because SlapOS Integration tests run with python3, but we need python2
      for NEO support. We need NEO, because we want to test if WCFS works with
      NEO client.
      78728c9c
    • Levin Zimmermann's avatar
      software/erp5/test: Run tests with ZEO & NEO · e85fa5a8
      Levin Zimmermann authored
      Before this patch all ERP5 SlapOS Integration tests only run with ZEO
      storage. We should also run them against NEO, because we are using
      ERP5 with NEO in SlapOS.
      
      Because we are testing WCFS against NEO now, we need compatible
      NEO => WCFS and ZODB => WCFS versions for successful tests. This is
      the reason why we need to add a specific 'test.cfg' here, which
      ensures compatible versions are installed.
      
      For tests which shouldn't be split into NEO/ZEO flavoured test cases,
      this patch adds the '__parameterized__' class attribute, which can
      be set to 'False' (default to 'True').
      e85fa5a8
  2. 30 Nov, 2022 2 commits
  3. 28 Nov, 2022 5 commits
  4. 25 Nov, 2022 2 commits
  5. 21 Nov, 2022 4 commits
    • Jérome Perrin's avatar
      stack/erp5: don't produce HTML report for each test · 2312ed83
      Jérome Perrin authored
      The coverage of an individual test is after all not useful, only the
      coverage of all tests combined is significant.
      2312ed83
    • Jérome Perrin's avatar
      stack/erp5: support coverage when running tests · 3d8deba0
      Jérome Perrin authored
      This replaces the broken --coverage argument from runUnitTest, coverage
      needs to be started earlier and also introduces a coverage plugin to
      collect coverage data for code in ZODB; python scripts and components
      are supported.
      
      To use on test nodes, set up a web dav server somewhere, configure the
      instance parameters of the test suite on ERP5 to enable coverage and
      upload individual results to this webdav server and then combine the
      coverage data and produce a report, using the bin/coverage script from
      the software release.
      
      For the steps below, it is necessary to change working directory to the
      root of the software folder.
      
      Step 1: combine the coverage data:
      
          ./bin/coverage combine \
            --keep \
            /path/to/all/coverage/files/*coverage.sqlite3
      
      ( using --keep is optional, but it helps in case of mistakes )
      
      Step 2: build an html report:
      
         ./bin/coverage html \
           --skip-covered \
           --omit parts/erp5/product/ERP5/Document/UnitTest.py \
           --directory /path/for/html/report/
      
      Note that we want to omit UnitTest.py that is created during test
      (see testBusinessTemplate.TestDocumentTemplateItem) and get coverage
      result because it is executed in the test, but it does not exist as a
      source file in the repository, so we skip it.
      
      Of course, to produce a correct html report from a test that have been
      running on test nodes, it's necessary that the software release used to
      produce the html report has exactly the same version ans the one that
      has been running on test nodes.
      
      Another simpler, but slower approach is to run all the tests on the same
      machine, then only running step 2 is necessary.
      3d8deba0
    • Jérome Perrin's avatar
      neoppod-common: version up coverage 5.5 · 3ea53a6c
      Jérome Perrin authored
      3ea53a6c
    • Ivan Tyagov's avatar
  6. 18 Nov, 2022 4 commits
  7. 17 Nov, 2022 13 commits
  8. 16 Nov, 2022 3 commits
  9. 15 Nov, 2022 1 commit
  10. 14 Nov, 2022 3 commits