text: #ifndef LWIP_HDR_LWIP_CHECK_H
  #define LWIP_HDR_LWIP_CHECK_H
  
  /* Common header file for lwIP unit tests using the check framework */
  
  #include <config.h>
  #include "lwip_check.h"
  #include <stdlib.h>
  
  #define FAIL_RET() do { fail(); return; } while(0)
  #define EXPECT(x) fail_unless(x)
  #define EXPECT_RET(x) do { fail_unless(x); if(!(x)) { return; }} while(0)
  #define EXPECT_RETX(x, y) do { fail_unless(x); if(!(x)) { return y; }} while(0)
  #define EXPECT_RETNULL(x) EXPECT_RETX(x, NULL)
  
  typedef struct {
    TFun func;
    const char *name;
  } testfunc;
  
  #define TESTFUNC(x) {(x), "" # x "" }
  
  /* Modified function from check.h, supplying function name */
  #define tcase_add_named_test(tc,tf) \
     _tcase_add_test((tc),(tf).func,(tf).name,0, 0, 0, 1)
  
  /** typedef for a function returning a test suite */
  typedef Suite* (suite_getter_fn)(void);
  
  /** Create a test suite */
  Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown);
  
  #ifdef LWIP_UNITTESTS_LIB
  int lwip_unittests_run(void)
  #endif
  
  /* helper functions */
  #define SKIP_POOL(x) (1 << x)
  #define SKIP_HEAP    (1 << MEMP_MAX)
  void lwip_check_ensure_no_alloc(unsigned int skip);
  
  #endif /* LWIP_HDR_LWIP_CHECK_H */
  