Projects
openEuler:24.03
systemd
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 6
View file
_service:tar_scm:systemd.spec
Changed
@@ -25,7 +25,7 @@ Name: systemd Url: https://www.freedesktop.org/wiki/Software/systemd Version: 255 -Release: 2 +Release: 5 License: MIT and LGPLv2+ and GPLv2+ Summary: System and Service Manager @@ -83,30 +83,31 @@ Patch9033: Don-t-set-AlternativeNamesPolicy-by-default.patch Patch9034: change-NTP-server-to-x.pool.ntp.org.patch Patch9035: keep-weight-consistent-with-the-set-value.patch -Patch9036: Systemd-Add-sw64-architecture.patch -Patch9037: core-update-arg_default_rlimit-in-bump_rlimit.patch -Patch9038: set-forwardtowall-no-to-avoid-emerg-log-shown-on-she.patch -Patch9039: core-cgroup-support-cpuset.patch -Patch9040: core-cgroup-support-freezer.patch -Patch9041: core-cgroup-support-memorysw.patch -Patch9042: systemd-core-Add-new-rules-for-lower-priority-events.patch -Patch9043: bugfix-also-stop-machine-when-a-machine-un.patch -Patch9044: print-the-process-status-to-console-when-shutdown.patch -Patch9045: Retry-to-handle-the-uevent-when-worker-is-terminated.patch -Patch9046: treat-underscore-as-valid-hostname-char.patch -Patch9047: process-util-log-more-information-when-runnin.patch -Patch9048: fuser-print-umount-message-to-reboot-umount-msg.patch -Patch9049: shutdown-reboot-when-recieve-crash-signal.patch -Patch9050: core-add-OptionalLog-to-allow-users-change-log-level.patch -Patch9051: core-cgroup-support-default-slice-for-all-uni.patch -Patch9052: core-add-invalidate-cgroup-config.patch -Patch9053: let-the-child-of-one-unit-don-t-affect-each-other.patch -Patch9054: support-disable-cgroup-controllers-we-don-t-want.patch -Patch9055: bugfix-for-cgroup-Swap-cgroup-v1-deletion-and-migration.patch -Patch9056: delete-journal-files-except-system.journal-when-jour.patch -Patch9057: set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch -Patch9058: add-a-new-switch-to-control-whether-udev-complies-wi.patch -Patch9059: journal-don-t-enable-systemd-journald-audit.socket.patch +Patch9036: core-update-arg_default_rlimit-in-bump_rlimit.patch +Patch9037: set-forwardtowall-no-to-avoid-emerg-log-shown-on-she.patch +Patch9038: core-cgroup-support-cpuset.patch +Patch9039: core-cgroup-support-freezer.patch +Patch9040: core-cgroup-support-memorysw.patch +Patch9041: systemd-core-Add-new-rules-for-lower-priority-events.patch +Patch9042: bugfix-also-stop-machine-when-a-machine-un.patch +Patch9043: print-the-process-status-to-console-when-shutdown.patch +Patch9044: Retry-to-handle-the-uevent-when-worker-is-terminated.patch +Patch9045: treat-underscore-as-valid-hostname-char.patch +Patch9046: process-util-log-more-information-when-runnin.patch +Patch9047: fuser-print-umount-message-to-reboot-umount-msg.patch +Patch9048: shutdown-reboot-when-recieve-crash-signal.patch +Patch9049: core-add-OptionalLog-to-allow-users-change-log-level.patch +Patch9050: core-cgroup-support-default-slice-for-all-uni.patch +Patch9051: core-add-invalidate-cgroup-config.patch +Patch9052: let-the-child-of-one-unit-don-t-affect-each-other.patch +Patch9053: support-disable-cgroup-controllers-we-don-t-want.patch +Patch9054: bugfix-for-cgroup-Swap-cgroup-v1-deletion-and-migration.patch +Patch9055: delete-journal-files-except-system.journal-when-jour.patch +Patch9056: set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch +Patch9057: add-a-new-switch-to-control-whether-udev-complies-wi.patch +Patch9058: journal-don-t-enable-systemd-journald-audit.socket.patch + +Patch9801: Systemd-Add-sw64-architecture.patch BuildRequires: gcc, gcc-c++ BuildRequires: libcap-devel, libmount-devel, pam-devel, libselinux-devel @@ -291,7 +292,14 @@ %package_help %prep -%autosetup -n %{name}-%{version} -p1 -Sgit +%autosetup -n %{name}-%{version} -p1 -Sgit -N +# DO NOT USE "%patch -R" TO REVERT A PATCH. If your patch is only used in +# specific scenarios or architectures, please put it after Patch9800 and +# use "%ifarch" to patch it after applying all other patches. +%autopatch -M 9800 +%ifarch sw_64 +%autopatch 9801 +%endif %build @@ -1627,6 +1635,16 @@ %{_libdir}/security/pam_systemd_loadkey.so %changelog +* Fri Mar 1 2024 huyubiao <huyubiao@huawei.com> - 255-5 +- move the architecture patches after Patch9800 (excluding Patch9800) + +* Thu Feb 29 2024 licunlong <licunlong@huawei.com> - 255-4 +- fix the compilation warning caused by misusing const + +* Wed Feb 28 2024 huyubiao <huyubiao@huawei.com> - 255-3 +- 1.add cpuset-cgv1 and freezer-cgv1 macros and enabled by default + 2.add missing sw_64 macro in prep phase + * Sun Feb 18 2024 huyubiao <huyubiao@huawei.com> - 255-2 - allow underscore in hostname
View file
_service:tar_scm:core-cgroup-support-cpuset.patch
Changed
@@ -5,8 +5,10 @@ This patch add support for cpuset subsystem. --- + meson.build | 2 + + meson_options.txt | 3 + src/basic/cgroup-util.c | 3 +- - src/basic/cgroup-util.h | 10 +- + src/basic/cgroup-util.h | 14 ++- src/basic/string-util.c | 42 +++++++ src/basic/string-util.h | 1 + src/core/cgroup.c | 112 ++++++++++++++---- @@ -26,8 +28,39 @@ src/shared/cpu-set-util.c | 1 + src/test/test-cgroup-mask.c | 5 +- .../fuzz-unit-file/directives-all.service | 5 + - 21 files changed, 329 insertions(+), 73 deletions(-) + 23 files changed, 338 insertions(+), 73 deletions(-) +diff --git a/meson.build b/meson.build +index 7419e2b..614013b 100644 +--- a/meson.build ++++ b/meson.build +@@ -1578,6 +1578,7 @@ foreach term : 'analyze', + 'binfmt', + 'compat-mutable-uid-boundaries', + 'coredump', ++ 'cpuset-cgv1', + 'efi', + 'environment-d', + 'firstboot', +@@ -2853,6 +2854,7 @@ foreach tuple : + 'fexecve', + 'standalone-binaries', get_option('standalone-binaries'), + 'coverage', get_option('b_coverage'), ++ 'cpuset-cgv1', + + + if tuple.length() >= 2 +diff --git a/meson_options.txt b/meson_options.txt +index e708745..5fda5d9 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -514,3 +514,6 @@ option('bpf-compiler', type : 'combo', choices : 'clang', 'gcc', + description: 'compiler used to build BPF programs') + option('bpf-framework', type : 'feature', deprecated : { 'true' : 'enabled', 'false' : 'disabled' }, + description: 'build BPF programs from source code in restricted C') ++ ++option('cpuset-cgv1', type : 'boolean', value : 'true', ++ description : 'enable cgroup v1 cpuset support') diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 18b16ec..abd1f91 100644 --- a/src/basic/cgroup-util.c @@ -48,7 +81,7 @@ CGROUP_CONTROLLER_BPF_DEVICES = "bpf-devices", CGROUP_CONTROLLER_BPF_FOREIGN = "bpf-foreign", diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h -index 6ab14c7..99be6b8 100644 +index 6ab14c7..dd3df28 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -22,12 +22,13 @@ typedef enum CGroupController { @@ -81,12 +114,16 @@ CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL), CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES), CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN), -@@ -62,10 +64,10 @@ typedef enum CGroupMask { +@@ -62,10 +64,14 @@ typedef enum CGroupMask { CGROUP_MASK_BPF_RESTRICT_NETWORK_INTERFACES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_RESTRICT_NETWORK_INTERFACES), /* All real cgroup v1 controllers */ - CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, -+ CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, ++ CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS ++#if ENABLE_CPUSET_CGV1 ++ | CGROUP_MASK_CPUSET ++#endif ++ , /* All real cgroup v2 controllers */ - CGROUP_MASK_V2 = CGROUP_MASK_CPU|CGROUP_MASK_CPUSET|CGROUP_MASK_IO|CGROUP_MASK_MEMORY|CGROUP_MASK_PIDS, @@ -807,7 +844,7 @@ { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max }, { "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec }, diff --git a/src/core/manager.c b/src/core/manager.c -index ce20d6b..03508c7 100644 +index ce20d6b..ef22fed 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4192,6 +4192,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) { @@ -949,5 +986,5 @@ CPUWeight= CapabilityBoundingSet= -- -2.33.0 +2.41.0
View file
_service:tar_scm:core-cgroup-support-freezer.patch
Changed
@@ -5,8 +5,10 @@ This patch add support for freezer subsystem. --- + meson.build | 2 + + meson_options.txt | 3 ++ src/basic/cgroup-util.c | 1 + - src/basic/cgroup-util.h | 4 +- + src/basic/cgroup-util.h | 5 +++ src/core/cgroup.c | 16 +++++++ src/core/cgroup.h | 4 ++ src/core/dbus-cgroup.c | 29 +++++++++++++ @@ -24,9 +26,40 @@ src/test/test-cgroup-freezer.c | 43 +++++++++++++++++++ src/test/test-cgroup-mask.c | 3 +- .../fuzz-unit-file/directives-all.service | 2 + - 19 files changed, 157 insertions(+), 2 deletions(-) + 21 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 src/test/test-cgroup-freezer.c +diff --git a/meson.build b/meson.build +index 614013b..8712bdb 100644 +--- a/meson.build ++++ b/meson.build +@@ -1582,6 +1582,7 @@ foreach term : 'analyze', + 'efi', + 'environment-d', + 'firstboot', ++ 'freezer-cgv1', + 'gshadow', + 'hibernate', + 'hostnamed', +@@ -2855,6 +2856,7 @@ foreach tuple : + 'standalone-binaries', get_option('standalone-binaries'), + 'coverage', get_option('b_coverage'), + 'cpuset-cgv1', ++ 'freezer-cgv1', + + + if tuple.length() >= 2 +diff --git a/meson_options.txt b/meson_options.txt +index 5fda5d9..b61d99d 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -517,3 +517,6 @@ option('bpf-framework', type : 'feature', deprecated : { 'true' : 'enabled', 'fa + + option('cpuset-cgv1', type : 'boolean', value : 'true', + description : 'enable cgroup v1 cpuset support') ++ ++option('freezer-cgv1', type : 'boolean', value : 'true', ++ description : 'enable cgroup v1 freezer support') diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index abd1f91..3e60488 100644 --- a/src/basic/cgroup-util.c @@ -40,7 +73,7 @@ CGROUP_CONTROLLER_BPF_DEVICES = "bpf-devices", CGROUP_CONTROLLER_BPF_FOREIGN = "bpf-foreign", diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h -index 99be6b8..eb7ace5 100644 +index dd3df28..4389cce 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -29,6 +29,7 @@ typedef enum CGroupController { @@ -59,15 +92,16 @@ CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL), CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES), CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN), -@@ -64,7 +66,7 @@ typedef enum CGroupMask { - CGROUP_MASK_BPF_RESTRICT_NETWORK_INTERFACES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_RESTRICT_NETWORK_INTERFACES), - - /* All real cgroup v1 controllers */ -- CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, -+ CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_FREEZER|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, +@@ -67,6 +69,9 @@ typedef enum CGroupMask { + CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS + #if ENABLE_CPUSET_CGV1 + | CGROUP_MASK_CPUSET ++#endif ++#if ENABLE_FREEZER_CGV1 ++ | CGROUP_MASK_FREEZER + #endif + , - /* All real cgroup v2 controllers */ - CGROUP_MASK_V2 = CGROUP_MASK_CPU|CGROUP_MASK_CPUSET2|CGROUP_MASK_IO|CGROUP_MASK_MEMORY|CGROUP_MASK_PIDS, diff --git a/src/core/cgroup.c b/src/core/cgroup.c index cd1e97d..3e47f76 100644 --- a/src/core/cgroup.c @@ -314,7 +348,7 @@ { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max }, { "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec }, diff --git a/src/core/manager.c b/src/core/manager.c -index 03508c7..3d14ea1 100644 +index ef22fed..b29d4e1 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4193,6 +4193,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) { @@ -496,5 +530,5 @@ GuessMainPID= IOAccounting= -- -2.33.0 +2.41.0
View file
_service:tar_scm:process-util-log-more-information-when-runnin.patch
Changed
@@ -14,10 +14,10 @@ 4 files changed, 66 insertions(+) diff --git a/src/basic/process-util.c b/src/basic/process-util.c -index b6bf83c..aaf5e87 100644 +index 4e93c9b..78ad30b 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c -@@ -49,6 +49,7 @@ +@@ -54,6 +54,7 @@ #include "stdio-util.h" #include "string-table.h" #include "string-util.h" @@ -25,11 +25,11 @@ #include "terminal-util.h" #include "user-util.h" #include "utf8.h" -@@ -258,6 +259,36 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags +@@ -342,6 +343,36 @@ int pidref_get_cmdline_strv(const PidRef *pid, ProcessCmdlineFlags flags, char * return 0; } -+int print_process_cmdline_with_arg(pid_t pid, int argc, char *argv, char *filter) { ++int print_process_cmdline_with_arg(pid_t pid, int argc, char *argv, const char * const *filter) { + bool is_filtered = false; + int r; + const char *arg_cmdline = ""; @@ -41,7 +41,7 @@ + return r; + } else { + for (int i = 0; i < argc; i++ ) { -+ if (filter && strv_find(filter, argvi)) { ++ if (filter && strv_find((char * const *) filter, argvi)) { + is_filtered = true; + break; + } @@ -63,19 +63,19 @@ _cleanup_free_ char *s = NULL, *class = NULL; const char *p; diff --git a/src/basic/process-util.h b/src/basic/process-util.h -index 96da0bb..135386c 100644 +index 060c0c2..d211188 100644 --- a/src/basic/process-util.h +++ b/src/basic/process-util.h -@@ -40,6 +40,7 @@ typedef enum ProcessCmdlineFlags { +@@ -41,6 +41,7 @@ typedef enum ProcessCmdlineFlags { int pid_get_comm(pid_t pid, char **ret); int pidref_get_comm(const PidRef *pid, char **ret); -+int print_process_cmdline_with_arg(pid_t pid, int argc, char *argv, char *filter); ++int print_process_cmdline_with_arg(pid_t pid, int argc, char *argv, const char * const *filter); int pid_get_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags, char **ret); int pidref_get_cmdline(const PidRef *pid, size_t max_columns, ProcessCmdlineFlags flags, char **ret); int pid_get_cmdline_strv(pid_t pid, ProcessCmdlineFlags flags, char ***ret); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 4e7fd04..6143505 100644 +index dd6f6c9..3b049c7 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2,6 +2,7 @@ @@ -86,12 +86,12 @@ #include <unistd.h> #include "sd-daemon.h" -@@ -1153,6 +1154,14 @@ static int run(int argc, char *argv) { +@@ -1226,6 +1227,14 @@ static int run(int argc, char *argv) { _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL; _cleanup_(umount_and_freep) char *mounted_dir = NULL; int r; + pid_t ppid; -+ char *filter = { ++ const char * const filter = { + "status", "show", "cat", + "is-active", "is-failed", "is-enabled", "is-system-running", + "list-units", "list-sockets", "list-timers", "list-dependencies", @@ -101,7 +101,7 @@ setlocale(LC_ALL, ""); log_setup(); -@@ -1166,6 +1175,9 @@ static int run(int argc, char *argv) { +@@ -1239,6 +1248,9 @@ static int run(int argc, char *argv) { if (r <= 0) goto finish; @@ -112,33 +112,33 @@ log_full(arg_no_warn ? LOG_DEBUG : LOG_WARNING, "%s%s/proc/ is not mounted. This is not a supported mode of operation. Please fix\n" diff --git a/src/test/test-process-util.c b/src/test/test-process-util.c -index 1864f8a..3a844cf 100644 +index 957e214..d9e9ab1 100644 --- a/src/test/test-process-util.c +++ b/src/test/test-process-util.c -@@ -798,4 +798,26 @@ static int intro(void) { +@@ -951,4 +951,26 @@ static int intro(void) { return EXIT_SUCCESS; } +TEST(print_process_cmdline_with_arg) { + pid_t pid = getpid(); -+ char *arg_filter_empty = {"", NULL}; -+ char *arg_filter_1_in = {"status", NULL}; -+ char *arg_filter_1_no = {"stop", NULL}; -+ char *arg_filter_2_in = {"restart", "status", NULL}; -+ char *arg_filter_2_no = {"restart", "stop", NULL}; -+ char *arg_var_11 = {"systemctl"}; -+ char *arg_var_1010 = {"systemctl", "restart", "1", "2", "3", "4", "5", "6", "7", "8"}; -+ char *arg_var_filter3 = {"systemctl", "status", "dbus.service"}; ++ const char * const arg_filter_empty = {"", NULL}; ++ const char * const arg_filter_1_in = {"status", NULL}; ++ const char * const arg_filter_1_no = {"stop", NULL}; ++ const char * const arg_filter_2_in = {"restart", "status", NULL}; ++ const char * const arg_filter_2_no = {"restart", "stop", NULL}; ++ const char *arg_var_11 = {"systemctl"}; ++ const char *arg_var_1010 = {"systemctl", "restart", "1", "2", "3", "4", "5", "6", "7", "8"}; ++ const char *arg_var_filter3 = {"systemctl", "status", "dbus.service"}; + assert_se(print_process_cmdline_with_arg(pid, 0, NULL, NULL) >=0); -+ assert_se(print_process_cmdline_with_arg(pid, 1, arg_var_1, NULL) >= 0); -+ assert_se(print_process_cmdline_with_arg(pid, 10, arg_var_10, NULL) >= 0); -+ assert_se(print_process_cmdline_with_arg(897349, 1, arg_var_1, NULL) < 0); -+ assert_se(print_process_cmdline_with_arg(897349, 10, arg_var_10, NULL) < 0); -+ assert_se(print_process_cmdline_with_arg(pid, 3, arg_var_filter, arg_filter_empty) >= 0); -+ assert_se(print_process_cmdline_with_arg(pid, 3, arg_var_filter, arg_filter_1_in) >= 0); -+ assert_se(print_process_cmdline_with_arg(pid, 3, arg_var_filter, arg_filter_1_no) >= 0); -+ assert_se(print_process_cmdline_with_arg(pid, 3, arg_var_filter, arg_filter_2_in) >= 0); -+ assert_se(print_process_cmdline_with_arg(pid, 3, arg_var_filter, arg_filter_2_no) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 1, (char **) arg_var_1, NULL) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 10, (char **) arg_var_10, NULL) >= 0); ++ assert_se(print_process_cmdline_with_arg(897349, 1, (char **) arg_var_1, NULL) < 0); ++ assert_se(print_process_cmdline_with_arg(897349, 10, (char **) arg_var_10, NULL) < 0); ++ assert_se(print_process_cmdline_with_arg(pid, 3, (char **) arg_var_filter, arg_filter_empty) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 3, (char **) arg_var_filter, arg_filter_1_in) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 3, (char **) arg_var_filter, arg_filter_1_no) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 3, (char **) arg_var_filter, arg_filter_2_in) >= 0); ++ assert_se(print_process_cmdline_with_arg(pid, 3, (char **) arg_var_filter, arg_filter_2_no) >= 0); +} + DEFINE_TEST_MAIN_WITH_INTRO(LOG_INFO, intro);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2