_cleanup_set_free_ Set *m = NULL;
_cleanup_free_ char *joined = NULL;
- assert_se(set_strjoin(m, NULL, &joined) >= 0);
+ /* Empty set */
+ assert_se(set_strjoin(m, NULL, false, &joined) >= 0);
assert_se(!joined);
- assert_se(set_strjoin(m, "", &joined) >= 0);
+ assert_se(set_strjoin(m, "", false, &joined) >= 0);
assert_se(!joined);
- assert_se(set_strjoin(m, " ", &joined) >= 0);
+ assert_se(set_strjoin(m, " ", false, &joined) >= 0);
assert_se(!joined);
- assert_se(set_strjoin(m, "xxx", &joined) >= 0);
+ assert_se(set_strjoin(m, "xxx", false, &joined) >= 0);
+ assert_se(!joined);
+ assert_se(set_strjoin(m, NULL, true, &joined) >= 0);
+ assert_se(!joined);
+ assert_se(set_strjoin(m, "", true, &joined) >= 0);
+ assert_se(!joined);
+ assert_se(set_strjoin(m, " ", true, &joined) >= 0);
+ assert_se(!joined);
+ assert_se(set_strjoin(m, "xxx", true, &joined) >= 0);
assert_se(!joined);
+ /* Single entry */
assert_se(set_put_strdup(&m, "aaa") == 1);
-
- assert_se(set_strjoin(m, NULL, &joined) >= 0);
+ assert_se(set_strjoin(m, NULL, false, &joined) >= 0);
assert_se(streq(joined, "aaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, "", &joined) >= 0);
+ assert_se(set_strjoin(m, "", false, &joined) >= 0);
assert_se(streq(joined, "aaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, " ", &joined) >= 0);
+ assert_se(set_strjoin(m, " ", false, &joined) >= 0);
+ assert_se(streq(joined, "aaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, "xxx", false, &joined) >= 0);
+ assert_se(streq(joined, "aaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, NULL, true, &joined) >= 0);
assert_se(streq(joined, "aaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, "xxx", &joined) >= 0);
+ assert_se(set_strjoin(m, "", true, &joined) >= 0);
assert_se(streq(joined, "aaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, " ", true, &joined) >= 0);
+ assert_se(streq(joined, " aaa "));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, "xxx", true, &joined) >= 0);
+ assert_se(streq(joined, "xxxaaaxxx"));
+ /* Two entries */
assert_se(set_put_strdup(&m, "bbb") == 1);
assert_se(set_put_strdup(&m, "aaa") == 0);
-
joined = mfree(joined);
- assert_se(set_strjoin(m, NULL, &joined) >= 0);
+ assert_se(set_strjoin(m, NULL, false, &joined) >= 0);
assert_se(STR_IN_SET(joined, "aaabbb", "bbbaaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, "", &joined) >= 0);
+ assert_se(set_strjoin(m, "", false, &joined) >= 0);
assert_se(STR_IN_SET(joined, "aaabbb", "bbbaaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, " ", &joined) >= 0);
+ assert_se(set_strjoin(m, " ", false, &joined) >= 0);
assert_se(STR_IN_SET(joined, "aaa bbb", "bbb aaa"));
-
joined = mfree(joined);
- assert_se(set_strjoin(m, "xxx", &joined) >= 0);
+ assert_se(set_strjoin(m, "xxx", false, &joined) >= 0);
assert_se(STR_IN_SET(joined, "aaaxxxbbb", "bbbxxxaaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, NULL, true, &joined) >= 0);
+ assert_se(STR_IN_SET(joined, "aaabbb", "bbbaaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, "", true, &joined) >= 0);
+ assert_se(STR_IN_SET(joined, "aaabbb", "bbbaaa"));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, " ", true, &joined) >= 0);
+ assert_se(STR_IN_SET(joined, " aaa bbb ", " bbb aaa "));
+ joined = mfree(joined);
+ assert_se(set_strjoin(m, "xxx", true, &joined) >= 0);
+ assert_se(STR_IN_SET(joined, "xxxaaaxxxbbbxxx", "xxxbbbxxxaaaxxx"));
}
int main(int argc, const char *argv[]) {
set -ex
set -o pipefail
-function has_tag_internal() {
- udevadm info /dev/null | sed -n '/E: '$1'=/ {s/E: '$1'=/:/; s/$/:/; p}' | grep -q ":$2:"
-}
-
-function has_tag() {
- has_tag_internal TAGS $1
-}
-
-function has_current_tag() {
- has_tag_internal CURRENT_TAGS $1
-}
-
mkdir -p /run/udev/rules.d/
! test -f /run/udev/tags/added/c1:3 &&
! test -f /run/udev/tags/changed/c1:3 &&
- ! has_tag added &&
- ! has_current_tag added &&
- ! has_tag changed &&
- ! has_current_tag changed
+ udevadm info /dev/null | grep -q -v 'E: TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*'
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", TAG+="added"
while : ; do
test -f /run/udev/tags/added/c1:3 &&
! test -f /run/udev/tags/changed/c1:3 &&
- has_tag added &&
- has_current_tag added &&
- ! has_tag changed &&
- ! has_current_tag changed &&
+ udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
break
sleep .5
while : ; do
test -f /run/udev/tags/added/c1:3 &&
test -f /run/udev/tags/changed/c1:3 &&
- has_tag added &&
- ! has_current_tag added &&
- has_tag changed &&
- has_current_tag changed &&
+ udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
+ udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*' &&
break
sleep .5
while : ; do
test -f /run/udev/tags/added/c1:3 &&
test -f /run/udev/tags/changed/c1:3 &&
- has_tag added &&
- has_current_tag added &&
- has_tag changed &&
- ! has_current_tag changed &&
+ udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
+ udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
+ udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
break
sleep .5