Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/VibeDevelopers/Comet.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include "tap/basic.h"
#include "s_newconf.h"
#define MSG "%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__
#define MINUTE (60)#define HOUR (MINUTE * 60)#define DAY (HOUR * 24)#define WEEK (DAY * 7)
static void valid_temp_time1(void){ time_t t; t = valid_temp_time("1"); is_int(MINUTE, t, MSG); t = valid_temp_time("1m"); is_int(MINUTE, t, MSG); t = valid_temp_time("1h"); is_int(HOUR, t, MSG); t = valid_temp_time("1d"); is_int(DAY, t, MSG); t = valid_temp_time("1w"); is_int(WEEK, t, MSG);
t = valid_temp_time("2d"); is_int(2 * DAY, t, MSG);
t = valid_temp_time("1w2d3h4m"); is_int(1 * WEEK + 2 * DAY + 3 * HOUR + 4 * MINUTE, t, MSG); t = valid_temp_time("1w2d3h4"); is_int(1 * WEEK + 2 * DAY + 3 * HOUR + 4 * MINUTE, t, MSG);
t = valid_temp_time("4m3h2d1w"); is_int(1 * WEEK + 2 * DAY + 3 * HOUR + 4 * MINUTE, t, MSG);
t = valid_temp_time("7000w"); is_int(52 * WEEK, t, MSG);}
static void valid_temp_time_invalid(void){ time_t t; t = valid_temp_time("-2w"); is_int(-1, t, MSG);
t = valid_temp_time("hello"); is_int(-1, t, MSG);
t = valid_temp_time("m"); is_int(-1, t, MSG);
t = valid_temp_time("1w-1w"); is_int(-1, t, MSG);}
static void valid_temp_time_overflow(void){ char s[100]; time_t t;
snprintf(s, sizeof s, "%" PRIuMAX "m", UINTMAX_MAX / 60 + 2); t = valid_temp_time(s); is_int(52 * WEEK, t, MSG);
snprintf(s, sizeof s, "%ldm", LONG_MAX / 60 + 2); t = valid_temp_time(s); is_int(52 * WEEK, t, MSG);
snprintf(s, sizeof s, "%ldm%ldm", LONG_MAX / 60 - 1, LONG_MAX / 60 - 1); t = valid_temp_time(s); is_int(52 * WEEK, t, MSG);}
int main(int argc, char *argv[]){ plan_lazy();
valid_temp_time1(); valid_temp_time_invalid(); valid_temp_time_overflow();
return 0;}