X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-util.c;h=de6a2a0d89da39771e248a8969f7b14779c0ab84;hb=455971c1493fc6dc3125d235cf4ea6102cac626d;hp=f8e42f3a550de6cd01ac2c0507100edd215b8ae6;hpb=eee846339d2f76f568c62b3725bf75bcee728115;p=elogind.git diff --git a/src/test/test-util.c b/src/test/test-util.c index f8e42f3a5..de6a2a0d8 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -131,6 +131,19 @@ static void test_container_of(void) { v1) == &myval); } +static void test_alloca(void) { + static const uint8_t zero[997] = { }; + char *t; + + t = alloca_align(17, 512); + assert_se(!((uintptr_t)t & 0xff)); + memzero(t, 17); + + t = alloca0_align(997, 1024); + assert_se(!((uintptr_t)t & 0x1ff)); + assert_se(!memcmp(t, zero, 997)); +} + static void test_first_word(void) { assert_se(first_word("Hello", "")); assert_se(first_word("Hello", "Hello")); @@ -218,7 +231,7 @@ static void test_parse_pid(void) { pid = 65; /* pid is left unchanged on ERANGE. Set to known arbitrary value. */ r = parse_pid("0xFFFFFFFFFFFFFFFFF", &pid); - assert(r == -ERANGE); + assert_se(r == -ERANGE); assert_se(pid == 65); } @@ -421,7 +434,7 @@ static void test_foreach_word_quoted(void) { assert_se(strneq(expected[i++], word, l)); printf("<%s>\n", t); } - assert(isempty(state)); + assert_se(isempty(state)); } static void test_default_term_for_tty(void) { @@ -453,26 +466,26 @@ static void test_memdup_multiply(void) { } static void test_hostname_is_valid(void) { - assert(hostname_is_valid("foobar")); - assert(hostname_is_valid("foobar.com")); - assert(!hostname_is_valid("fööbar")); - assert(!hostname_is_valid("")); - assert(!hostname_is_valid(".")); - assert(!hostname_is_valid("..")); - assert(!hostname_is_valid("foobar.")); - assert(!hostname_is_valid(".foobar")); - assert(!hostname_is_valid("foo..bar")); - assert(!hostname_is_valid("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")); + assert_se(hostname_is_valid("foobar")); + assert_se(hostname_is_valid("foobar.com")); + assert_se(!hostname_is_valid("fööbar")); + assert_se(!hostname_is_valid("")); + assert_se(!hostname_is_valid(".")); + assert_se(!hostname_is_valid("..")); + assert_se(!hostname_is_valid("foobar.")); + assert_se(!hostname_is_valid(".foobar")); + assert_se(!hostname_is_valid("foo..bar")); + assert_se(!hostname_is_valid("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")); } static void test_u64log2(void) { - assert(u64log2(0) == 0); - assert(u64log2(8) == 3); - assert(u64log2(9) == 3); - assert(u64log2(15) == 3); - assert(u64log2(16) == 4); - assert(u64log2(1024*1024) == 20); - assert(u64log2(1024*1024+5) == 20); + assert_se(u64log2(0) == 0); + assert_se(u64log2(8) == 3); + assert_se(u64log2(9) == 3); + assert_se(u64log2(15) == 3); + assert_se(u64log2(16) == 4); + assert_se(u64log2(1024*1024) == 20); + assert_se(u64log2(1024*1024+5) == 20); } static void test_get_process_comm(void) { @@ -519,7 +532,7 @@ static void test_get_process_comm(void) { log_info("pid1 gid: "GID_FMT, g); assert_se(g == 0); - assert(get_ctty_devnr(1, &h) == -ENOENT); + assert_se(get_ctty_devnr(1, &h) == -ENOENT); getenv_for_pid(1, "PATH", &i); log_info("pid1 $PATH: '%s'", strna(i)); @@ -531,7 +544,7 @@ static void test_protect_errno(void) { PROTECT_ERRNO; errno = 11; } - assert(errno == 12); + assert_se(errno == 12); } static void test_parse_size(void) { @@ -716,12 +729,12 @@ static void test_writing_tmpfile(void) { printf("tmpfile: %s", name); r = writev(fd, iov, 3); - assert(r >= 0); + assert_se(r >= 0); r = read_full_file(name, &contents, &size); - assert(r == 0); + assert_se(r == 0); printf("contents: %s", contents); - assert(streq(contents, "abc\n" ALPHANUMERICAL "\n")); + assert_se(streq(contents, "abc\n" ALPHANUMERICAL "\n")); unlink(name); } @@ -1272,6 +1285,7 @@ int main(int argc, char *argv[]) { test_align_power2(); test_max(); test_container_of(); + test_alloca(); test_first_word(); test_close_many(); test_parse_boolean();