1. 27 Apr, 2021 1 commit
    • Michal Nowak's avatar
      Install BIND with "make DESTDIR=<PATH> install" · 3f6cc254
      Michal Nowak authored
      BIND installation should be done by setting DESTDIR during "make
      install" not by setting prefix via ./configure.
      Make sure that installation with DESTDIR=<PATH> works by checking that
      it installed the named binary and it's respective man page to a
      well-known place.
      Also rename install path variable from BIND_INSTALL_PATH to
      INSTALL_PATH to avoid namespace clash in stress tests which use
      BIND_INSTALL_PATH variable to configure path to BIND9 binaries.
  2. 26 Apr, 2021 1 commit
    • Michał Kępień's avatar
      Test "--without-gssapi" in GitLab CI · a3957af8
      Michał Kępień authored
      GitLab CI pipelines do not currently include a Linux job that would have
      GSSAPI support disabled.  Add the "--without-gssapi" option to the
      ./configure invocation on Debian 9 to address that deficiency and also
      to continuously test that build-time switch.
  3. 31 Mar, 2021 1 commit
    • Michal Nowak's avatar
      Run gcc:tarball CI job in web-triggered pipelines · 4d5d3b75
      Michal Nowak authored
      The gcc:tarball CI job may identify problems with tarballs created by
      "make dist" of the tarball-create CI job. Enabling the gcc:tarball CI
      job in web-triggered pipelines provides developers with a test vector.
  4. 19 Mar, 2021 1 commit
    • Ondřej Surý's avatar
      Require CMocka >= 1.1.3 to run the unit tests · d96c94d7
      Ondřej Surý authored
      In CMocka versions << 1.1.3, the skip() function would cause the whole
      unit test to abort when CMOCKA_TEST_ABORT is set.  As this is problem
      only in Debian 9 Stretch and Ubuntu 16.04 Xenial, we just require the
      CMocka >= 1.1.3 and disable the unit testing on Debian 9 Stretch until
      we can pull the libcmocka-dev from stretch-backports and remove the
      Ubuntu 16.04 Xenial from the CI as it is reaching End of Standard
      Support at the end of April 2021.
  5. 04 Mar, 2021 2 commits
  6. 23 Feb, 2021 1 commit
  7. 18 Feb, 2021 1 commit
    • Ondřej Surý's avatar
      Remove the internal memory allocator · 55ace5d3
      Ondřej Surý authored
      The internal memory allocator had an extra code to keep a list of blocks
      for small size allocation.  This would help to reduce the interactions
      with the system malloc as the memory would be already allocated from the
      system, but there's an extra cost associated with that - all the
      allocations/deallocations must be locked, effectively eliminating any
      optimizations in the system allocator targeted at multi-threaded
      applications. While the isc_mem API is still using locks pretty heavily,
      this is a first step into reducing the memory allocation/deallocation
  8. 17 Feb, 2021 1 commit
    • Michal Nowak's avatar
      Check for "file not removed" in system test output · 4a2778ab
      Michal Nowak authored
      Run this check only when in Git repository, because the run.sh function
      which produces the "file not removed" warning is run only when build
      directory is the same as the source directory, that is only for in-tree
  9. 12 Feb, 2021 3 commits
    • Petr Špaček's avatar
      Run Python linters in CI even outside of merge requests · 74d7cddc
      Petr Špaček authored
      Previously it did not get run on scheduled CI pipelines.
    • Michal Nowak's avatar
      Add --enable-option-checking=fatal to ./configure in CI · 4295c82e
      Michal Nowak authored
      The --enable-option-checking=fatal option prevents ./configure from
      proceeding when an unknown option is used in the ./configure step in CI.
      This change will avoid adding unsupported ./configure options or options
      with typo or typo in pairwise testing "# [pairwise: ...]" marker.
    • Michal Nowak's avatar
      Lint manual pages · 22fdcb30
      Michal Nowak authored
      As we generate manual pages from reStructuredText sources, we don't have
      absolute control on manual page output and therefore 'mandoc -Tlint' may
      always report warnings we can't eliminate. In light of this some mandoc
      warnings need to be ignored.
  10. 09 Feb, 2021 2 commits
  11. 03 Feb, 2021 3 commits
  12. 28 Jan, 2021 1 commit
  13. 25 Jan, 2021 2 commits
    • Ondřej Surý's avatar
      Use -release instead of -version-info for internal library SONAMEs · c605d75e
      Ondřej Surý authored
      The BIND 9 libraries are considered to be internal only and hence the
      API and ABI changes a lot.  Keeping track of the API/ABI changes takes
      time and it's a complicated matter as the safest way to make everything
      stable would be to bump any library in the dependency chain as in theory
      if libns links with libdns, and a binary links with both, and we bump
      the libdns SOVERSION, but not the libns SOVERSION, the old libns might
      be loaded by binary pulling old libdns together with new libdns loaded
      by the binary.  The situation gets even more complicated with loading
      the plugins that have been compiled with few versions old BIND 9
      libraries and then dynamically loaded into the named.
      We are picking the safest option possible and usable for internal
      libraries - instead of using -version-info that has only a weak link to
      BIND 9 version number, we are using -release libtool option that will
      embed the corresponding BIND 9 version number into the library name.
      That means that instead of libisc.so.1701 (as an example) the library
      will now be named libisc-9.17.10.so.
    • Michal Nowak's avatar
      Update Coverity Scan CI job to 2020.09 · 7d428be7
      Michal Nowak authored
  14. 21 Jan, 2021 1 commit
  15. 19 Jan, 2021 1 commit
    • Michal Nowak's avatar
      Drop #1941 workaround · fe5978f5
      Michal Nowak authored
      Workaround for issue #1941 is not needed anymore as the underlying
      performance issue which manifested on FreeBSD was addressed.
  16. 16 Dec, 2020 1 commit
  17. 08 Dec, 2020 1 commit
  18. 03 Dec, 2020 1 commit
    • Ondřej Surý's avatar
      Configure the system-wide TCP connection timeout on OpenBSD · 8ff15fc0
      Ondřej Surý authored
      As there's no TCP connection timeout socket option that we can use, we
      need to configure the TCP connection timeout system-wide in the CI, so
      the netmgr unit tests doesn't cause assertion failure when there stuck
      outgoing TCP connection waiting for 150 second timeout.
  19. 26 Nov, 2020 1 commit
  20. 25 Nov, 2020 1 commit
  21. 23 Nov, 2020 1 commit
    • Michał Kępień's avatar
      Enable "stress" tests to be run on demand · f2309422
      Michał Kępień authored
      The "stress" test can be run in different ways, depending on:
        - the tested scenario (authoritative, recursive),
        - the operating system used (Linux, FreeBSD),
        - the architecture used (amd64, arm64).
      Currently, all supported "stress" test variants are automatically
      launched for all scheduled pipelines and for pipelines started for tags;
      there is no possibility of running these tests on demand, which could be
      useful in certain circumstances.
      Employ the "only:variables" key to enable fine-grained control over the
      list of "stress" test jobs to be run for a given pipeline.  Three CI
      variables are used to specify the list of "stress" test jobs to create:
        - BIND_STRESS_TEST_MODE: specifies the test mode to use; must be
          explicitly set in order for any "stress" test job to be created;
          allowed values are: "authoritative", "recursive",
        - BIND_STRESS_TEST_OS: specifies the operating system to run the test
          on; allowed values are: "linux", "freebsd"; defaults to "linux", may
          be overridden at pipeline creation time,
        - BIND_STRESS_TEST_ARCH: specifies the architecture to run the test
          on; allowed values are: "amd64", "arm64"; defaults to "amd64", may
          be overridden at pipeline creation time.
      Since case-insensitive regular expressions are used for determining
      which jobs to run, every variable described above may contain multiple
      values.  For example, setting the BIND_STRESS_TEST_MODE variable to
      "authoritative,recursive" will cause the "stress" test to be run in both
      supported scenarios (either on the default OS/architecture combination,
      i.e. Linux/amd64, or, if the relevant variables are explicitly
      specified, the requested OS/architecture combinations).
  22. 11 Nov, 2020 1 commit
  23. 09 Nov, 2020 1 commit
  24. 05 Nov, 2020 1 commit
  25. 30 Oct, 2020 2 commits
    • Ondřej Surý's avatar
      add a netmgr unit test · 14f54d13
      Ondřej Surý authored
      tests of UDP and TCP cases including:
      - sending and receiving
      - closure sockets without reading or sending
      - closure of sockets at various points while sending and receiving
      - since the teste is multithreaded, cmocka now aborts tests on the
        first failure, so that failures in subthreads are caught and
        reported correctly.
    • Michal Nowak's avatar
      Update to OpenBSD 6.8 · 773649f4
      Michal Nowak authored
  26. 29 Oct, 2020 2 commits
  27. 28 Oct, 2020 1 commit
    • Ondřej Surý's avatar
      Use libuv's shared library handling capabilities · 37b9511c
      Ondřej Surý authored
      While libltdl is a feature-rich library, BIND 9 code only uses its basic
      capabilities, which are also provided by libuv and which BIND 9 already
      uses for other purposes.  As libuv's cross-platform shared library
      handling interface is modeled after the POSIX dlopen() interface,
      converting code using the latter to the former is simple.  Replace
      libltdl function calls with their libuv counterparts, refactoring the
      code as necessary.  Remove all use of libltdl from the BIND 9 source
  28. 26 Oct, 2020 1 commit
    • Michal Nowak's avatar
      Add "stress" tests to GitLab CI · 39305411
      Michal Nowak authored
      Run "stress" tests for scheduled pipelines and pipelines created for
      tags.  These tests were previously only performed manually (as part of
      pre-release testing of each new BIND version).  Their purpose is to
      detect memory leaks and potential performance issues.
      As the run time of each "stress" test itself is set to 1 hour, set the
      GitLab CI job timeout to 2 hours in order to account for the extra time
      needed to set the test up and gather its results.
  29. 22 Oct, 2020 3 commits
    • Michal Nowak's avatar
      Enable Test Coverage Visualization for merge requests · 2dabf328
      Michal Nowak authored
      This feature allows GitLab to visualize test coverage information in the
      file diff view of merge requests.
      This commit makes the gcov CI job depend on the following chain of jobs:
          gcc:buster:amd64 → unit:gcc:buster:amd64 → system:gcc:buster:amd64
      The reason for running the last two jobs above sequentially rather than
      in parallel is that both of them create *.gcda files (containing
      coverage data) in the same locations.  While some way of merging these
      files from different job artifact archives could probably be designed
      with the help of additional tools, the simplest thing to do is not to
      run unit test and system test jobs in parallel, carrying *.gcda files
      over between jobs as gcov knows how to append coverage data to existing
      *.gcda files.
      Also note that test coverage will not be visualized if any of the jobs
      in the above dependency chain fails (because the gcov job will not be
    • Michał Kępień's avatar
    • Michał Kępień's avatar