aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-06-11 18:29:49 +0200
committerMartin Willi <martin@revosec.ch>2013-06-21 10:53:22 +0200
commit44886a06671c7d74a503e5e8a2fcaf7ffa72a985 (patch)
tree0d68d192719498318c406b42ca23e3ff1316c268 /src
parent52bff138485398af31afb81496a2fb58004dfb27 (diff)
downloadstrongswan-44886a06671c7d74a503e5e8a2fcaf7ffa72a985.tar.bz2
strongswan-44886a06671c7d74a503e5e8a2fcaf7ffa72a985.tar.xz
unit-tests: don't use ck_assert() to test a cleared chunk, as it allocates data
The new allocation might be in the freed area, affecting the test result.
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/tests/test_chunk.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libstrongswan/tests/test_chunk.c b/src/libstrongswan/tests/test_chunk.c
index 5fa1c0b1d..4f60dab8a 100644
--- a/src/libstrongswan/tests/test_chunk.c
+++ b/src/libstrongswan/tests/test_chunk.c
@@ -97,6 +97,7 @@ START_TEST(test_chunk_clear)
chunk_t chunk;
u_char *ptr;
int i;
+ bool cleared = TRUE;
chunk = chunk_empty;
chunk_clear(&chunk);
@@ -109,12 +110,18 @@ START_TEST(test_chunk_clear)
chunk.ptr[i] = i;
}
chunk_clear(&chunk);
- assert_chunk_empty(chunk);
- /* check memory area of freed chunk */
+ /* check memory area of freed chunk. We can't use ck_assert() for this
+ * test directly, as it might allocate data at the freed area. */
for (i = 0; i < 64; i++)
{
- ck_assert(ptr[i] == 0 || ptr[i] != i);
+ if (ptr[i] != 0 && ptr[i] == i)
+ {
+ cleared = FALSE;
+ break;
+ }
}
+ assert_chunk_empty(chunk);
+ ck_assert(cleared);
}
END_TEST