1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /*
5 * test_date.c
6 *
7 * Test Date Type
8 *
9 */
10
11 #include "testutil.h"
12 #include "testutil_nss.h"
13
14 static void *plContext = NULL;
15
16 static void
createDates(char * goodInput,char * diffInput,PKIX_PL_Date ** goodDate,PKIX_PL_Date ** equalDate,PKIX_PL_Date ** diffDate)17 createDates(char *goodInput, char *diffInput,
18 PKIX_PL_Date **goodDate,
19 PKIX_PL_Date **equalDate,
20 PKIX_PL_Date **diffDate)
21 {
22
23 subTest("PKIX_PL_Date_Create <goodDate>");
24 *goodDate = createDate(goodInput, plContext);
25
26 subTest("PKIX_PL_Date_Create <equalDate>");
27 *equalDate = createDate(goodInput, plContext);
28
29 subTest("PKIX_PL_Date_Create <diffDate>");
30 *diffDate = createDate(diffInput, plContext);
31 }
32
33 static void
testDestroy(void * goodObject,void * equalObject,void * diffObject)34 testDestroy(void *goodObject, void *equalObject, void *diffObject)
35 {
36 PKIX_TEST_STD_VARS();
37
38 subTest("PKIX_PL_Date_Destroy");
39
40 PKIX_TEST_DECREF_BC(goodObject);
41 PKIX_TEST_DECREF_BC(equalObject);
42 PKIX_TEST_DECREF_BC(diffObject);
43
44 cleanup:
45
46 PKIX_TEST_RETURN();
47 }
48
49 static void
testDate(char * goodInput,char * diffInput)50 testDate(char *goodInput, char *diffInput)
51 {
52
53 PKIX_PL_Date *goodDate = NULL;
54 PKIX_PL_Date *equalDate = NULL;
55 PKIX_PL_Date *diffDate = NULL;
56
57 /*
58 * The ASCII rep of the date will vary by platform and locale
59 * This particular string was generated on a SPARC running Solaris 9
60 * in an English locale
61 */
62 /* char *expectedAscii = "Mon Mar 29 08:48:47 2004"; */
63 char *expectedAscii = "Mon Mar 29, 2004";
64
65 PKIX_TEST_STD_VARS();
66
67 createDates(goodInput, diffInput,
68 &goodDate, &equalDate, &diffDate);
69
70 PKIX_TEST_EQ_HASH_TOSTR_DUP(goodDate, equalDate, diffDate, expectedAscii, Date, PKIX_TRUE);
71
72 testDestroy(goodDate, equalDate, diffDate);
73
74 PKIX_TEST_RETURN();
75 }
76
77 int
test_date(int argc,char * argv[])78 test_date(int argc, char *argv[])
79 {
80
81 char *goodInput = NULL;
82 char *diffInput = NULL;
83 PKIX_UInt32 actualMinorVersion;
84 PKIX_UInt32 j = 0;
85
86 PKIX_TEST_STD_VARS();
87
88 startTests("Date");
89
90 PKIX_TEST_EXPECT_NO_ERROR(
91 PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext));
92
93 goodInput = "040329134847Z";
94 diffInput = "050329135847Z";
95 testDate(goodInput, diffInput);
96
97 cleanup:
98
99 PKIX_Shutdown(plContext);
100
101 PKIX_TEST_RETURN();
102
103 endTests("Date");
104
105 return (0);
106 }
107