static int check_time(long offset) { struct tm tm1, tm2, o1; int off_day, off_sec; long toffset; time_t t1, t2; time(&t1); t2 = t1 + offset; OPENSSL_gmtime(&t2, &tm2); OPENSSL_gmtime(&t1, &tm1); o1 = tm1; OPENSSL_gmtime_adj(&tm1, 0, offset); if (!TEST_int_eq(tm1.tm_year, tm2.tm_year) || !TEST_int_eq(tm1.tm_mon, tm2.tm_mon) || !TEST_int_eq(tm1.tm_mday, tm2.tm_mday) || !TEST_int_eq(tm1.tm_hour, tm2.tm_hour) || !TEST_int_eq(tm1.tm_min, tm2.tm_min) || !TEST_int_eq(tm1.tm_sec, tm2.tm_sec) || !TEST_true(OPENSSL_gmtime_diff(&off_day, &off_sec, &o1, &tm1))) return 0; toffset = (long)off_day * SECS_PER_DAY + off_sec; if (!TEST_long_eq(offset, toffset)) return 0; return 1; }
static int test_sanity_sign(void) { /* Check that values with sign bit 1 and value bits 0 are valid */ if (!TEST_int_eq(-(INT_MIN + 1), INT_MAX) || !TEST_long_eq(-(LONG_MIN + 1), LONG_MAX)) return 0; return 1; }
static int test_sanity_unsigned_convertion(void) { /* Check that unsigned-to-signed conversions preserve bit patterns */ if (!TEST_int_eq((int)((unsigned int)INT_MAX + 1), INT_MIN) || !TEST_long_eq((long)((unsigned long)LONG_MAX + 1), LONG_MIN)) return 0; return 1; }
static int test_sanity_twos_complement(void) { /* Basic two's complement checks. */ if (!TEST_int_eq(~(-1), 0) || !TEST_long_eq(~(-1L), 0L)) return 0; return 1; }