test_resourcelimits.c (3260B)
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_resourcelimits.c 6 * 7 * Test ResourceLimits Type 8 * 9 */ 10 11 #include "testutil.h" 12 #include "testutil_nss.h" 13 14 static void *plContext = NULL; 15 16 static void 17 testDestroy(void *goodObject, void *equalObject, void *diffObject) 18 { 19 PKIX_TEST_STD_VARS(); 20 21 subTest("PKIX_ResourceLimits_Destroy"); 22 23 PKIX_TEST_DECREF_BC(goodObject); 24 PKIX_TEST_DECREF_BC(equalObject); 25 PKIX_TEST_DECREF_BC(diffObject); 26 27 cleanup: 28 29 PKIX_TEST_RETURN(); 30 } 31 32 int 33 test_resourcelimits(int argc, char *argv[]) 34 { 35 36 PKIX_ResourceLimits *goodObject = NULL; 37 PKIX_ResourceLimits *equalObject = NULL; 38 PKIX_ResourceLimits *diffObject = NULL; 39 PKIX_UInt32 maxTime = 0; 40 PKIX_UInt32 maxFanout = 0; 41 PKIX_UInt32 maxDepth = 0; 42 PKIX_UInt32 actualMinorVersion; 43 PKIX_UInt32 j = 0; 44 char *expectedAscii = 45 "[\n" 46 "\tMaxTime: 10\n" 47 "\tMaxFanout: 5\n" 48 "\tMaxDepth: 5\n" 49 "]\n"; 50 51 PKIX_TEST_STD_VARS(); 52 53 startTests("ResourceLimits"); 54 55 PKIX_TEST_EXPECT_NO_ERROR( 56 PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); 57 58 subTest("PKIX_ResourceLimits_Create"); 59 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create(&goodObject, plContext)); 60 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create(&diffObject, plContext)); 61 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create(&equalObject, plContext)); 62 63 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime(goodObject, 10, plContext)); 64 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxTime(goodObject, &maxTime, plContext)); 65 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime(equalObject, maxTime, plContext)); 66 maxTime++; 67 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime(diffObject, maxTime, plContext)); 68 69 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout(goodObject, 5, plContext)); 70 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxFanout(goodObject, &maxFanout, plContext)); 71 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout(equalObject, maxFanout, plContext)); 72 maxFanout++; 73 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout(diffObject, maxFanout, plContext)); 74 75 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth(goodObject, 5, plContext)); 76 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxDepth(goodObject, &maxDepth, plContext)); 77 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth(equalObject, maxDepth, plContext)); 78 maxDepth++; 79 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth(diffObject, maxDepth, plContext)); 80 81 PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObject, 82 equalObject, 83 diffObject, 84 expectedAscii, 85 ResourceLimits, 86 PKIX_FALSE); 87 88 testDestroy(goodObject, equalObject, diffObject); 89 90 cleanup: 91 92 PKIX_Shutdown(plContext); 93 94 PKIX_TEST_RETURN(); 95 96 endTests("ResourceLimits"); 97 98 return (0); 99 }