-#define test_parent(x, y) { \
- char *z; \
- int r = path_get_parent(x, &z); \
- assert_se(r==0); \
- assert_se(streq(z, y)); \
+#define test_parent(x, y) { \
+ char _cleanup_free_ *z = NULL; \
+ int r = path_get_parent(x, &z); \
+ printf("expected: %s\n", y ? y : "error"); \
+ printf("actual: %s\n", r<0 ? "error" : z); \
+ assert_se((y==NULL) ^ (r==0)); \
+ assert_se(y==NULL || path_equal(z, y)); \