sd-path: handle case of missing runtime dir in test

Also document it in the man page.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-03-26 17:40:33 +01:00
parent e342055851
commit 2e09fa8906
2 changed files with 20 additions and 4 deletions

View File

@ -172,6 +172,14 @@
<listitem><para>Output argument is <constant>NULL</constant>.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENXIO</constant></term>
<listitem><para>Query failed because of an undefined environment variable (e.g. for
<constant>SD_PATH_USER_RUNTIME</constant> when <varname>$XDG_RUNTIME_DIR</varname> is not
defined).</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENOMEM</constant></term>

View File

@ -11,9 +11,13 @@ static void test_sd_path_lookup(void) {
log_info("/* %s */", __func__);
for (uint64_t i = 0; i < _SD_PATH_MAX; i++) {
_cleanup_free_ char *t, *s;
_cleanup_free_ char *t = NULL, *s = NULL;
int r;
assert_se(sd_path_lookup(i, NULL, &t) == 0);
r = sd_path_lookup(i, NULL, &t);
if (i == SD_PATH_USER_RUNTIME && r == -ENXIO)
continue;
assert_se(r == 0);
assert_se(t);
log_info("%02"PRIu64": \"%s\"", i, t);
@ -31,10 +35,14 @@ static void test_sd_path_lookup_strv(void) {
log_info("/* %s */", __func__);
for (uint64_t i = 0; i < _SD_PATH_MAX; i++) {
_cleanup_strv_free_ char **t, **s;
_cleanup_strv_free_ char **t = NULL, **s = NULL;
char **item;
int r;
assert_se(sd_path_lookup_strv(i, NULL, &t) == 0);
r = sd_path_lookup_strv(i, NULL, &t);
if (i == SD_PATH_USER_RUNTIME && r == -ENXIO)
continue;
assert_se(r == 0);
assert_se(t);
log_info("%02"PRIu64":", i);
STRV_FOREACH(item, t)