test-util.c revision 4968105790c65af58d4ab42bffa2a4bedc0be8ee
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen This file is part of systemd.
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen Copyright 2010 Lennart Poettering
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen Copyright 2013 Thomas H.P. Andersen
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen systemd is free software; you can redistribute it and/or modify it
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen under the terms of the GNU Lesser General Public License as published by
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen the Free Software Foundation; either version 2.1 of the License, or
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen (at your option) any later version.
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen systemd is distributed in the hope that it will be useful, but
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen WITHOUT ANY WARRANTY; without even the implied warranty of
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen Lesser General Public License for more details.
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen You should have received a copy of the GNU Lesser General Public License
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen along with systemd; If not, see <http://www.gnu.org/licenses/>.
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersenstatic void test_streq_ptr(void) {
static void test_align_power2(void) {
unsigned long i, p2;
static void test_max(void) {
} val1 = {
static void test_container_of(void) {
struct mytype {
struct mytype,
struct mytype,
static void test_alloca(void) {
static void test_div_round_up(void) {
int div;
div = 0;
static void test_first_word(void) {
static void test_close_many(void) {
static void test_parse_boolean(void) {
static void test_parse_pid(void) {
assert_se(r == 0);
assert_se(r == 0);
static void test_parse_uid(void) {
assert_se(r == 0);
static void test_safe_atolli(void) {
assert_se(r == 0);
static void test_safe_atod(void) {
assert_se(r == 0);
errno = 0;
assert_se(r == 0);
errno = 0;
assert_se(r == 0);
errno = 0;
static void test_strappend(void) {
static void test_strstrip(void) {
static void test_delete_chars(void) {
static void test_in_charset(void) {
static void test_hexchar(void) {
static void test_unhexchar(void) {
static void test_octchar(void) {
static void test_unoctchar(void) {
static void test_decchar(void) {
static void test_undecchar(void) {
static void test_cescape(void) {
static void test_cunescape(void) {
static void test_foreach_word(void) {
size_t l;
const char * const expected[] = {
size_t l;
static void test_foreach_word_quoted(void) {
static void test_default_term_for_tty(void) {
static void test_memdup_multiply(void) {
int *dup;
static void test_hostname_is_valid(void) {
assert_se(!hostname_is_valid("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
static void test_u64log2(void) {
static void test_get_process_comm(void) {
_cleanup_free_ char *a = NULL, *c = NULL, *d = NULL, *f = NULL, *i = NULL, *cwd = NULL, *root = NULL;
pid_t e;
uid_t u;
gid_t g;
dev_t h;
assert_se(e == 0);
assert_se(u == 0);
assert_se(g == 0);
static void test_protect_errno(void) {
static void test_parse_size(void) {
static void test_config_parse_iec_off(void) {
assert_se(config_parse_iec_off(NULL, "/this/file", 11, "Section", 22, "Size", 0, "4M", &offset, NULL) == 0);
assert_se(config_parse_iec_off(NULL, "/this/file", 11, "Section", 22, "Size", 0, "4.5M", &offset, NULL) == 0);
static void test_strextend(void) {
static void test_strrep(void) {
static void test_split_pair(void) {
free(a);
free(b);
free(a);
free(b);
static void test_fstab_node_to_udev_node(void) {
puts(n);
free(n);
puts(n);
free(n);
puts(n);
free(n);
puts(n);
free(n);
puts(n);
free(n);
puts(n);
free(n);
static void test_get_files_in_directory(void) {
static void test_in_set(void) {
static void test_writing_tmpfile(void) {
int fd, r;
assert_se(r >= 0);
assert_se(r == 0);
static void test_hexdump(void) {
static void test_log2i(void) {
static void test_foreach_string(void) {
static void test_filename_is_valid(void) {
static void test_string_has_cc(void) {
static void test_ascii_strlower(void) {
static void test_files_same(void) {
static void test_is_valid_documentation_url(void) {
static void test_file_in_same_dir(void) {
free(t);
free(t);
free(t);
free(t);
free(t);
static void test_endswith(void) {
static void test_close_nointr(void) {
int fd;
static void test_unlink_noerrno(void) {
int fd;
static void test_readlink_and_make_absolute(void) {
char *r = NULL;
free(r);
free(r);
static void test_read_one_char(void) {
bool need_nl;
int fd;
static void test_ignore_signals(void) {
static void test_strshorten(void) {
static void test_strappenda(void) {
char *actual;
static void test_is_symlink(void) {
static void test_pid_is_unwaited(void) {
if (pid == 0) {
int status;
static void test_pid_is_alive(void) {
if (pid == 0) {
int status;
static void test_search_and_fopen(void) {
FILE *f;
assert_se(r >= 0);
fclose(f);
assert_se(r >= 0);
fclose(f);
assert_se(r >= 0);
fclose(f);
assert_se(r < 0);
assert_se(r < 0);
assert_se(r == 0);
assert_se(r < 0);
static void test_search_and_fopen_nulstr(void) {
FILE *f;
assert_se(r >= 0);
fclose(f);
assert_se(r >= 0);
fclose(f);
assert_se(r < 0);
assert_se(r < 0);
assert_se(r == 0);
assert_se(r < 0);
static void test_glob_exists(void) {
assert_se(r == 0);
assert_se(r == 0);
static void test_execute_directory(void) {
assert_se(write_string_file(name, "#!/bin/sh\necho 'Executing '$0\ntouch /tmp/test-execute_directory/it_works") == 0);
assert_se(write_string_file(name2, "#!/bin/sh\necho 'Executing '$0\ntouch /tmp/test-execute_directory/it_works2") == 0);
static void test_unquote_first_word(void) {
const char *p, *original;
free(t);
free(t);
assert_se(!t);
free(t);
free(t);
assert_se(!t);
free(t);
free(t);
free(t);
static void test_unquote_many_words(void) {
const char *p, *original;
free(a);
free(b);
free(c);
free(a);
free(b);
free(a);
free(a);
static void test_parse_proc_cmdline(void) {
static void test_raw_clone(void) {
if (pid == 0) {
int status;
static void test_same_fd(void) {
static void test_uid_ptr(void) {
log_open();
test_max();
test_alloca();
test_hexchar();
test_octchar();
test_decchar();
test_cescape();
test_u64log2();
test_strrep();
test_in_set();
test_hexdump();
test_log2i();
test_same_fd();
test_uid_ptr();