1. 31 Aug, 2018 2 commits
  2. 28 Aug, 2018 4 commits
  3. 21 Aug, 2018 2 commits
  4. 29 Jun, 2018 2 commits
  5. 09 Jun, 2018 1 commit
  6. 30 Mar, 2018 1 commit
  7. 23 Feb, 2018 1 commit
  8. 16 Feb, 2018 1 commit
  9. 28 Jan, 2018 1 commit
  10. 29 Oct, 2017 2 commits
  11. 20 Oct, 2017 11 commits
  12. 15 Oct, 2017 1 commit
  13. 29 Sep, 2017 1 commit
  14. 22 Sep, 2017 3 commits
  15. 01 Sep, 2017 2 commits
  16. 27 Aug, 2017 5 commits
    • Ryan C. Thompson's avatar
    • Ryan C. Thompson's avatar
      Rename functions and arguments for closure manipulation · 20ec520c
      Ryan C. Thompson authored
      Since the "closures" can also be non-closure lambda expressions (in
      the case where lexical binding is disabled), it's more appropriate to
      refer to them as functions. The names of functions and arguments
      dealing with argument wrapper functions have been modified
      accordingly, as have references to closures in function docstrings.
    • Ryan C. Thompson's avatar
      Declare all variables before first use · b97714df
      Ryan C. Thompson authored
      This eliminates all compiler warnings about free variables.
    • Ryan C. Thompson's avatar
      Implement closure-based expect macro · 929a904d
      Ryan C. Thompson authored
      This redefines the "expect" macro to wrap all its arguments (except
      the matcher) in closures. Matchers are now expected to accept all
      arguments as closures and must "funcall" them to obtain their value.
      This allows matchers to also obtain the unevaluated expression for
      each of their arguments in order to generate more informative error
      messages. All built-in matchers are reimplemented to conform to this
      requirement. This fixes #54.
      In addition, this adds some convenience macros for defining matchers.
      The macro "buttercup-define-matcher-for-unary-function" automatically
      generates a matcher for any predicate function, while
      "buttercup-define-matcher-for-binary-function" does the same for a
      comparison function, and also automatically uses any explainer defined
      by ERT for that function for more precise messages in case of a
      mismatch. This fixes #28. More generally, the
      "buttercup--test-expectation" macro makes it easier to construct the
      non-intuitive return values required by buttercup matchers. This fixes
      the change to closure-based matchers is mostly backward-compatible,
      with the only user-visible diferences being better error messages.
      However, one major backward-incompatible change is the handling of the
      ":to-throw" matcher, which no longer requires its argument to be
      wrapped in a lambda form, since the "expect" macro now does so
      automatically for all matchers. This fixes #41. In order to aid
      migration, it would be helpful to add a warning when a function
      returns another function, which is a likely indicator that the desired
      expression was wrongly wrapped in a lambda form and wasn't evaluated.
      Another new feature is support for issuing warnings during tests. Any
      warning issued during a test is collected in a special buffer and
      displayed after the test finishes.
      Tests are added for all new functionality, and existing tests are
      adapted to the new code.
    • Ryan C. Thompson's avatar
      Do not suppress errors while loading test files · 31e765b9
      Ryan C. Thompson authored
      This commit removes the "condition-case" that suppresses errors while
      loading test files. Suppressing these errors can cause buttercup to
      only run the tests that were defined before the error occurred. This
      can cause buttercup to report a successful outcome even though some
      tests were never run.
      Fixes #107.