1. 17 Jan, 2017 3 commits
    • David Gibson's avatar
      .travis.yml: Add valgrind testing · 0fd6bb10
      David Gibson authored
      Currently, our Travis builds don't have valgrind installed, meaning
      that ccanlint's valgrind based tests will be skipped, which is
      unfortunate.
      
      This adds valgrind to some of the builds to give us better CI
      coverage.  It's not added for Precise with gcc, because that causes
      failures which appear to be due to something in the builtins of that
      gcc version.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      0fd6bb10
    • David Gibson's avatar
      .travis.yml: Add builds under Ubuntu Trusty · 870b6316
      David Gibson authored
      At the moment our Travis builds all use Travis's default Ubuntu
      Precise base distro.  For wider testing, add a build using their
      Ubuntu Trusty distro.  Only build with gcc there, for now, since clang
      will cause ccanlint failures, due to the gcov version there not being
      suitable for clang output.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      870b6316
    • David Gibson's avatar
      .travis.yml: Rework Travis matrix · 813e9726
      David Gibson authored
      At the moment the .travis.yml implicitly constructs a build matrix
      with the two compiler options.  In future we want to add more build
      options for wider testing: different base distro, more compiler
      versions, etc.  However, a fair few of the possible combinations have
      various problems meaning we don't want to test them routinely.
      
      So, this reworks from implicitly constructing the matrix to using
      matrix: include: options to explicitly build the options we want.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      813e9726
  2. 13 Jan, 2017 1 commit
  3. 11 Jan, 2017 1 commit
  4. 09 Jan, 2017 5 commits
  5. 07 Jan, 2017 1 commit
  6. 29 Dec, 2016 5 commits
  7. 24 Dec, 2016 2 commits
    • David Gibson's avatar
      ccanlint: Move ccanlint test options from _info comments to code · 0fe2d094
      David Gibson authored
      Currently, _info files can specify options, or note expected failures, for
      ccanlint checks in the _info file with specially structured comments. That
      differs from most other things ccanlint gets from _info, where it instead
      executes the info file with certain parameters.
      
      This changes ccanlint and existing _info files to use the normal method for
      the ccanlint test options as well.  This also has the advantage that an
      info file can alter its test options based on things from config.h - in
      some cases whether a test can work or not might depend on various things.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      0fe2d094
    • David Gibson's avatar
      Makefile: Make module checks depend on info file · 25b7406d
      David Gibson authored
      Changing the _info file can change how ccanlint assesses the module.
      Therefore, if the _info file changes, we should re-run ccanlint module
      tests with make check.  We didn't previously have a dependency for that,
      though, so this adds it.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      25b7406d
  8. 23 Dec, 2016 1 commit
  9. 12 Dec, 2016 2 commits
  10. 09 Dec, 2016 1 commit
  11. 07 Dec, 2016 1 commit
  12. 05 Dec, 2016 2 commits
  13. 01 Dec, 2016 1 commit
    • David Gibson's avatar
      Makefile: Remove testdepends from make check dependencies · 2581e470
      David Gibson authored
      The new Makefile system, via the helper script in tools/gen_deps.sh, when
      generating the targets to test a module, inserts dependencies meaning it
      must first check modules this one depends on, whether via 'depends' or
      'testdepends' in _info.
      
      Although it seems logical, including 'testdepends' is actually incorrect.
      If ccan/a testepends on ccan/b then ccan/b must be *built* in order to test
      ccan/a, but it doesn't need to be tested.  testepends are explicitly
      permitted to contain loops - it's quite common for two complementary
      modules to be used to test each other.  This is one of the reasons
      testdepends exists separate from depends.
      
      So, remove testdepends from the generated check dependencies, removing the
      circular dependency that Make complains about.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      2581e470
  14. 30 Nov, 2016 3 commits
  15. 27 Nov, 2016 1 commit
    • Kevin Locke's avatar
      edit_distance: Rename ED_STACK_ELEMS ED_STACK_DIST_VALS · 346058c0
      Kevin Locke authored
      The previous name was misleading, since it does not define the number of
      elements (ed_elem) on the stack, but rather the number of distance
      values (ed_dist).  Rename to make this more clear and add more
      documentation about what it does and how best to define it.
      
      Note:  This is an API change for custom-compiled versions, but since the
      module has only been included for a couple days I don't think it's worth
      a back-compat #ifdef at this point.
      Signed-off-by: default avatarKevin Locke <kevin@kevinlocke.name>
      346058c0
  16. 23 Nov, 2016 2 commits
    • David Gibson's avatar
      .travis.yml: Enable C99 mode for older gcc versions · 18cbdae8
      David Gibson authored
      Currently Travis builds fail on the edit_distance module, because that
      module uses C99 extensions, which aren't enabled by default on the
      Ubuntu Precise compiler version.  Force it to allow these, by adding the
      -std=gnu99 option to the compiler.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      18cbdae8
    • Kevin Locke's avatar
      edit_distance: calculate edit distance between strings · e0663bef
      Kevin Locke authored
      This commit creates the edit_distance module for calculating various
      edit distance measures.  The edit distance quantifies the similarity
      between two strings based on the number of modifications necessary to
      turn one string into the other.  There are several edit distance
      measures which differ in the operations which are permitted and the
      cost (aka weight) of the operations.  This module provides functions
      for calculating the Longest Common Subsequence (LCS), Levenshtein, and
      Damerau-Levenshtein (restricted and unrestricted) distances.  Weighted
      versions of these functions can be created by defining cost functions
      as preprocessor macros when compiling this module.  Distances over
      other array types (e.g. wide strings, integers, structs) can be
      accomplished by defining the element type and equality test macros.
      Signed-off-by: default avatarKevin Locke <kevin@kevinlocke.name>
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      e0663bef
  17. 22 Nov, 2016 3 commits
  18. 21 Nov, 2016 5 commits