Compare commits
2 Commits
3cfb7cc507
...
c90c597ee3
Author | SHA1 | Date |
---|---|---|
Giedrius Statkevičius | c90c597ee3 | |
Jakov Smolic | 5fa5c3e2d0 |
|
@ -354,3 +354,5 @@ option('oss-fuzz', type : 'boolean', value : 'false',
|
||||||
description : 'build against oss-fuzz')
|
description : 'build against oss-fuzz')
|
||||||
option('llvm-fuzz', type : 'boolean', value : 'false',
|
option('llvm-fuzz', type : 'boolean', value : 'false',
|
||||||
description : 'build against LLVM libFuzzer')
|
description : 'build against LLVM libFuzzer')
|
||||||
|
option('kernel-install', type: 'boolean', value: 'true',
|
||||||
|
description : 'include kernel-install feature')
|
||||||
|
|
|
@ -124,10 +124,13 @@ static int verify_socket(Unit *u) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int verify_executable(Unit *u, ExecCommand *exec) {
|
int verify_executable(Unit *u, const ExecCommand *exec) {
|
||||||
if (!exec)
|
if (!exec)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (exec->flags & EXEC_COMMAND_IGNORE_FAILURE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (access(exec->path, X_OK) < 0)
|
if (access(exec->path, X_OK) < 0)
|
||||||
return log_unit_error_errno(u, errno, "Command %s is not executable: %m", exec->path);
|
return log_unit_error_errno(u, errno, "Command %s is not executable: %m", exec->path);
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "execute.h"
|
||||||
#include "path-lookup.h"
|
#include "path-lookup.h"
|
||||||
|
|
||||||
|
int verify_executable(Unit *u, const ExecCommand *exec);
|
||||||
int verify_units(char **filenames, UnitFileScope scope, bool check_man, bool run_generators);
|
int verify_units(char **filenames, UnitFileScope scope, bool check_man, bool run_generators);
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||||
|
#include "analyze-verify.h"
|
||||||
|
#include "tests.h"
|
||||||
|
|
||||||
|
static void test_verify_nonexistent(void) {
|
||||||
|
/* Negative cases */
|
||||||
|
assert_se(verify_executable(NULL, &(ExecCommand) {.flags = EXEC_COMMAND_IGNORE_FAILURE, .path = (char*) "/non/existent"}) == 0);
|
||||||
|
assert_se(verify_executable(NULL, &(ExecCommand) {.path = (char*) "/non/existent"}) < 0);
|
||||||
|
|
||||||
|
/* Ordinary cases */
|
||||||
|
assert_se(verify_executable(NULL, &(ExecCommand) {.path = (char*) "/bin/echo"}) == 0);
|
||||||
|
assert_se(verify_executable(NULL, &(ExecCommand) {.flags = EXEC_COMMAND_IGNORE_FAILURE, .path = (char*) "/bin/echo"}) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
test_setup_logging(LOG_DEBUG);
|
||||||
|
|
||||||
|
test_verify_nonexistent();
|
||||||
|
}
|
|
@ -1,14 +1,18 @@
|
||||||
# SPDX-License-Identifier: LGPL-2.1+
|
# SPDX-License-Identifier: LGPL-2.1+
|
||||||
|
|
||||||
install_data('kernel-install',
|
want_kernel_install = get_option('kernel-install')
|
||||||
install_mode : 'rwxr-xr-x',
|
|
||||||
install_dir : bindir)
|
|
||||||
|
|
||||||
install_data('00-entry-directory.install',
|
if want_kernel_install
|
||||||
'50-depmod.install',
|
install_data('kernel-install',
|
||||||
'90-loaderentry.install',
|
install_mode : 'rwxr-xr-x',
|
||||||
install_mode : 'rwxr-xr-x',
|
install_dir : bindir)
|
||||||
install_dir : kernelinstalldir)
|
|
||||||
|
|
||||||
meson.add_install_script('sh', '-c',
|
install_data('00-entry-directory.install',
|
||||||
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
|
'50-depmod.install',
|
||||||
|
'90-loaderentry.install',
|
||||||
|
install_mode : 'rwxr-xr-x',
|
||||||
|
install_dir : kernelinstalldir)
|
||||||
|
|
||||||
|
meson.add_install_script('sh', '-c',
|
||||||
|
mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
|
||||||
|
endif
|
||||||
|
|
|
@ -1127,6 +1127,10 @@ tests += [
|
||||||
[],
|
[],
|
||||||
[]],
|
[]],
|
||||||
|
|
||||||
|
[['src/analyze/test-verify.c', 'src/analyze/analyze-verify.c', 'src/analyze/analyze-verify.h'],
|
||||||
|
[libcore, libshared],
|
||||||
|
[]],
|
||||||
|
|
||||||
[['src/login/test-inhibit.c'],
|
[['src/login/test-inhibit.c'],
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
|
|
Loading…
Reference in New Issue