1. 30 Apr, 2020 2 commits
  2. 29 Apr, 2020 6 commits
  3. 28 Apr, 2020 3 commits
  4. 27 Apr, 2020 2 commits
    • Jérome Perrin's avatar
      testing/testcase: ignore gfortran.so in ldd check · 8a3c8aa3
      Jérome Perrin authored
      the rpath we set in LDFLAGS is not honored here, but we can ignore this
      as rpath is needed on executables and not important on shared objects.
      
      libgfortran.so is a shared object that happens to be executable, so it
      appears in our ldd check, but we are not executing it directly so it
      should be OK.
      8a3c8aa3
    • Jérome Perrin's avatar
      prune: prune dependencies recursively · 9ee14cb4
      Jérome Perrin authored
      prune was not recursive when checking dependencies, for example when we
      have for example a shared part for openssl that is used only by a shared
      part for curl that is not used, we had to run prune twice, the first
      iteration would remove curl and only the second iteration would see that
      openssl is not used.
      
      This prune in a loop until nothing is pruned by the last iteration. To
      support dry-run, we added a ignored_shared_parts parameter to ignore the
      parts that are supposed to be deleted.
      
      See merge request !205
      9ee14cb4
  5. 24 Apr, 2020 2 commits
    • Jérome Perrin's avatar
      testing/utils: ImageComparisonTestCase · 596d5c5c
      Jérome Perrin authored
      This was in plantuml test, but can be used in other cases where we want
      to snapshot test screenshots or images produced by softwares.
      
      See merge request !203
      596d5c5c
    • Jérome Perrin's avatar
      prune: prune dependencies recursively · 4a2b7e08
      Jérome Perrin authored
      prune was not recursive when checking dependencies, for example when we
      have for example a shared part for openssl that is used only by a shared
      part for curl that is not used, we had to run prune twice, the first
      iteration would remove curl and only the second iteration would see that
      openssl is not used.
      
      This prune in a loop until nothing is pruned by the last iteration. To
      support dry-run, we added a ignored_shared_parts parameter to ignore the
      parts that are supposed to be deleted.
      4a2b7e08
  6. 22 Apr, 2020 1 commit
  7. 20 Apr, 2020 1 commit
  8. 16 Apr, 2020 7 commits
  9. 15 Apr, 2020 7 commits
  10. 14 Apr, 2020 4 commits
    • Jérome Perrin's avatar
      testing/testcase: use realpath to compare paths · 92452d1d
      Jérome Perrin authored
      This supports the case where some paths used for shared parts are
      symlinks
      92452d1d
    • Jérome Perrin's avatar
      testing/testcase: ignore empty paths from $SLAPOS_TEST_SHARED_PART_LIST · 514ae032
      Jérome Perrin authored
      Empty paths confuse the ldd check, because empty prefix always look
      valid, so executables using system libraries will be considered as
      valid.
      514ae032
    • Jérome Perrin's avatar
      testing/testcase: don't destroy instance if it was not requested · abce5180
      Jérome Perrin authored
      This should prevent such confusing tracebacks when building software fail:
      
          INFO Finished software releases.
          ERROR:slapos.testing.testcase:Error during request destruction
          Traceback (most recent call last):
            File "parts/slapos.core-repository/slapos/testing/testcase.py", line 615, in _cleanup
      	cls.requestDefaultInstance(state='destroyed')
            File "parts/slapos.core-repository/slapos/testing/testcase.py", line 680, in requestDefaultInstance
      	cls._instance_parameter_dict)
          AttributeError: type object 'SlapOSInstanceTestCase for ...' has no attribute '_instance_parameter_dict'
      abce5180
    • Jérome Perrin's avatar
      Revert "testing/testcase: use realpath to compare paths" · fa0ebacf
      Jérome Perrin authored
      This reverts commit 49ec3ece.
      
      That commit revealed that all the rpath check was not effective and that
      we have in fact lots of components which use system libraries.
      
      We'll fix rpath on slapos profiles and only then we'll fix this check,
      to prevent test failures (even if the test failures show a real problem)
      fa0ebacf
  11. 13 Apr, 2020 3 commits
    • Rafael Monnerat's avatar
      collect: small optimization on garbage collect · 86b03edf
      Rafael Monnerat authored
      This changes a query like:
      
          SELECT date FROM user WHERE reported = 1 AND date != '2020-04-13' AND date != '2020-04-12'  AND date != '2020-04-11'  AND date != '2020-04-10'  AND date != '2020-04-09'  AND date != '2020-04-08'  AND date != '2020-04-07'  AND date != '2020-04-06'  AND date != '2020-04-05' AND date != '2020-04-04'  AND date != '2020-04-03'  AND date != '2020-04-02'  AND date != '2020-04-01'  AND date != '2020-03-31'  AND date != '2020-03-30'  LIMIT 1
      
          EXPLAIN QUERY PLAN ...
          0|0|0|SCAN TABLE user USING COVERING INDEX user_date_reported_index
      
      which took ~3 seconds on a 1.5Go collector.db into:
      
          SELECT date FROM user WHERE reported = 1 AND (date < '2020-03-30'  OR  date > '2020-04-13')  LIMIT 1
      
          EXPLAIN QUERY PLAN ...
          0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date<?)
          0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date>?)
      
      which is instant.
      
      See merge request !201
      86b03edf
    • Jérome Perrin's avatar
      collect: small optimization on garbage collect · 686289b8
      Jérome Perrin authored
      This changes a query like:
      
          SELECT date FROM user WHERE reported = 1 AND date != '2020-04-13' AND date != '2020-04-12'  AND date != '2020-04-11'  AND date != '2020-04-10'  AND date != '2020-04-09'  AND date != '2020-04-08'  AND date != '2020-04-07'  AND date != '2020-04-06'  AND date != '2020-04-05' AND date != '2020-04-04'  AND date != '2020-04-03'  AND date != '2020-04-02'  AND date != '2020-04-01'  AND date != '2020-03-31'  AND date != '2020-03-30'  LIMIT 1
      
          EXPLAIN QUERY PLAN ...
          0|0|0|SCAN TABLE user USING COVERING INDEX user_date_reported_index
      
      which took ~3 seconds on a 1.5Go collector.db into:
      
          SELECT date FROM user WHERE reported = 1 AND (date < '2020-03-30'  OR  date > '2020-04-13')  LIMIT 1
      
          EXPLAIN QUERY PLAN ...
          0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date<?)
          0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date>?)
      
      which is instant.
      686289b8
    • Jérome Perrin's avatar
      testing/testcase: use realpath to compare paths · 49ec3ece
      Jérome Perrin authored
      This supports the case where some paths used for shared parts are
      symlinks
      49ec3ece
  12. 10 Apr, 2020 1 commit
  13. 09 Apr, 2020 1 commit
    • Jérome Perrin's avatar
      testing/testcase: ignore puppeteer in ldd check · a92b5dc5
      Jérome Perrin authored
      
      for nexedi/slapos!725
      
      ```
      RuntimeError: /srv/slapgrid/slappart9/srv/testnode/cxm/inst/test0-0/tmp/soft/503f3967022ee2febfbb1f4cb30c3a0f/parts/theia/node_modules/puppeteer/.local-chromium/linux-722234/chrome-linux/chrome has some not found libraries:
      	libX11-xcb.so.1 => not found
      	libXcomposite.so.1 => not found
      	libXcursor.so.1 => not found
      	libXdamage.so.1 => not found
      	libXfixes.so.3 => not found
      	libXi.so.6 => not found
      	libXrender.so.1 => not found
      	libXtst.so.6 => not found
      	libnss3.so => not found
      	libnssutil3.so => not found
      	libsmime3.so => not found
      	libnspr4.so => not found
      	libcups.so.2 => not found
      	libXss.so.1 => not found
      	libXrandr.so.2 => not found
      	libasound.so.2 => not found
      	libatk-1.0.so.0 => not found
      	libatk-bridge-2.0.so.0 => not found
      	libpangocairo-1.0.so.0 => not found
      	libpango-1.0.so.0 => not found
      	libcairo.so.2 => not found
      	libatspi.so.0 => not found
      	libgtk-3.so.0 => not found
      	libgdk-3.so.0 => not found
      	libgdk_pixbuf-2.0.so.0 => not found
      ```
      
      
      See merge request !200
      a92b5dc5