1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#include <stdio.h>
#include <time.h>
#include "tests.h"
#define START_TEST(t) \
diag(#t); \
test_##t();
void test_time()
{
time_t now;
time_t tloc;
now = time(NULL);
is_not_eq(now, 0);
now = time(&tloc);
is_not_eq(now, 0);
is_eq(now, tloc);
}
void test_ctime()
{
char* s;
// 1999-12-31 11:59:58
time_t now = 946670398;
s = ctime(&now);
is_not_null(s);
// Hours/minutes will vary based on local time. Ignore them.
s[11] = 'H';
s[12] = 'H';
s[14] = 'm';
s[15] = 'm';
is_streq(s, "Fri Dec 31 HH:mm:58 1999\n");
}
void test_gmtime()
{
struct tm * timeinfo;
time_t rawtime = 80000;
timeinfo = gmtime ( &rawtime );
is_eq( timeinfo-> tm_sec , 20 );
is_eq( timeinfo-> tm_min , 13 );
is_eq( timeinfo-> tm_hour , 22 );
is_eq( timeinfo-> tm_mday , 1 );
is_eq( timeinfo-> tm_mon , 0 );
is_eq( timeinfo-> tm_year , 70 );
is_eq( timeinfo-> tm_wday , 4 );
is_eq( timeinfo-> tm_yday , 0 );
is_eq( timeinfo-> tm_isdst , 0 );
}
void test_mktime()
{
struct tm timeinfo;
timeinfo.tm_year = 2000 - 1900;
timeinfo.tm_mon = 5 - 1 ;
timeinfo.tm_mday = 20 ;
timeinfo.tm_sec = 0 ;
timeinfo.tm_min = 0 ;
timeinfo.tm_hour = 0 ;
mktime ( &timeinfo );
is_eq(timeinfo.tm_wday , 6 );
is_eq(timeinfo.tm_year , 100 );
is_eq(timeinfo.tm_mon , 4 );
is_eq(timeinfo.tm_mday , 20 );
}
void test_asctime()
{
time_t rawtime = 80000;
struct tm * timeinfo;
timeinfo = gmtime ( &rawtime );
is_streq(asctime(timeinfo) , "Thu Jan 1 22:13:20 1970\n" );
}
int main()
{
plan(19);
// sorting in according to :
// http://www.cplusplus.com/reference/ctime/clock/
START_TEST(asctime );
// TODO : START_TEST(clock );
START_TEST(ctime );
// TODO : START_TEST(difftime );
START_TEST(gmtime );
// TODO : START_TEST(localtime );
START_TEST(mktime );
// TODO : START_TEST(strftime );
START_TEST(time );
done_testing();
}
|