#include "errno-util.h"
#include "fd-util.h"
#include "format-util.h"
+#include "fs-util.h"
#include "string-util.h"
#include "tests.h"
#include "tmpfile-util.h"
#include "user-util.h"
TEST_RET(add_acls_for_user) {
- char fn[] = "/tmp/test-empty.XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-empty.XXXXXX";
_cleanup_close_ int fd = -EBADF;
char *cmd;
uid_t uid;
cmd = strjoina("getfacl -p ", fn);
assert_se(system(cmd) == 0);
- (void) unlink(fn);
return 0;
}
TEST(copy_file) {
_cleanup_free_ char *buf = NULL;
- char fn[] = "/tmp/test-copy_file.XXXXXX";
- char fn_copy[] = "/tmp/test-copy_file.XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-copy_file.XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn_copy[] = "/tmp/test-copy_file.XXXXXX";
size_t sz = 0;
int fd;
assert_se(read_full_file(fn_copy, &buf, &sz) == 0);
assert_se(streq(buf, "foo bar bar bar foo\n"));
assert_se(sz == 20);
-
- unlink(fn);
- unlink(fn_copy);
}
static bool read_file_at_and_streq(int dir_fd, const char *path, const char *expected) {
}
TEST(copy_file_fd) {
- char in_fn[] = "/tmp/test-copy-file-fd-XXXXXX";
- char out_fn[] = "/tmp/test-copy-file-fd-XXXXXX";
+ _cleanup_(unlink_tempfilep) char in_fn[] = "/tmp/test-copy-file-fd-XXXXXX";
+ _cleanup_(unlink_tempfilep) char out_fn[] = "/tmp/test-copy-file-fd-XXXXXX";
_cleanup_close_ int in_fd = -EBADF, out_fd = -EBADF;
const char *text = "boohoo\nfoo\n\tbar\n";
char buf[64] = {};
assert_se(read(out_fd, buf, sizeof buf) == (ssize_t) strlen(text));
assert_se(streq(buf, text));
-
- unlink(in_fn);
- unlink(out_fn);
}
TEST(copy_tree) {
}
static void test_copy_bytes_regular_file_one(const char *src, bool try_reflink, uint64_t max_bytes) {
- char fn2[] = "/tmp/test-copy-file-XXXXXX";
- char fn3[] = "/tmp/test-copy-file-XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn2[] = "/tmp/test-copy-file-XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn3[] = "/tmp/test-copy-file-XXXXXX";
_cleanup_close_ int fd = -EBADF, fd2 = -EBADF, fd3 = -EBADF;
int r;
struct stat buf, buf2, buf3;
assert_se(buf3.st_size == buf2.st_size);
else
assert_se((uint64_t) buf3.st_size == max_bytes);
-
- unlink(fn2);
- unlink(fn3);
}
TEST(copy_bytes_regular_file) {
}
TEST_RET(copy_holes) {
- char fn[] = "/var/tmp/test-copy-hole-fd-XXXXXX";
- char fn_copy[] = "/var/tmp/test-copy-hole-fd-XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn[] = "/var/tmp/test-copy-hole-fd-XXXXXX";
+ _cleanup_(unlink_tempfilep) char fn_copy[] = "/var/tmp/test-copy-hole-fd-XXXXXX";
struct stat stat;
off_t blksz;
int r, fd, fd_copy;
close(fd);
close(fd_copy);
- unlink(fn);
- unlink(fn_copy);
-
return 0;
}
TEST(close_many) {
int fds[3];
- char name0[] = "/tmp/test-close-many.XXXXXX";
- char name1[] = "/tmp/test-close-many.XXXXXX";
- char name2[] = "/tmp/test-close-many.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name0[] = "/tmp/test-close-many.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name1[] = "/tmp/test-close-many.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name2[] = "/tmp/test-close-many.XXXXXX";
fds[0] = mkostemp_safe(name0);
fds[1] = mkostemp_safe(name1);
assert_se(fcntl(fds[2], F_GETFD) >= 0);
safe_close(fds[2]);
-
- unlink(name0);
- unlink(name1);
- unlink(name2);
}
TEST(close_nointr) {
- char name[] = "/tmp/test-test-close_nointr.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-test-close_nointr.XXXXXX";
int fd;
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(close_nointr(fd) >= 0);
assert_se(close_nointr(fd) < 0);
-
- unlink(name);
}
TEST(same_fd) {
#include "fd-util.h"
#include "fdset.h"
+#include "fs-util.h"
#include "macro.h"
#include "tests.h"
#include "tmpfile-util.h"
TEST(fdset_new_fill) {
int fd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_new_fill.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_new_fill.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(fdset_new_fill(&fdset) >= 0);
assert_se(fdset_contains(fdset, fd));
-
- unlink(name);
}
TEST(fdset_put_dup) {
_cleanup_close_ int fd = -EBADF;
int copyfd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_put_dup.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_put_dup.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(copyfd >= 0 && copyfd != fd);
assert_se(fdset_contains(fdset, copyfd));
assert_se(!fdset_contains(fdset, fd));
-
- unlink(name);
}
TEST(fdset_cloexec) {
int fd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
int flags = -1;
- char name[] = "/tmp/test-fdset_cloexec.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_cloexec.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
flags = fcntl(fd, F_GETFD);
assert_se(flags >= 0);
assert_se(flags & FD_CLOEXEC);
-
- unlink(name);
}
TEST(fdset_close_others) {
int copyfd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
int flags = -1;
- char name[] = "/tmp/test-fdset_close_others.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_close_others.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(flags < 0);
flags = fcntl(copyfd, F_GETFD);
assert_se(flags >= 0);
-
- unlink(name);
}
TEST(fdset_remove) {
_cleanup_close_ int fd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_remove.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_remove.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(!fdset_contains(fdset, fd));
assert_se(fcntl(fd, F_GETFD) >= 0);
-
- unlink(name);
}
TEST(fdset_iterate) {
int fd = -EBADF;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_iterate.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_iterate.XXXXXX";
int c = 0;
int a;
assert_se(a == fd);
}
assert_se(c == 1);
-
- unlink(name);
}
TEST(fdset_isempty) {
int fd;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_isempty.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_isempty.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(fdset_isempty(fdset));
assert_se(fdset_put(fdset, fd) >= 0);
assert_se(!fdset_isempty(fdset));
-
- unlink(name);
}
TEST(fdset_steal_first) {
int fd;
_cleanup_fdset_free_ FDSet *fdset = NULL;
- char name[] = "/tmp/test-fdset_steal_first.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-fdset_steal_first.XXXXXX";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(fdset_steal_first(fdset) == fd);
assert_se(fdset_steal_first(fdset) < 0);
assert_se(fdset_put(fdset, fd) >= 0);
-
- unlink(name);
}
TEST(fdset_new_array) {
#include "alloc-util.h"
#include "fileio.h"
+#include "fs-util.h"
#include "hostname-setup.h"
#include "string-util.h"
#include "tests.h"
#include "tmpfile-util.h"
TEST(read_etc_hostname) {
- char path[] = "/tmp/hostname.XXXXXX";
+ _cleanup_(unlink_tempfilep) char path[] = "/tmp/hostname.XXXXXX";
char *hostname;
int fd;
/* nonexisting file */
assert_se(read_etc_hostname("/non/existing", &hostname) == -ENOENT);
assert_se(hostname == (char*) 0x1234); /* does not touch argument on error */
-
- unlink(path);
}
TEST(hostname_setup) {
TEST(files_same) {
_cleanup_close_ int fd = -EBADF;
- char name[] = "/tmp/test-files_same.XXXXXX";
- char name_alias[] = "/tmp/test-files_same.alias";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-files_same.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name_alias[] = "/tmp/test-files_same.alias";
fd = mkostemp_safe(name);
assert_se(fd >= 0);
assert_se(files_same(name, name, AT_SYMLINK_NOFOLLOW));
assert_se(files_same(name, name_alias, 0));
assert_se(!files_same(name, name_alias, AT_SYMLINK_NOFOLLOW));
-
- unlink(name);
- unlink(name_alias);
}
TEST(is_symlink) {
- char name[] = "/tmp/test-is_symlink.XXXXXX";
- char name_link[] = "/tmp/test-is_symlink.link";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-is_symlink.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name_link[] = "/tmp/test-is_symlink.link";
_cleanup_close_ int fd = -EBADF;
fd = mkostemp_safe(name);
assert_se(is_symlink(name) == 0);
assert_se(is_symlink(name_link) == 1);
assert_se(is_symlink("/a/file/which/does/not/exist/i/guess") < 0);
-
- unlink(name);
- unlink(name_link);
}
TEST(path_is_fs_type) {
#include "alloc-util.h"
#include "fd-util.h"
+#include "fs-util.h"
#include "macro.h"
#include "path-util.h"
#include "strv.h"
_cleanup_fclose_ FILE *file = NULL;
char r;
bool need_nl;
- char name[] = "/tmp/test-read_one_char.XXXXXX";
+ _cleanup_(unlink_tempfilep) char name[] = "/tmp/test-read_one_char.XXXXXX";
assert_se(fmkostemp_safe(name, "r+", &file) == 0);
assert_se(fputs("\n", file) >= 0);
rewind(file);
assert_se(read_one_char(file, &r, 1000000, &need_nl) < 0);
-
- assert_se(unlink(name) >= 0);
}
TEST(getttyname_malloc) {