Advertisement
mchqwerty

Redefine assert

Apr 10th, 2014
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.51 KB | None | 0 0
  1. diff --git a/tests/weston-test-runner.c b/tests/weston-test-runner.c
  2. index ef45bae..cabded0 100644
  3. --- a/tests/weston-test-runner.c
  4. +++ b/tests/weston-test-runner.c
  5. @@ -34,6 +34,8 @@
  6.  
  7.  #define SKIP 77
  8.  
  9. +int assert_exit_code = SIGABRT;
  10. +
  11.  extern const struct weston_test __start_test_section, __stop_test_section;
  12.  
  13. diff --git a/tests/weston-test-runner.h b/tests/weston-test-runner.h
  14. index e1db040..7f7cf45 100644
  15. --- a/tests/weston-test-runner.h
  16. +++ b/tests/weston-test-runner.h
  17. @@ -27,11 +27,27 @@
  18.  #include "config.h"
  19.  
  20.  #include <stdlib.h>
  21. +#include <stdio.h>
  22. +#include <signal.h>
  23.  
  24.  #ifdef NDEBUG
  25.  #error "Tests must not be built with NDEBUG defined, they rely on assert()."
  26.  #endif
  27.  
  28. +extern int assert_exit_code;
  29. +
  30. +#define WESTON_TEST_EXPECT_FAILURE do { assert_exit_code = EXIT_SUCCESS; } while (0);
  31. +#define WESTON_TEST_DONT_EXPECT_FAILURE do { assert_exit_code = SIGABRT; } while (0);
  32. +
  33. +#define assert(cond)                                                   \
  34. +       do {                                                            \
  35. +               if (!(cond)) {                                          \
  36. +                       fprintf(stderr, "%s: %d: Assertion %s failed\n",\
  37. +                               __FUNCTION__, __LINE__, #cond);         \
  38. +                       exit(assert_exit_code);                 \
  39. +               }                                                       \
  40. +       } while (0)
  41. +
  42.  struct weston_test {
  43.         const char *name;
  44.         void (*run)(void *);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement