summaryrefslogtreecommitdiff
path: root/src/shared/tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/tests.c')
-rw-r--r--src/shared/tests.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/shared/tests.c b/src/shared/tests.c
index 409116290d..7034687725 100644
--- a/src/shared/tests.c
+++ b/src/shared/tests.c
@@ -17,6 +17,9 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <alloc-util.h>
+#include <fs-util.h>
+#include <libgen.h>
#include <stdlib.h>
#include <util.h>
@@ -31,3 +34,13 @@ char* setup_fake_runtime_dir(void) {
return p;
}
+
+const char* get_exe_relative_testdata_dir(void) {
+ _cleanup_free_ char *exedir = NULL;
+ /* convenience: caller does not need to free result */
+ static char testdir[PATH_MAX];
+
+ assert_se(readlink_and_make_absolute("/proc/self/exe", &exedir) >= 0);
+ assert_se(snprintf(testdir, sizeof(testdir), "%s/testdata", dirname(exedir)) > 0);
+ return testdir;
+}