Blame time/tst-mktime.c

Packit 6c4009
#include <stdlib.h>
Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
#include <time.h>
Packit 6c4009
Packit 6c4009
static int
Packit 6c4009
do_test (void)
Packit 6c4009
{
Packit 6c4009
  struct tm time_str, *tm;
Packit 6c4009
  time_t t;
Packit 6c4009
  char daybuf[20];
Packit 6c4009
  int result;
Packit 6c4009
Packit 6c4009
  time_str.tm_year = 2001 - 1900;
Packit 6c4009
  time_str.tm_mon = 7 - 1;
Packit 6c4009
  time_str.tm_mday = 4;
Packit 6c4009
  time_str.tm_hour = 0;
Packit 6c4009
  time_str.tm_min = 0;
Packit 6c4009
  time_str.tm_sec = 1;
Packit 6c4009
  time_str.tm_isdst = -1;
Packit 6c4009
Packit 6c4009
  if (mktime (&time_str) == -1)
Packit 6c4009
    {
Packit 6c4009
      (void) puts ("-unknown-");
Packit 6c4009
      result = 1;
Packit 6c4009
    }
Packit 6c4009
  else
Packit 6c4009
    {
Packit 6c4009
      (void) strftime (daybuf, sizeof (daybuf), "%A", &time_str);
Packit 6c4009
      (void) puts (daybuf);
Packit 6c4009
      result = strcmp (daybuf, "Wednesday") != 0;
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  setenv ("TZ", "EST+5", 1);
Packit 6c4009
#define EVENING69 1 * 60 * 60 + 2 * 60 + 29
Packit 6c4009
  t = EVENING69;
Packit 6c4009
  tm = localtime (&t);
Packit 6c4009
  if (tm == NULL)
Packit 6c4009
    {
Packit 6c4009
      (void) puts ("localtime returned NULL");
Packit 6c4009
      result = 1;
Packit 6c4009
    }
Packit 6c4009
  else
Packit 6c4009
    {
Packit 6c4009
      time_str = *tm;
Packit 6c4009
      t = mktime (&time_str);
Packit 6c4009
      if (t != EVENING69)
Packit 6c4009
        {
Packit 6c4009
          printf ("mktime returned %ld, expected %d\n",
Packit 6c4009
		  (long) t, EVENING69);
Packit 6c4009
	  result = 1;
Packit 6c4009
        }
Packit 6c4009
      else
Packit 6c4009
        (void) puts ("Dec 31 1969 EST test passed");
Packit 6c4009
Packit 6c4009
      setenv ("TZ", "CET-1", 1);
Packit 6c4009
      t = mktime (&time_str);
Packit 6c4009
#define EVENING69_CET (EVENING69 - (5 - -1) * 60 * 60)
Packit 6c4009
      if (t != EVENING69_CET)
Packit 6c4009
        {
Packit 6c4009
	  printf ("mktime returned %ld, expected %ld\n",
Packit 6c4009
		  (long) t, (long) EVENING69_CET);
Packit 6c4009
	  result = 1;
Packit 6c4009
        }
Packit 6c4009
      else
Packit 6c4009
        (void) puts ("Dec 31 1969 CET test passed");
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  return result;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
#define TEST_FUNCTION do_test ()
Packit 6c4009
#include "../test-skeleton.c"