summaryrefslogtreecommitdiff
path: root/tests/test_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_common.h')
-rw-r--r--tests/test_common.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_common.h b/tests/test_common.h
new file mode 100644
index 000000000000..76e850f19128
--- /dev/null
+++ b/tests/test_common.h
@@ -0,0 +1,29 @@
+/*-
+ * Copyright (c) 2024 Kyle Evans <kevans@FreeBSD.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include <assert.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <limits.h>
+#include <stdlib.h>
+
+static inline int
+open_progdir(const char *prog)
+{
+ char pdir[PATH_MAX], *resolved;
+ int dfd;
+
+ resolved = realpath(prog, &pdir[0]);
+ assert(resolved != NULL);
+
+ resolved = dirname(&pdir[0]);
+ assert(resolved != NULL);
+
+ dfd = open(resolved, O_DIRECTORY);
+ assert(dfd != -1);
+
+ return (dfd);
+}