/* Test program for mktime bugs with out-of-range tm_sec values.  */

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

struct tm tests[] =
{
  { .tm_sec = -1, .tm_mday = 1, .tm_year = 104 },
  { .tm_sec = 65, .tm_min = 59, .tm_hour = 23, .tm_mday = 31,
    .tm_mon = 11, .tm_year = 101 }
};
struct tm expected[] =
{
  { .tm_sec = 59, .tm_min = 59, .tm_hour = 23, .tm_mday = 31,
    .tm_mon = 11, .tm_year = 103, .tm_wday = 3, .tm_yday = 364 },
  { .tm_sec = 5, .tm_mday = 1, .tm_year = 102, .tm_wday = 2 }
};

int
main (void)
{
  setenv ("TZ", "UTC", 1);
  int i;
  for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
    {
      if (mktime (&tests[i]) < 0)
	{
	  printf ("mktime %d failed\n", i);
	  return 1;
	}
#define CHECK(name) \
      if (tests[i].name != expected[i].name)			\
	{							\
	  printf ("test %d " #name " got %d expected %d\n",	\
		  i, tests[i].name, expected[i].name);		\
	  return 1;						\
	}
      CHECK (tm_sec)
      CHECK (tm_min)
      CHECK (tm_hour)
      CHECK (tm_mday)
      CHECK (tm_mon)
      CHECK (tm_year)
      CHECK (tm_wday)
      CHECK (tm_yday)
      CHECK (tm_isdst)
    }
  return 0;
}
