Blame inet/tst-checks.c

Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
#include <netinet/in.h>
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
static int
Packit Service 82fcde
do_test (void)
Packit Service 82fcde
{
Packit Service 82fcde
  int result = 0;
Packit Service 82fcde
  char buf[16];
Packit Service 82fcde
  memset (buf, '\0', 16);
Packit Service 82fcde
Packit Service 82fcde
  if (! IN6_IS_ADDR_UNSPECIFIED (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 0; i < 16; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] = 1;
Packit Service 82fcde
      if (IN6_IS_ADDR_UNSPECIFIED (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("negative IN6_IS_ADDR_UNSPECIFIED with byte %zu failed\n",
Packit Service 82fcde
		  i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] = 0;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  if (IN6_IS_ADDR_LOOPBACK (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_UNSPECIFIED failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[15] = 1;
Packit Service 82fcde
  if (! IN6_IS_ADDR_LOOPBACK (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[15] = 0;
Packit Service 82fcde
Packit Service 82fcde
  buf[0] = 0xfe;
Packit Service 82fcde
  buf[1] = 0x80;
Packit Service 82fcde
  if (! IN6_IS_ADDR_LINKLOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("positive IN6_IS_ADDR_LINKLOCAL failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 1; i < 16; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
      if (! IN6_IS_ADDR_LINKLOCAL (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("positive IN6_IS_ADDR_LINKLOCAL byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[0] = 0xff;
Packit Service 82fcde
  buf[1] = 0x80;
Packit Service 82fcde
  if (IN6_IS_ADDR_LINKLOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_LINKLOCAL failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[0] = 0xfe;
Packit Service 82fcde
  buf[1] = 0xc0;
Packit Service 82fcde
  if (IN6_IS_ADDR_LINKLOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_LINKLOCAL #2 failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  buf[0] = 0xfe;
Packit Service 82fcde
  buf[1] = 0xc0;
Packit Service 82fcde
  if (! IN6_IS_ADDR_SITELOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("positive IN6_IS_ADDR_SITELOCAL failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 1; i < 16; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
      if (! IN6_IS_ADDR_SITELOCAL (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("positive IN6_IS_ADDR_SITELOCAL byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[0] = 0xff;
Packit Service 82fcde
  buf[1] = 0x80;
Packit Service 82fcde
  if (IN6_IS_ADDR_SITELOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_SITELOCAL failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[0] = 0xf8;
Packit Service 82fcde
  buf[1] = 0xc0;
Packit Service 82fcde
  if (IN6_IS_ADDR_SITELOCAL (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_SITELOCAL #2 failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  memset (buf, '\0', 16);
Packit Service 82fcde
  buf[10] = 0xff;
Packit Service 82fcde
  buf[11] = 0xff;
Packit Service 82fcde
  if (! IN6_IS_ADDR_V4MAPPED (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("positive IN6_IS_ADDR_V4MAPPED failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 12; i < 16; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
      if (! IN6_IS_ADDR_V4MAPPED (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("positive IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 0; i < 12; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
      if (IN6_IS_ADDR_V4MAPPED (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("negative IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  memset (buf, '\0', 16);
Packit Service 82fcde
  for (size_t i = 12; i < 16; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 2;
Packit Service 82fcde
      if (! IN6_IS_ADDR_V4COMPAT (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("positive IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 2;
Packit Service 82fcde
    }
Packit Service 82fcde
  for (size_t i = 0; i < 12; ++i)
Packit Service 82fcde
    {
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
      if (IN6_IS_ADDR_V4COMPAT (buf))
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf ("negative IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
Packit Service 82fcde
	  result = 1;
Packit Service 82fcde
	}
Packit Service 82fcde
      buf[i] ^= 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  if (IN6_IS_ADDR_V4COMPAT (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_V4COMPAT #2 failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
  buf[15] = 1;
Packit Service 82fcde
  if (IN6_IS_ADDR_V4COMPAT (buf))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("negative IN6_IS_ADDR_V4COMPAT #3 failed");
Packit Service 82fcde
      result = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  return result;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
#include <support/test-driver.c>