test-tar-extract: add a binary wrapping tar_x() for manual testing
We'll probably want to turn this into a test in the integration tests.
This commit is contained in:
committed by
Lennart Poettering
parent
53ff5b361f
commit
1929f43199
@@ -93,6 +93,10 @@ executables += [
|
||||
'name' : 'systemd-import-generator',
|
||||
'sources' : files('import-generator.c'),
|
||||
},
|
||||
test_template + {
|
||||
'sources' : files('test-tar-extract.c'),
|
||||
'type' : 'manual',
|
||||
},
|
||||
test_template + {
|
||||
'sources' : files('test-qcow2.c'),
|
||||
'objects' : ['systemd-importd'],
|
||||
@@ -100,6 +104,7 @@ executables += [
|
||||
'conditions' : ['HAVE_ZLIB'],
|
||||
'type' : 'manual',
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
install_data('org.freedesktop.import1.conf',
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "fd-util.h"
|
||||
#include "libarchive-util.h"
|
||||
#include "main-func.h"
|
||||
#include "tar-util.h"
|
||||
#include "tests.h"
|
||||
|
||||
static int run(int argc, char **argv) {
|
||||
int r;
|
||||
|
||||
test_setup_logging(LOG_DEBUG);
|
||||
|
||||
if (argc != 3)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Need two arguments exactly: <input> <output>");
|
||||
|
||||
r = dlopen_libarchive();
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
_cleanup_close_ int input_fd = open(argv[1], O_RDONLY | O_CLOEXEC);
|
||||
if (input_fd < 0)
|
||||
return log_error_errno(input_fd, "Cannot open %s: %m", argv[1]);
|
||||
|
||||
_cleanup_close_ int output_fd = open(argv[2], O_DIRECTORY | O_CLOEXEC);
|
||||
if (output_fd < 0)
|
||||
return log_error_errno(output_fd, "Cannot open %s: %m", argv[2]);
|
||||
|
||||
r = tar_x(input_fd, output_fd, /* flags= */ TAR_SELINUX);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "tar_x failed: %m");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_MAIN_FUNCTION(run);
|
||||
Reference in New Issue
Block a user