Blame misc/tst-insremque.c

Packit Service 82fcde
#include <search.h>
Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
Packit Service 82fcde
#define CHECK(cond) \
Packit Service 82fcde
  do									\
Packit Service 82fcde
    if (! (cond))							\
Packit Service 82fcde
      {									\
Packit Service 82fcde
	printf ("Condition " #cond " not true on line %d\n", __LINE__);	\
Packit Service 82fcde
	ret = 1;							\
Packit Service 82fcde
      }									\
Packit Service 82fcde
  while (0)
Packit Service 82fcde
Packit Service 82fcde
static int
Packit Service 82fcde
do_test (void)
Packit Service 82fcde
{
Packit Service 82fcde
  struct qelem elements[4];
Packit Service 82fcde
  int ret = 0;
Packit Service 82fcde
Packit Service 82fcde
  /* Linear list.  */
Packit Service 82fcde
  memset (elements, 0xff, sizeof (elements));
Packit Service 82fcde
  insque (&elements[0], NULL);
Packit Service 82fcde
  remque (&elements[0]);
Packit Service 82fcde
  insque (&elements[0], NULL);
Packit Service 82fcde
  insque (&elements[2], &elements[0]);
Packit Service 82fcde
  insque (&elements[1], &elements[0]);
Packit Service 82fcde
  insque (&elements[3], &elements[2]);
Packit Service 82fcde
  remque (&elements[2]);
Packit Service 82fcde
  insque (&elements[2], &elements[0]);
Packit Service 82fcde
  CHECK (elements[0].q_back == NULL);
Packit Service 82fcde
  CHECK (elements[0].q_forw == &elements[2]);
Packit Service 82fcde
  CHECK (elements[1].q_back == &elements[2]);
Packit Service 82fcde
  CHECK (elements[1].q_forw == &elements[3]);
Packit Service 82fcde
  CHECK (elements[2].q_back == &elements[0]);
Packit Service 82fcde
  CHECK (elements[2].q_forw == &elements[1]);
Packit Service 82fcde
  CHECK (elements[3].q_back == &elements[1]);
Packit Service 82fcde
  CHECK (elements[3].q_forw == NULL);
Packit Service 82fcde
Packit Service 82fcde
  /* Circular list.  */
Packit Service 82fcde
  memset (elements, 0xff, sizeof (elements));
Packit Service 82fcde
  elements[0].q_back = &elements[0];
Packit Service 82fcde
  elements[0].q_forw = &elements[0];
Packit Service 82fcde
  insque (&elements[2], &elements[0]);
Packit Service 82fcde
  insque (&elements[1], &elements[0]);
Packit Service 82fcde
  insque (&elements[3], &elements[2]);
Packit Service 82fcde
  remque (&elements[2]);
Packit Service 82fcde
  insque (&elements[2], &elements[0]);
Packit Service 82fcde
  CHECK (elements[0].q_back == &elements[3]);
Packit Service 82fcde
  CHECK (elements[0].q_forw == &elements[2]);
Packit Service 82fcde
  CHECK (elements[1].q_back == &elements[2]);
Packit Service 82fcde
  CHECK (elements[1].q_forw == &elements[3]);
Packit Service 82fcde
  CHECK (elements[2].q_back == &elements[0]);
Packit Service 82fcde
  CHECK (elements[2].q_forw == &elements[1]);
Packit Service 82fcde
  CHECK (elements[3].q_back == &elements[1]);
Packit Service 82fcde
  CHECK (elements[3].q_forw == &elements[0]);
Packit Service 82fcde
Packit Service 82fcde
  return ret;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
#define TEST_FUNCTION do_test ()
Packit Service 82fcde
#include "../test-skeleton.c"