libs/c-timestamp/t/valid.c (24 lines of code) (raw):

#include <string.h> #include "timestamp.h" #include "tap.h" int main() { timestamp_t ts; ts.sec = 0; ts.offset = 0; ts.nsec = -1; ok(!timestamp_valid(&ts), "nsec out of range"); ts.nsec = 1000000000; ok(!timestamp_valid(&ts), "nsec out of range"); ts.nsec = 0; ts.offset = -23 * 60 - 60; ok(!timestamp_valid(&ts), "offset out of range"); ts.offset = +23 * 60 + 60; ok(!timestamp_valid(&ts), "offset out of range"); ts.offset = 0; ts.sec = INT64_C(-62135596801); /* 0000-12-31T23:59:59Z */ ok(!timestamp_valid(&ts), "sec out of range"); ts.sec = INT64_C(253402387140); /* 10000-01-01T23:59:00Z */ ok(!timestamp_valid(&ts), "sec out of range"); done_testing(); }