diff --git a/test/gtest/tmp.cpp b/test/gtest/tmp.cpp
new file mode 100644
index 0000000..f473175
--- /dev/null
+++ b/test/gtest/tmp.cpp
@@ -0,0 +1,43 @@
+#include <filesystem>
+#include <gtest/gtest.h>
+#include <stdplus/gtest/tmp.hpp>
+
+namespace stdplus
+{
+namespace gtest
+{
+
+class TestWithTmpTest : public TestWithTmp
+{
+};
+
+TEST_F(TestWithTmpTest, One)
+{
+    EXPECT_TRUE(std::filesystem::create_directory(
+        std::filesystem::path(CaseTmpDir()) / "a"));
+    EXPECT_TRUE(std::filesystem::create_directory(
+        std::filesystem::path(SuiteTmpDir()) / "a"));
+}
+
+TEST_F(TestWithTmpTest, Two)
+{
+    EXPECT_TRUE(std::filesystem::create_directory(
+        std::filesystem::path(CaseTmpDir()) / "a"));
+    EXPECT_FALSE(std::filesystem::create_directory(
+        std::filesystem::path(SuiteTmpDir()) / "a"));
+}
+
+class TestWithTmpTest2 : public TestWithTmp
+{
+};
+
+TEST_F(TestWithTmpTest2, One)
+{
+    EXPECT_TRUE(std::filesystem::create_directory(
+        std::filesystem::path(SuiteTmpDir()) / "a"));
+    EXPECT_TRUE(std::filesystem::create_directory(
+        std::filesystem::path(CaseTmpDir()) / "a"));
+}
+
+} // namespace gtest
+} // namespace stdplus
diff --git a/test/meson.build b/test/meson.build
index 0317121..1f284a5 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,25 +1,3 @@
-gtest = dependency('gtest', main: true, disabler: true, required: false)
-gmock = dependency('gmock', disabler: true, required: false)
-if not gtest.found() or not gmock.found()
-  gtest_opts = import('cmake').subproject_options()
-  gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'})
-  gtest_proj = import('cmake').subproject(
-    'googletest',
-    options: gtest_opts,
-    required: false)
-  if gtest_proj.found()
-    gtest = declare_dependency(
-      dependencies: [
-        dependency('threads'),
-        gtest_proj.dependency('gtest'),
-        gtest_proj.dependency('gtest_main'),
-      ])
-    gmock = gtest_proj.dependency('gmock')
-  else
-    assert(not build_tests.enabled(), 'Googletest is required')
-  endif
-endif
-
 gtests = [
   'cancel',
   'exception',
@@ -31,8 +9,8 @@
 
 gtest_deps = [
   stdplus_dep,
-  gtest,
-  gmock,
+  gtest_main_dep,
+  gmock_dep,
 ]
 
 if has_dl
@@ -83,12 +61,31 @@
   warning('Not testing io_uring feature')
 endif
 
-if gtest.found() and gmock.found()
+if has_gtest
+  gtests += [
+    'gtest/tmp',
+  ]
+
+  gtest_deps += [
+    stdplus_gtest_dep,
+  ]
+elif build_tests.enabled()
+  error('Not testing gtest lib feature')
+else
+  warning('Not testing gtest lib feature')
+endif
+
+if gtest_dep.found() and gmock_dep.found()
   foreach t : gtests
-    test(t, executable(t.underscorify(), t + '.cpp',
-                       build_by_default: false,
-                       implicit_include_directories: false,
-                       dependencies: gtest_deps))
+    test(
+      t,
+      files('run_with_tmp.sh'),
+      env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
+      args: executable(
+        t.underscorify(), t + '.cpp',
+        build_by_default: false,
+        implicit_include_directories: false,
+        dependencies: gtest_deps))
   endforeach
 endif
 
diff --git a/test/run_with_tmp.sh b/test/run_with_tmp.sh
new file mode 100755
index 0000000..485d6a3
--- /dev/null
+++ b/test/run_with_tmp.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+TMPDIR="$(mktemp -d --tmpdir "${TMPTMPL-tmp.XXXXXXXXXX}")" || exit
+trap 'rm -rf -- "$TMPDIR"' EXIT
+export TMPDIR
+echo "Exec $* with TMPDIR=$TMPDIR" >&2
+"$@"
