diff options
Diffstat (limited to 'security/nss/cmd/libpkix/pkix/util/test_list.c')
-rw-r--r-- | security/nss/cmd/libpkix/pkix/util/test_list.c | 878 |
1 files changed, 0 insertions, 878 deletions
diff --git a/security/nss/cmd/libpkix/pkix/util/test_list.c b/security/nss/cmd/libpkix/pkix/util/test_list.c deleted file mode 100644 index eb145c0b1..000000000 --- a/security/nss/cmd/libpkix/pkix/util/test_list.c +++ /dev/null @@ -1,878 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_list.c - * - * Tests List Objects - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createLists(PKIX_List **list, PKIX_List **list2) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(list, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(list2, plContext)); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testReverseList(void) -{ - PKIX_List *firstList = NULL; - PKIX_List *reverseList = NULL; - PKIX_UInt32 length, i; - char *testItemString = "one"; - char *testItemString2 = "two"; - PKIX_PL_String *testItem = NULL; - PKIX_PL_String *testItem2 = NULL; - PKIX_PL_Object *retrievedItem1 = NULL; - PKIX_PL_Object *retrievedItem2 = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&firstList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 0){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_DECREF_BC(reverseList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - 0, - &testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - 0, - &testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 1){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_DECREF_BC(reverseList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 4){ - testError("Incorrect Length returned"); - } - - for (i = 0; i < length; i++){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (firstList, - i, - &retrievedItem1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (reverseList, - (length - 1) - i, - &retrievedItem2, - plContext)); - - testEqualsHelper - (retrievedItem1, retrievedItem2, PKIX_TRUE, plContext); - - PKIX_TEST_DECREF_BC(retrievedItem1); - PKIX_TEST_DECREF_BC(retrievedItem2); - - } - -cleanup: - - PKIX_TEST_DECREF_AC(firstList); - PKIX_TEST_DECREF_AC(reverseList); - - PKIX_TEST_DECREF_AC(testItem); - PKIX_TEST_DECREF_AC(testItem2); - - PKIX_TEST_DECREF_AC(retrievedItem1); - PKIX_TEST_DECREF_AC(retrievedItem2); - - PKIX_TEST_RETURN(); -} - -static void -testZeroLengthList(PKIX_List *list) -{ - PKIX_UInt32 length; - PKIX_Boolean empty; - char *testItemString = "hello"; - PKIX_PL_String *testItem = NULL; - PKIX_PL_String *retrievedItem = NULL; - PKIX_List *diffList = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&diffList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length, plContext)); - - if (length != 0){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsEmpty(list, &empty, plContext)); - if (!empty){ - testError("Incorrect result for PKIX_List_IsEmpty"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - 0, - &testItem, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_InsertItem - (list, 0, (PKIX_PL_Object *)testItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object *)testItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetItem - (list, - 0, - (PKIX_PL_Object **)&retrievedItem, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (diffList, - (PKIX_PL_Object*)testItem, - plContext)); - - testDuplicateHelper((PKIX_PL_Object *)diffList, plContext); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (list, list, diffList, "(EMPTY)", List, PKIX_TRUE); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(diffList, &length, plContext)); - if (length != 1){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_DeleteItem(diffList, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(diffList, &length, plContext)); - if (length != 0){ - testError("Incorrect Length returned"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(testItem); - PKIX_TEST_DECREF_AC(diffList); - PKIX_TEST_RETURN(); -} - -static void -testGetLength(PKIX_List *list) -{ - PKIX_UInt32 length; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length, plContext)); - - if (length != 3){ - testError("Incorrect Length returned"); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testGetSetItem( - PKIX_List *list, - char *testItemString, - char *testItemString2, - char *testItemString3, - PKIX_PL_String **testItem, - PKIX_PL_String **testItem2, - PKIX_PL_String **testItem3) -{ - PKIX_PL_Object *tempItem = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - PL_strlen(testItemString), - testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - PL_strlen(testItemString2), - testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString3, - PL_strlen(testItemString3), - testItem3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object*)*testItem, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 1, (PKIX_PL_Object*)*testItem2, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 2, (PKIX_PL_Object*)*testItem3, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 1, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString2, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 2, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString3, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object*)*testItem3, plContext)); - temp = PKIX_String2ASCII(*testItem3, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString3, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testInsertItem( - PKIX_List *list, - PKIX_PL_String *testItem, - char *testItemString) -{ - PKIX_PL_Object *tempItem = NULL; - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_InsertItem - (list, 0, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testAppendItem(PKIX_List *list, PKIX_PL_String *testItem) -{ - PKIX_UInt32 length2; - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list, - (PKIX_PL_Object*)testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testNestedLists( - PKIX_List *list, - PKIX_List *list2, - PKIX_PL_String *testItem, - PKIX_PL_String *testItem2) -{ - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list2, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list2, - (PKIX_PL_Object*)NULL, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list2, - (PKIX_PL_Object*)testItem, - plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (null), a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_InsertItem(list, 1, - (PKIX_PL_Object*)list2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (a, (null), a), c, b, c, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDeleteItem( - PKIX_List *list, - PKIX_List *list2, - PKIX_PL_String *testItem2, - PKIX_PL_String *testItem3) -{ - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 5, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (a, (null), a), c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list2, 1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list2, - (PKIX_PL_Object*)testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a, b)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list2, 2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list2, - (PKIX_PL_Object*)testItem3, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - - PKIX_TEST_DECREF_BC(list2); - -cleanup: - - PKIX_TEST_RETURN(); -} - -#if testContainsFunction -/* This test requires pkix_List_Contains to be in nss.def */ -static void -testContains(void) -{ - - PKIX_List *list; - PKIX_PL_String *testItem, *testItem2, *testItem3, *testItem4; - char *testItemString = "a"; - char *testItemString2 = "b"; - char *testItemString3 = "c"; - char *testItemString4 = "d"; - PKIX_Boolean found = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - subTest("pkix_ListContains"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - PL_strlen(testItemString), - &testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - PL_strlen(testItemString2), - &testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString3, - PL_strlen(testItemString3), - &testItem3, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString4, - PL_strlen(testItemString4), - &testItem4, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem3, plContext)); - - subTest("pkix_List_Contains <object missing>"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_List_Contains - (list, (PKIX_PL_Object *)testItem4, &found, plContext)); - - if (found){ - testError("Contains found item that wasn't there!"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem4, plContext)); - - subTest("pkix_List_Contains <object present>"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_List_Contains - (list, (PKIX_PL_Object *)testItem4, &found, plContext)); - - if (!found){ - testError("Contains missed item that was present!"); - } - - PKIX_TEST_DECREF_BC(list); - PKIX_TEST_DECREF_BC(testItem); - PKIX_TEST_DECREF_BC(testItem2); - PKIX_TEST_DECREF_BC(testItem3); - PKIX_TEST_DECREF_BC(testItem4); - -cleanup: - - PKIX_TEST_RETURN(); -} -#endif - -static void -testErrorHandling(void) -{ - PKIX_List *emptylist = NULL; - PKIX_List *list = NULL; - PKIX_PL_Object *tempItem = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - - PKIX_TEST_EXPECT_ERROR - (PKIX_List_GetItem(list, 4, &tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetItem(list, 1, NULL, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem(list, 4, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem(NULL, 1, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR - (PKIX_List_InsertItem(list, 4, tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR - (PKIX_List_InsertItem(NULL, 1, tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_AppendItem(NULL, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 5, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(NULL, 1, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetLength(list, NULL, plContext)); - - PKIX_TEST_DECREF_BC(list); - PKIX_TEST_DECREF_BC(emptylist); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy(PKIX_List *list) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(list); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_list(int argc, char *argv[]) { - - PKIX_List *list, *list2; - PKIX_PL_String *testItem, *testItem2, *testItem3; - char *testItemString = "a"; - char *testItemString2 = "b"; - char *testItemString3 = "c"; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Lists"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_List_Create"); - createLists(&list, &list2); - - subTest("pkix_List_ReverseList"); - testReverseList(); - - subTest("Zero-length List"); - testZeroLengthList(list); - - subTest("PKIX_List_Get/SetItem"); - testGetSetItem - (list, - testItemString, - testItemString2, - testItemString3, - &testItem, - &testItem2, - &testItem3); - - subTest("PKIX_List_GetLength"); - testGetLength(list); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (list, - list, - list2, - "(c, b, c)", - List, - PKIX_TRUE); - - subTest("PKIX_List_InsertItem"); - testInsertItem(list, testItem, testItemString); - - subTest("PKIX_List_AppendItem"); - testAppendItem(list, testItem); - - subTest("Nested Lists"); - testNestedLists(list, list2, testItem, testItem2); - - subTest("PKIX_List_DeleteItem"); - testDeleteItem(list, list2, testItem2, testItem3); - - PKIX_TEST_DECREF_BC(testItem); - PKIX_TEST_DECREF_BC(testItem2); - PKIX_TEST_DECREF_BC(testItem3); - -#if testContainsFunction -/* This test requires pkix_List_Contains to be in nss.def */ - testContains(); -#endif - - subTest("PKIX_List Error Handling"); - testErrorHandling(); - - subTest("PKIX_List_Destroy"); - testDestroy(list); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Lists"); - - return (0); - -} |