Add a test for the info callback
[openssl.git] / test / stack_test.c
index c0ec46a6bde3d79cd4cb108bdabf276eacb1d9d7..680f68d60e69b51d3a301adf6a5f60d96f2b0e4e 100644 (file)
@@ -50,7 +50,7 @@ static int int_compare(const int *const *a, const int *const *b)
     return 0;
 }
 
-static int test_int_stack(void)
+static int test_int_stack(int reserve)
 {
     static int v[] = { 1, 2, -4, 16, 999, 1, -173, 1, 9 };
     static int notpresent = -1;
@@ -84,6 +84,10 @@ static int test_int_stack(void)
     int i;
     int testresult = 0;
 
+    if (!TEST_ptr(s)
+        || (reserve > 0 && !TEST_true(sk_sint_reserve(s, 5 * reserve))))
+        goto end;
+
     /* Check push and num */
     for (i = 0; i < n; i++) {
         if (!TEST_int_eq(sk_sint_num(s), i)) {
@@ -167,7 +171,7 @@ static int uchar_compare(const unsigned char *const *a,
     return **a - (signed int)**b;
 }
 
-static int test_uchar_stack(void)
+static int test_uchar_stack(int reserve)
 {
     static const unsigned char v[] = { 1, 3, 7, 5, 255, 0 };
     const int n = OSSL_NELEM(v);
@@ -175,6 +179,10 @@ static int test_uchar_stack(void)
     int i;
     int testresult = 0;
 
+    if (!TEST_ptr(s)
+        || (reserve > 0 && !TEST_true(sk_uchar_reserve(s, 5 * reserve))))
+        goto end;
+
     /* unshift and num */
     for (i = 0; i < n; i++) {
         if (!TEST_int_eq(sk_uchar_num(s), i)) {
@@ -364,8 +372,8 @@ end:
 
 int setup_tests(void)
 {
-    ADD_TEST(test_int_stack);
-    ADD_TEST(test_uchar_stack);
+    ADD_ALL_TESTS(test_int_stack, 4);
+    ADD_ALL_TESTS(test_uchar_stack, 4);
     ADD_TEST(test_SS_stack);
     ADD_TEST(test_SU_stack);
     return 1;