test-util: add more tests

Improve test coverage a bit with tests for
  close_many
  strappend (to cover all ways through strnappend)
This commit is contained in:
Thomas Hindoe Paaboel Andersen 2013-03-07 22:45:22 +01:00
parent ab17a050b7
commit dbd73f9eb4
1 changed files with 43 additions and 0 deletions

View File

@ -21,6 +21,8 @@
***/
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include "util.h"
@ -43,6 +45,29 @@ static void test_first_word(void) {
assert_se(!first_word("Hellooo", "Hello"));
}
static void test_close_many(void) {
int fds[3];
char name0[] = "/tmp/test-close-many.XXXXXX";
char name1[] = "/tmp/test-close-many.XXXXXX";
char name2[] = "/tmp/test-close-many.XXXXXX";
fds[0] = mkstemp(name0);
fds[1] = mkstemp(name1);
fds[2] = mkstemp(name2);
close_many(fds, 2);
assert_se(fcntl(fds[0], F_GETFD) == -1);
assert_se(fcntl(fds[1], F_GETFD) == -1);
assert_se(fcntl(fds[2], F_GETFD) >= 0);
close_nointr_nofail(fds[2]);
unlink(name0);
unlink(name1);
unlink(name2);
}
static void test_parse_boolean(void) {
assert_se(parse_boolean("1") == 1);
assert_se(parse_boolean("y") == 1);
@ -129,6 +154,22 @@ static void test_safe_atod(void) {
assert_se(r == -EINVAL);
}
static void test_strappend(void) {
_cleanup_free_ char *t1, *t2, *t3, *t4;
t1 = strappend(NULL, NULL);
assert_se(streq(t1, ""));
t2 = strappend(NULL, "suf");
assert_se(streq(t2, "suf"));
t3 = strappend("pre", NULL);
assert_se(streq(t3, "pre"));
t4 = strappend("pre", "suf");
assert_se(streq(t4, "presuf"));
}
static void test_strstrip(void) {
char *r;
char input[] = " hello, waldo. ";
@ -287,11 +328,13 @@ static void test_bus_path_escape(void) {
int main(int argc, char *argv[]) {
test_streq_ptr();
test_first_word();
test_close_many();
test_parse_boolean();
test_parse_pid();
test_parse_uid();
test_safe_atolli();
test_safe_atod();
test_strappend();
test_strstrip();
test_delete_chars();
test_in_charset();