(root)/
Linux-PAM-1.5.3/
libpam/
include/
test_assert.h
       1  /*
       2   * Assert definitions for tests.
       3   *
       4   * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
       5   */
       6  
       7  #ifndef TEST_ASSERT_H
       8  # define TEST_ASSERT_H
       9  
      10  # ifdef HAVE_CONFIG_H
      11  #  include <config.h>
      12  # endif
      13  
      14  # include <stdio.h>
      15  # include <stdlib.h>
      16  
      17  # define ASSERT_(expected_, expected_str_, op_, seen_, seen_str_)		\
      18  	do {									\
      19  		__typeof__(expected_) e_ = (expected_);				\
      20  		__typeof__(seen_) s_ = (seen_);					\
      21  		if (e_ op_ s_) break;						\
      22  		fprintf(stderr,							\
      23  			"%s:%d: Assertion failed: %s (%#lx) %s %s (%#lx)\n",	\
      24  			__FILE__, __LINE__,					\
      25  			(expected_str_), (unsigned long) e_, #op_,		\
      26  			(seen_str_), (unsigned long) s_);			\
      27  		abort();							\
      28  	} while (0)								\
      29  /* End of ASSERT_ definition.  */
      30  
      31  # define ASSERT_EQ(expected_, seen_)						\
      32  	ASSERT_((expected_), #expected_, ==, (seen_), #seen_)			\
      33  /* End of ASSERT_EQ definition.  */
      34  
      35  # define ASSERT_NE(expected_, seen_)						\
      36  	ASSERT_((expected_), #expected_, !=, (seen_), #seen_)			\
      37  /* End of ASSERT_NE definition.  */
      38  
      39  # define ASSERT_LT(expected_, seen_)						\
      40  	ASSERT_((expected_), #expected_, <, (seen_), #seen_)			\
      41  /* End of ASSERT_LT definition.  */
      42  
      43  # define ASSERT_LE(expected_, seen_)						\
      44  	ASSERT_((expected_), #expected_, <=, (seen_), #seen_)			\
      45  /* End of ASSERT_LT definition.  */
      46  
      47  # define ASSERT_GT(expected_, seen_)						\
      48  	ASSERT_((expected_), #expected_, >, (seen_), #seen_)			\
      49  /* End of ASSERT_LT definition.  */
      50  
      51  # define ASSERT_GE(expected_, seen_)						\
      52  	ASSERT_((expected_), #expected_, >=, (seen_), #seen_)			\
      53  /* End of ASSERT_LT definition.  */
      54  
      55  #endif /* TEST_ASSERT_H */