1. 03 Jan, 2018 3 commits
    • tests: create new test target for all SSH-based tests · 5874e151
      Some tests shall be run against our own SSH server we spin up in Travis.
      As those need to be run separate from our previous tests which run
      against git-daemon, we have to do this in a separate step. Instead of
      bundling all that knowledge in the CI script, move it into the test
      build instructions by creating a new test target.
      Patrick Steinhardt committed
    • tests: online::clone: inline creds-test with nonexistent URL · 54a1bf05
      Right now, we test our credential callback code twice, once via SSH on
      localhost and once via a non-existent GitHub repository. While the first
      URL makes sense to be configurable, it does not make sense to hard-code
      the non-existing repository, which requires us to call tests multiple
      times. Instead, we can just inline the URL into another set of tests.
      Patrick Steinhardt committed
    • tests: online::clone: construct credential-URL from environment · fea60920
      We support two types of passing credentials to the proxy, either via the
      URL or explicitly by specifying user and password. We test these types
      by modifying the proxy URL and executing the tests twice, which is
      in fact unnecessary and requires us to maintain the list of environment
      variables and test executions across multiple CI infrastructures.
      
      To fix the situation, we can just always pass the host, port, user and
      password to the tests. The tests can then assemble the complete URL
      either with or without included credentials, allowing us to test both
      cases in-process.
      Patrick Steinhardt committed
  2. 06 Nov, 2017 1 commit
    • appveyor: build examples · 0b98a66b
      By default, CMake will not build our examples directory. As we do not
      instruct either the MinGW or MSVC builds on AppVeyor to enable building
      these examples, we cannot verify that those examples at least build on
      Windows systems.
      
      Fix that by passing `-DBUILD_EXAMPLES=ON` to AppVeyor's CMake
      invocation.
      Patrick Steinhardt committed
  3. 31 Oct, 2017 2 commits
  4. 06 Oct, 2017 1 commit
  5. 28 Sep, 2017 1 commit
  6. 20 Sep, 2017 1 commit
    • travis: drop support for Ubuntu Precise · c17c3f8a
      Ubuntu Precise is end of life since April 2017. At that point in time,
      Precise was still the main distro on which Travis CI built upon, with
      the Trusty-based images still being in a beta state. But since June
      21st, Trusty has officially moved out of beta and is now the default
      image for all new builds. Right now, we build on both old and new images
      to assure we support both.
      
      Unfortunately, this leaves us with the highest minimum version for CMake
      being 2.8.7, as Precise has no greater version in its repositories. And
      because of this limitation, we cannot actually use object libraries in
      our build instructions. But considering Precise is end of life and
      Trusty is now the new default for Travis, we can and should drop support
      for this old and unmaintained distribution. And so we do.
      Patrick Steinhardt committed
  7. 24 Jul, 2017 3 commits
  8. 21 Jun, 2017 1 commit
    • travis: cibuild: set up our own sshd server · 06619904
      Some tests of ours require to be running against an SSH server.
      Currently, we simply run against the SSH server provided and started by
      Travis itself. As our Linux tests run in a sudo-less environment, we
      have no control over its configuration and startup/shutdown procedure.
      While this has been no problem until now, it will become a problem as
      soon as we migrate over to newer Precise images, as the SSH server does
      not have any host keys set up. Luckily, we can simply set up our own
      unpriviledged SSH server. This has the benefit of us being able to
      modify its configuration even in a sudo-less environment.
      
      This commit sets up the unpriviledged SSH server on port 2222.
      Patrick Steinhardt committed
  9. 13 Jun, 2017 1 commit
  10. 12 Jun, 2017 1 commit
  11. 24 Feb, 2017 1 commit
  12. 31 Oct, 2016 1 commit
    • coverity: check for Coverity token only if necessary · 18c18e3d
      When running a Coverity build, we have to provide an
      authentication token in order to proof that we are actually
      allowed to run analysis in the name of a certain project. As this
      token should be secret, it is only set on the main repository, so
      when we were requested to run the Coverity script on another
      repository we do error out. But in fact we do also error out if
      the Coverity analysis should _not_ be run if there is no
      authentication token provided.
      
      Fix the issue by only checking for the authentication token after
      determining if analysis is indeed requested.
      Patrick Steinhardt committed
  13. 28 Oct, 2016 2 commits
  14. 10 Oct, 2016 1 commit
  15. 05 Oct, 2016 2 commits
  16. 24 Jul, 2016 1 commit
  17. 23 Jul, 2016 1 commit
  18. 07 Jun, 2016 2 commits
    • coverity: model functions printing into git_buf · 4d8fe1cd
      The `git_buf` structure seems to be too complicated to correctly
      grasp for Coverity. As such, add simpler models trying to guide
      Coverity and remove false positives related to these functions.
      Patrick Steinhardt committed
    • coverity: add user model · 956f1e23
      The static analysis engine coverity allows for user models
      overriding how it treats functions when analyzing code. Like
      this, one can greatly reduce the rate of false positives and thus
      make it easier to spot actual errors.
      
      Add a user model that overrides function models for `git_buf_len`
      and `git_vector_insert`, which together amount for a majority of
      false positives.
      Patrick Steinhardt committed
  19. 19 Apr, 2016 2 commits
  20. 14 Mar, 2016 1 commit
  21. 11 Mar, 2016 1 commit
    • coverity: report errors when uploading tarball · 2615d0d6
      Curl by default does not report errors by setting the error code.
      As the upload can fail through several conditions (e.g. the rate
      limit, leading to unauthorized access) we should indicate this
      information in Travis CI.
      
      To improve upon the behavior, use `--write-out=%{http_code}` to
      write out the HTTP code in addition to the received body and
      return an error if the code does not equal 201.
      Patrick Steinhardt committed
  22. 03 Mar, 2016 2 commits
  23. 23 Feb, 2016 2 commits
    • common: introduce GITERR_CHECK_ALLOC_BUF · 859ed5dd
      We commonly have to check if a git_buf has been allocated
      correctly or if we ran out of memory. Introduce a new macro
      similar to `GITERR_CHECK_ALLOC` which checks if we ran OOM and if
      so returns an error. Provide a `#nodef` for Coverity to mark the
      error case as an abort path.
      Patrick Steinhardt committed
    • coverity: hint git_vector_foreach does not deref NULL contents · f2a554b4
      Coverity does not comprehend the connection between a vector's
      size and the contents pointer, that is that the vector's pointer
      is non-NULL when its size is positive. As the vector code should
      be reasonably well tested and users are expected to not manually
      modify a vector's contents it seems save to assume that the
      macros will never dereference a NULL pointer.
      
      Fix Coverity warnings by overriding the foreach macros with
      macros that explicitly aborting when (v)->contents is NULL.
      Patrick Steinhardt committed
  24. 18 Feb, 2016 2 commits
    • coverity: hint that string length is at least 2 · 40f6f225
      When checking if a string is prefixed by a drive letter (e.g.
      "C:") we verify this by inspecting the first and second character
      of the string. Coverity thinks this is a defect as we do not
      check the string's length first, but in fact we only check the
      second character if the first character is part of the alphabet,
      that is it cannot be '\0'.
      
      Fix this by overriding the macro and explicitly checking the
      string's length.
      Patrick Steinhardt committed
    • coverity: add nodefs for abort macros · 5981ab1d
      Add nodefs for macros that abort the current flow due to errors.
      This includes macros that trigger on integer overflows and for
      the version check macro. This aids Coverity as we point out that
      these paths will cause a fatal error.
      Patrick Steinhardt committed
  25. 10 Feb, 2016 2 commits
    • coverity: use https URL for posting build · 50174ab4
      When posting our instrumented build results to Coverity we have
      to include sensitive information, in particular our authorization
      token. Currently we use an unencrypted channel to post this
      information, leading to the token being transferred in plain.
      
      Fix this by using a secured connection instead.
      Patrick Steinhardt committed
    • coverity: provide nodef for GITERR_CHECK_ALLOC · 8dddea42
      Coverity currently lists a lot of errors with regard to
      GITERR_CHECK_ALLOC causing resource leaks. We know this macro is
      only invoked when we want to abort because we are out of memory.
      
      Coverity allows for overriding the default model where we know
      that certain functions guarantee a desired behavior. The
      user_nodefs.h is used to override the behavior of macros.
      Re-define GITERR_CHECK_ALLOC inside of it to specify its abort
      nature.
      Patrick Steinhardt committed
  26. 06 Jul, 2015 2 commits