diff --git a/test/tmpf.c b/test/tmpf.c
new file mode 100644
index 0000000..285f5d5
--- /dev/null
+++ b/test/tmpf.c
@@ -0,0 +1,48 @@
+/*
+ * Mailbox Daemon Temporary File helpers
+ *
+ * Copyright 2017 IBM
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "test/tmpf.h"
+
+int tmpf_init(struct tmpf *tmpf, const char *template)
+{
+	strncpy(tmpf->path, template, sizeof(tmpf->path) - 1);
+
+	tmpf->fd = mkstemp(tmpf->path);
+	if (tmpf->fd < 0) {
+		perror("mkstemp");
+		return -1;
+	}
+
+	return 0;
+}
+
+void tmpf_destroy(struct tmpf *tmpf)
+{
+	if (tmpf->fd)
+		close(tmpf->fd);
+
+	if (tmpf->path)
+		unlink(tmpf->path);
+}
diff --git a/test/tmpf.h b/test/tmpf.h
new file mode 100644
index 0000000..61db73d
--- /dev/null
+++ b/test/tmpf.h
@@ -0,0 +1,34 @@
+/*
+ * Mailbox Daemon Temporary File helpers
+ *
+ * Copyright 2017 IBM
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef MBOX_TEST_UTILS_H
+#define MBOX_TEST_UTILS_H
+
+#include <linux/limits.h>
+
+struct tmpf {
+	int fd;
+	char path[PATH_MAX];
+};
+
+int tmpf_init(struct tmpf *tmpf, const char *template);
+
+void tmpf_destroy(struct tmpf *tmpf);
+
+#endif /* MBOX_TEST_UTILS_H */
