summaryrefslogtreecommitdiffstats
path: root/test/asn1_time_test.c
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2017-08-25 16:34:56 -0400
committerRich Salz <rsalz@openssl.org>2017-08-30 11:24:02 -0400
commite44d37618018eb5dc8ba2d776b215abdaca6090a (patch)
tree53da2f3aabe6b93365bb60c2d6e00fc70c5c966f /test/asn1_time_test.c
parent54cf3b981afcbbd3754c8ba1114ab6a658d86c08 (diff)
Fix return value of ASN1_TIME_compare
Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4264)
Diffstat (limited to 'test/asn1_time_test.c')
-rw-r--r--test/asn1_time_test.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/asn1_time_test.c b/test/asn1_time_test.c
index 96394a1bf8..874260ec84 100644
--- a/test/asn1_time_test.c
+++ b/test/asn1_time_test.c
@@ -274,6 +274,51 @@ static int test_table_neg_64bit(int idx)
return test_table(tbl_testdata_neg_64bit, idx);
}
+struct compare_testdata {
+ ASN1_TIME t1;
+ ASN1_TIME t2;
+ int result;
+};
+
+static unsigned char TODAY_GEN_STR[] = "20170825000000Z";
+static unsigned char TOMORROW_GEN_STR[] = "20170826000000Z";
+static unsigned char TODAY_UTC_STR[] = "170825000000Z";
+static unsigned char TOMORROW_UTC_STR[] = "170826000000Z";
+
+#define TODAY_GEN { sizeof(TODAY_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TODAY_GEN_STR, 0 }
+#define TOMORROW_GEN { sizeof(TOMORROW_GEN_STR)-1, V_ASN1_GENERALIZEDTIME, TOMORROW_GEN_STR, 0 }
+#define TODAY_UTC { sizeof(TODAY_UTC_STR)-1, V_ASN1_UTCTIME, TODAY_UTC_STR, 0 }
+#define TOMORROW_UTC { sizeof(TOMORROW_UTC_STR)-1, V_ASN1_UTCTIME, TOMORROW_UTC_STR, 0 }
+
+static struct compare_testdata tbl_compare_testdata[] = {
+ { TODAY_GEN, TODAY_GEN, 0 },
+ { TODAY_GEN, TODAY_UTC, 0 },
+ { TODAY_GEN, TOMORROW_GEN, -1 },
+ { TODAY_GEN, TOMORROW_UTC, -1 },
+
+ { TODAY_UTC, TODAY_GEN, 0 },
+ { TODAY_UTC, TODAY_UTC, 0 },
+ { TODAY_UTC, TOMORROW_GEN, -1 },
+ { TODAY_UTC, TOMORROW_UTC, -1 },
+
+ { TOMORROW_GEN, TODAY_GEN, 1 },
+ { TOMORROW_GEN, TODAY_UTC, 1 },
+ { TOMORROW_GEN, TOMORROW_GEN, 0 },
+ { TOMORROW_GEN, TOMORROW_UTC, 0 },
+
+ { TOMORROW_UTC, TODAY_GEN, 1 },
+ { TOMORROW_UTC, TODAY_UTC, 1 },
+ { TOMORROW_UTC, TOMORROW_GEN, 0 },
+ { TOMORROW_UTC, TOMORROW_UTC, 0 }
+};
+
+static int test_table_compare(int idx)
+{
+ struct compare_testdata *td = &tbl_compare_testdata[idx];
+
+ return TEST_int_eq(ASN1_TIME_compare(&td->t1, &td->t2), td->result);
+}
+
int setup_tests(void)
{
/*
@@ -305,5 +350,6 @@ int setup_tests(void)
ADD_ALL_TESTS(test_table_neg_64bit, OSSL_NELEM(tbl_testdata_neg_64bit));
}
}
+ ADD_ALL_TESTS(test_table_compare, OSSL_NELEM(tbl_compare_testdata));
return 1;
}