assert_se(!streq_ptr("abc", "cdef"));
}
+static void test_align_power2(void) {
+ unsigned long i, p2;
+
+ assert_se(ALIGN_POWER2(0) == 0);
+ assert_se(ALIGN_POWER2(1) == 1);
+ assert_se(ALIGN_POWER2(2) == 2);
+ assert_se(ALIGN_POWER2(3) == 4);
+ assert_se(ALIGN_POWER2(12) == 16);
+
+ assert_se(ALIGN_POWER2(ULONG_MAX) == 0);
+ assert_se(ALIGN_POWER2(ULONG_MAX - 1) == 0);
+ assert_se(ALIGN_POWER2(ULONG_MAX - 1024) == 0);
+ assert_se(ALIGN_POWER2(ULONG_MAX / 2) == ULONG_MAX / 2 + 1);
+ assert_se(ALIGN_POWER2(ULONG_MAX + 1) == 0);
+
+ for (i = 1; i < 131071; ++i) {
+ for (p2 = 1; p2 < i; p2 <<= 1)
+ /* empty */ ;
+
+ assert_se(ALIGN_POWER2(i) == p2);
+ }
+
+ for (i = ULONG_MAX - 1024; i < ULONG_MAX; ++i) {
+ for (p2 = 1; p2 && p2 < i; p2 <<= 1)
+ /* empty */ ;
+
+ assert_se(ALIGN_POWER2(i) == p2);
+ }
+}
+
static void test_first_word(void) {
assert_se(first_word("Hello", ""));
assert_se(first_word("Hello", "Hello"));
assert_se(fcntl(fds[1], F_GETFD) == -1);
assert_se(fcntl(fds[2], F_GETFD) >= 0);
- close_nointr_nofail(fds[2]);
+ safe_close(fds[2]);
unlink(name0);
unlink(name1);
log_info("pid1 cmdline truncated: '%s'", d);
assert_se(get_parent_of_pid(1, &e) >= 0);
- log_info("pid1 ppid: '%llu'", (unsigned long long) e);
+ log_info("pid1 ppid: "PID_FMT, e);
assert_se(e == 0);
assert_se(is_kernel_thread(1) == 0);
log_info("pid1 exe: '%s'", strna(f));
assert_se(get_process_uid(1, &u) == 0);
- log_info("pid1 uid: '%llu'", (unsigned long long) u);
+ log_info("pid1 uid: "UID_FMT, u);
assert_se(u == 0);
assert_se(get_process_gid(1, &g) == 0);
- log_info("pid1 gid: '%llu'", (unsigned long long) g);
+ log_info("pid1 gid: "GID_FMT, g);
assert_se(g == 0);
assert(get_ctty_devnr(1, &h) == -ENOENT);
assert(r == 0);
printf("contents: %s", contents);
assert(streq(contents, "abc\n" ALPHANUMERICAL "\n"));
+
+ unlink(name);
}
static void test_hexdump(void) {
assert_se(log2i(INT_MAX) == sizeof(int)*8-2);
}
+static void test_foreach_string(void) {
+ const char * const t[] = {
+ "foo",
+ "bar",
+ "waldo",
+ NULL
+ };
+ const char *x;
+ unsigned i = 0;
+
+ FOREACH_STRING(x, "foo", "bar", "waldo")
+ assert_se(streq_ptr(t[i++], x));
+
+ assert_se(i == 3);
+
+ FOREACH_STRING(x, "zzz")
+ assert_se(streq(x, "zzz"));
+}
+
int main(int argc, char *argv[]) {
log_parse_environment();
log_open();
test_streq_ptr();
+ test_align_power2();
test_first_word();
test_close_many();
test_parse_boolean();
test_writing_tmpfile();
test_hexdump();
test_log2i();
+ test_foreach_string();
return 0;
}