mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
test/asn1_time_test.c: Better check of signed time_t
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4182)
This commit is contained in:
parent
8909c2ceee
commit
fdf9450f42
@ -276,18 +276,31 @@ static int test_table_neg_64bit(int idx)
|
||||
|
||||
int setup_tests(void)
|
||||
{
|
||||
/*
|
||||
* On platforms where |time_t| is an unsigned integer, t will be a
|
||||
* positive number.
|
||||
*
|
||||
* We check if we're on a platform with a signed |time_t| with '!(t > 0)'
|
||||
* because some compilers are picky if you do 't < 0', or even 't <= 0'
|
||||
* if |t| is unsigned.
|
||||
*/
|
||||
time_t t = -1;
|
||||
/*
|
||||
* On some platforms, |time_t| is signed, but a negative value is an
|
||||
* error, and using it with gmtime() or localtime() generates a NULL.
|
||||
* If that is the case, we can't perform tests on negative values.
|
||||
*/
|
||||
struct tm *ptm = localtime(&t);
|
||||
|
||||
ADD_ALL_TESTS(test_table_pos, OSSL_NELEM(tbl_testdata_pos));
|
||||
if (ptm != NULL) {
|
||||
if (!(t > 0) && ptm != NULL) {
|
||||
TEST_info("Adding negative-sign time_t tests");
|
||||
ADD_ALL_TESTS(test_table_neg, OSSL_NELEM(tbl_testdata_neg));
|
||||
}
|
||||
if (sizeof(time_t) > sizeof(uint32_t)) {
|
||||
TEST_info("Adding 64-bit time_t tests");
|
||||
ADD_ALL_TESTS(test_table_pos_64bit, OSSL_NELEM(tbl_testdata_pos_64bit));
|
||||
if (ptm != NULL) {
|
||||
if (!(t > 0) && ptm != NULL) {
|
||||
TEST_info("Adding negative-sign 64-bit time_t tests");
|
||||
ADD_ALL_TESTS(test_table_neg_64bit, OSSL_NELEM(tbl_testdata_neg_64bit));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user