3 * CUnit - A Unit testing framework library for C.
4 * Copyright (C) 2001 Anil Kumar
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include "stringbuf_test.h"
26 #include "../lib/libcitadel.h"
29 static HashList *GetFilledHash(int n, int stepwidth)
35 TestHash = NewHash(1, Flathash);
37 for (i = 0; i < n; i+=stepwidth)
39 val = (int*) malloc(sizeof(int));
41 Put(TestHash, IKEY(i), val, NULL);
48 static void test_iterate_hash(HashList *testh, int forward, int stepwidth)
59 it = GetNewHashPos(testh, dir * stepwidth);
60 while (GetNextHashPos(testh, it, &len, &Key, &vTest) &&
63 printf("i: %d c: %d\n", i, *(int*) vTest);
69 static void TestHashlistIteratorForward (void)
73 H = GetFilledHash (10, 1);
75 test_iterate_hash(H, 1, 1);
78 test_iterate_hash(H, 0, 1);
81 test_iterate_hash(H, 1, 2);
84 test_iterate_hash(H, 0, 2);
87 test_iterate_hash(H, 1, 3);
90 test_iterate_hash(H, 0, 3);
96 Some samples from the original...
97 CU_ASSERT_EQUAL(10, 10);
98 CU_ASSERT_EQUAL(0, -0);
99 CU_ASSERT_EQUAL(-12, -12);
100 CU_ASSERT_NOT_EQUAL(10, 11);
101 CU_ASSERT_NOT_EQUAL(0, -1);
102 CU_ASSERT_NOT_EQUAL(-12, -11);
103 CU_ASSERT_PTR_EQUAL((void*)0x100, (void*)0x100);
104 CU_ASSERT_PTR_NOT_EQUAL((void*)0x100, (void*)0x101);
105 CU_ASSERT_PTR_NULL(NULL);
106 CU_ASSERT_PTR_NULL(0x0);
107 CU_ASSERT_PTR_NOT_NULL((void*)0x23);
108 CU_ASSERT_STRING_EQUAL(str1, str2);
109 CU_ASSERT_STRING_NOT_EQUAL(str1, str2);
110 CU_ASSERT_NSTRING_EQUAL(str1, str2, strlen(str1));
111 CU_ASSERT_NSTRING_EQUAL(str1, str1, strlen(str1));
112 CU_ASSERT_NSTRING_EQUAL(str1, str1, strlen(str1) + 1);
113 CU_ASSERT_NSTRING_NOT_EQUAL(str1, str2, 3);
114 CU_ASSERT_NSTRING_NOT_EQUAL(str1, str3, strlen(str1) + 1);
115 CU_ASSERT_DOUBLE_EQUAL(10, 10.0001, 0.0001);
116 CU_ASSERT_DOUBLE_EQUAL(10, 10.0001, -0.0001);
117 CU_ASSERT_DOUBLE_EQUAL(-10, -10.0001, 0.0001);
118 CU_ASSERT_DOUBLE_EQUAL(-10, -10.0001, -0.0001);
119 CU_ASSERT_DOUBLE_NOT_EQUAL(10, 10.001, 0.0001);
120 CU_ASSERT_DOUBLE_NOT_EQUAL(10, 10.001, -0.0001);
121 CU_ASSERT_DOUBLE_NOT_EQUAL(-10, -10.001, 0.0001);
122 CU_ASSERT_DOUBLE_NOT_EQUAL(-10, -10.001, -0.0001);
129 static void AddHashlistTests(void)
131 CU_pSuite pGroup = NULL;
132 CU_pTest pTest = NULL;
134 pGroup = CU_add_suite("TestStringBufSimpleAppenders", NULL, NULL);
135 pTest = CU_add_test(pGroup, "TestHashListIteratorForward", TestHashlistIteratorForward);
140 int main(int argc, char* argv[])
142 setvbuf(stdout, NULL, _IONBF, 0);
145 CU_BOOL Run = CU_FALSE ;
147 CU_set_output_filename("TestAutomated");
148 if (CU_initialize_registry()) {
149 printf("\nInitialize of test Registry failed.");
155 if (CU_TRUE == Run) {
156 //CU_console_run_tests();
157 printf("\nTests completed with return value %d.\n", CU_basic_run_tests());
159 ///CU_automated_run_tests();
162 CU_cleanup_registry();