ksgi
1/* $Id$ */
2/*
3* Copyright (c) 2020 Kristaps Dzonsons <kristaps@bsd.lv>
4*
5* Permission to use, copy, modify, and distribute this software for any
6* purpose with or without fee is hereby granted, provided that the above
7* copyright notice and this permission notice appear in all copies.
8*
9* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*/
17#include "../config.h"18
19#if HAVE_ERR20# include <err.h>21#endif22
23#include <stdarg.h>24#include <stdint.h>25#include <stdlib.h>26#include <string.h>27#include <time.h>28#include <unistd.h>29
30#include <curl/curl.h>31
32#include "../kcgi.h"33#include "regress.h"34
35int
36main(int argc, char *argv[])37{
38size_t i;39time_t v;40struct tm *tm;41struct tm have, test;42int c;43
44/*45* Test a lot of positive and negative numbers.
46* We want the full range of time_t to work.
47*/
48
49for (i = 0; i < 100000; i++) {50#if HAVE_ARC4RANDOM51v = (int32_t)arc4random();52#else53v = (int32_t)(random() + random());54#endif55if ((tm = gmtime(&v)) == NULL)56err(1, "gmtime");57have = *tm;58c = KHTTP_EPOCH2TM(v, &test);59if (!c)60errx(1, "KHTTP_EPOCH2TM");61if (have.tm_sec != test.tm_sec ||62have.tm_min != test.tm_min ||63have.tm_hour != test.tm_hour ||64have.tm_mday != test.tm_mday ||65have.tm_mon != test.tm_mon ||66have.tm_year != test.tm_year ||67have.tm_wday != test.tm_wday ||68have.tm_yday != test.tm_yday)69errx(1, "KHTTP_EPOCH2TM: mismatch");70}71
72return 0;73}
74