summaryrefslogtreecommitdiffstats
path: root/path_utils/path_utils_ut.c
diff options
context:
space:
mode:
Diffstat (limited to 'path_utils/path_utils_ut.c')
-rw-r--r--path_utils/path_utils_ut.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/path_utils/path_utils_ut.c b/path_utils/path_utils_ut.c
index 34462cf..aadd89b 100644
--- a/path_utils/path_utils_ut.c
+++ b/path_utils/path_utils_ut.c
@@ -252,24 +252,35 @@ START_TEST(test_path_concat_neg)
char small[3];
char small2[5];
char small3[7];
- char p2[9];
+ char p2[10];
/* these two test different conditions */
/* Test if head is longer than the buffer */
fail_unless(path_concat(small, 3, "/foo", "bar") == ENOBUFS);
+ /* On ENOBUFS, path should be empty */
+ fail_unless_str_equal(small, "");
/* Test if head is the same length as the buffer */
fail_unless(path_concat(small2, 5, "/foo", "bar") == ENOBUFS);
+ /* On ENOBUFS, path should be empty */
+ fail_unless_str_equal(small2, "");
/* Test if head+tail is the longer than the buffer */
fail_unless(path_concat(small3, 7, "/foo", "bar") == ENOBUFS);
+ /* On ENOBUFS, path should be empty */
+ fail_unless_str_equal(small3, "");
/* off-by-one */
- p2[8] = 1; /* Check whether we've written too far */
+ /* Fill with garbage data for now */
+ memset(p2, 'Z', 9);
+ p2[9] = '\0';
+
fail_unless(path_concat(p2, 8, "/foo", "bar") == ENOBUFS);
- fail_unless(p2[8] == 1); /* This should be untouched */
- fail_unless_str_equal(p2, "/foo/ba");
+ /* Make sure we don't write past the end of the buffer */
+ fail_unless(p2[8] == 'Z', "Got [%d]", p2[8]);
+ /* On ENOBUFS, path should be empty */
+ fail_unless_str_equal(p2, "");
}
END_TEST