summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-01-13 12:42:42 -0500
committerTavian Barnes <tavianator@tavianator.com>2024-01-13 12:42:42 -0500
commite9588c49d5539ded993f720fc6855d6fa878c997 (patch)
treed827157c37f59335252ba874fd41604984775471 /tests
parentd6cae04b54c1d58223e1719101b7c54d348e8d80 (diff)
downloadbfs-e9588c49d5539ded993f720fc6855d6fa878c997.tar.xz
bfstd: New {error,errno}_is_like() functions
We used to have is_nonexistence_error() to consistently treat ENOENT and ENOTDIR the same. Recently, we started considering EFAULT the same as ENAMETOOLONG on DragonFly BSD to work around a kernel bug. Unify both of these behind a more generic interface.
Diffstat (limited to 'tests')
-rw-r--r--tests/xtouch.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/tests/xtouch.c b/tests/xtouch.c
index ed8bbee..6099128 100644
--- a/tests/xtouch.c
+++ b/tests/xtouch.c
@@ -68,22 +68,11 @@ static int open_parent(const struct args *args, const char **path) {
goto done;
}
- switch (errno) {
- case ENAMETOOLONG:
-#if __DragonFly__
- // https://twitter.com/tavianator/status/1742991411203485713
- case EFAULT:
-#endif
- break;
-
- case ENOENT:
- if (args->flags & CREATE_PARENTS) {
- break;
- } else {
+ if (errno == ENOENT) {
+ if (!(args->flags & CREATE_PARENTS)) {
goto err;
}
-
- default:
+ } else if (!errno_is_like(ENAMETOOLONG)) {
goto err;
}