diff --git a/meson.build b/meson.build
index badc8b5..da7a277 100644
--- a/meson.build
+++ b/meson.build
@@ -156,6 +156,7 @@
     error_hpp,
     'gpio.cpp',
     'pmbus.cpp',
+    'temporary_file.cpp',
     'utility.cpp',
     dependencies: [
         nlohmann_json_dep,
diff --git a/phosphor-regulators/src/ffdc_file.hpp b/phosphor-regulators/src/ffdc_file.hpp
index 923f09e..8ee9db8 100644
--- a/phosphor-regulators/src/ffdc_file.hpp
+++ b/phosphor-regulators/src/ffdc_file.hpp
@@ -29,6 +29,7 @@
 using FFDCFormat =
     sdbusplus::xyz::openbmc_project::Logging::server::Create::FFDCFormat;
 using FileDescriptor = phosphor::power::util::FileDescriptor;
+using TemporaryFile = phosphor::power::util::TemporaryFile;
 
 /**
  * @class FFDCFile
diff --git a/phosphor-regulators/src/meson.build b/phosphor-regulators/src/meson.build
index c448366..e1552fe 100644
--- a/phosphor-regulators/src/meson.build
+++ b/phosphor-regulators/src/meson.build
@@ -24,7 +24,6 @@
     'rail.cpp',
     'sensor_monitoring.cpp',
     'system.cpp',
-    'temporary_file.cpp',
     'vpd.cpp',
 
     'actions/compare_presence_action.cpp',
diff --git a/phosphor-regulators/test/config_file_parser_tests.cpp b/phosphor-regulators/test/config_file_parser_tests.cpp
index f477d41..92096fb 100644
--- a/phosphor-regulators/test/config_file_parser_tests.cpp
+++ b/phosphor-regulators/test/config_file_parser_tests.cpp
@@ -69,6 +69,7 @@
 using namespace phosphor::power::regulators::config_file_parser;
 using namespace phosphor::power::regulators::config_file_parser::internal;
 using json = nlohmann::json;
+using TemporaryFile = phosphor::power::util::TemporaryFile;
 
 void writeConfigFile(const std::filesystem::path& pathName,
                      const std::string& contents)
diff --git a/phosphor-regulators/test/meson.build b/phosphor-regulators/test/meson.build
index 74695be..3373abb 100644
--- a/phosphor-regulators/test/meson.build
+++ b/phosphor-regulators/test/meson.build
@@ -24,7 +24,6 @@
     'sensor_monitoring_tests.cpp',
     'sensors_tests.cpp',
     'system_tests.cpp',
-    'temporary_file_tests.cpp',
     'write_verification_error_tests.cpp',
 
     'actions/action_environment_tests.cpp',
@@ -72,7 +71,8 @@
                 build_rpath: get_option('oe-sdk').allowed() ? rpath : '',
                 link_with: [
                     phosphor_regulators_library,
-                    libi2c_dev_mock
+                    libi2c_dev_mock,
+                    libpower
                 ],
                 implicit_include_directories: false,
                 include_directories: [
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index 10cd7ce..3bc52da 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -36,8 +36,8 @@
     expectJsonInvalid(configFileJson, expectedErrorMessage,                    \
                       expectedOutputMessage)
 
-using namespace phosphor::power::regulators;
 using json = nlohmann::json;
+using TemporaryFile = phosphor::power::util::TemporaryFile;
 
 const json validConfigFile = R"(
     {
diff --git a/phosphor-regulators/src/temporary_file.cpp b/temporary_file.cpp
similarity index 93%
rename from phosphor-regulators/src/temporary_file.cpp
rename to temporary_file.cpp
index 5b5954d..69be79d 100644
--- a/phosphor-regulators/src/temporary_file.cpp
+++ b/temporary_file.cpp
@@ -24,14 +24,16 @@
 #include <stdexcept>
 #include <string>
 
-namespace phosphor::power::regulators
+namespace phosphor::power::util
 {
 
+namespace fs = std::filesystem;
+
 TemporaryFile::TemporaryFile()
 {
     // Build template path required by mkstemp()
     std::string templatePath = fs::temp_directory_path() /
-                               "phosphor-regulators-XXXXXX";
+                               "phosphor-power-XXXXXX";
 
     // Generate unique file name, create file, and open it.  The XXXXXX
     // characters are replaced by mkstemp() to make the file name unique.
@@ -90,4 +92,4 @@
     }
 }
 
-} // namespace phosphor::power::regulators
+} // namespace phosphor::power::util
diff --git a/phosphor-regulators/src/temporary_file.hpp b/temporary_file.hpp
similarity index 94%
rename from phosphor-regulators/src/temporary_file.hpp
rename to temporary_file.hpp
index df97ee2..7ba4190 100644
--- a/phosphor-regulators/src/temporary_file.hpp
+++ b/temporary_file.hpp
@@ -18,11 +18,9 @@
 #include <filesystem>
 #include <utility>
 
-namespace phosphor::power::regulators
+namespace phosphor::power::util
 {
 
-namespace fs = std::filesystem;
-
 /**
  * @class TemporaryFile
  *
@@ -111,7 +109,7 @@
      *
      * @return temporary file path
      */
-    const fs::path& getPath() const
+    const std::filesystem::path& getPath() const
     {
         return path;
     }
@@ -122,7 +120,7 @@
      *
      * Empty when file has been deleted.
      */
-    fs::path path{};
+    std::filesystem::path path{};
 };
 
-} // namespace phosphor::power::regulators
+} // namespace phosphor::power::util
diff --git a/test/meson.build b/test/meson.build
index 92225b4..0b4fd20 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,27 +1,19 @@
 test(
-    'nvtest',
+    'common-code-tests',
     executable(
-        'nvtest', 'nvtest.cpp',
+        'common-code-tests',
+        'file_descriptor_tests.cpp',
+        'nvtest.cpp',
+        'temporary_file_tests.cpp',
         dependencies: [
             gmock,
             gtest,
         ],
         link_args: dynamic_linker,
         build_rpath: get_option('oe-sdk').allowed() ? rpath : '',
-        implicit_include_directories: false,
-        include_directories: '..',
-    )
-)
-
-test(
-    'file_descriptor_tests',
-    executable(
-        'file_descriptor_tests', 'file_descriptor_tests.cpp',
-        dependencies: [
-            gtest,
+        link_with: [
+            libpower
         ],
-        link_args: dynamic_linker,
-        build_rpath: get_option('oe-sdk').allowed() ? rpath : '',
         implicit_include_directories: false,
         include_directories: '..',
     )
diff --git a/phosphor-regulators/test/temporary_file_tests.cpp b/test/temporary_file_tests.cpp
similarity index 85%
rename from phosphor-regulators/test/temporary_file_tests.cpp
rename to test/temporary_file_tests.cpp
index b3bcb60..9eafa56 100644
--- a/phosphor-regulators/test/temporary_file_tests.cpp
+++ b/test/temporary_file_tests.cpp
@@ -14,18 +14,56 @@
  * limitations under the License.
  */
 #include "temporary_file.hpp"
-#include "test_utils.hpp"
 
 #include <filesystem>
+#include <fstream>
 #include <string>
 #include <utility>
 
 #include <gtest/gtest.h>
 
-using namespace phosphor::power::regulators;
-using namespace phosphor::power::regulators::test_utils;
+using namespace phosphor::power::util;
 namespace fs = std::filesystem;
 
+/**
+ * Modify the specified file so that fs::remove() fails with an exception.
+ *
+ * The file will be renamed and can be restored by calling makeFileRemovable().
+ *
+ * @param path path to the file
+ */
+inline void makeFileUnRemovable(const fs::path& path)
+{
+    // Rename the file to save its contents
+    fs::path savePath{path.native() + ".save"};
+    fs::rename(path, savePath);
+
+    // Create a directory at the original file path
+    fs::create_directory(path);
+
+    // Create a file within the directory.  fs::remove() will throw an exception
+    // if the path is a non-empty directory.
+    std::ofstream childFile{path / "childFile"};
+}
+
+/**
+ * Modify the specified file so that fs::remove() can successfully delete it.
+ *
+ * Undo the modifications from an earlier call to makeFileUnRemovable().
+ *
+ * @param path path to the file
+ */
+inline void makeFileRemovable(const fs::path& path)
+{
+    // makeFileUnRemovable() creates a directory at the file path.  Remove the
+    // directory and all of its contents.
+    fs::remove_all(path);
+
+    // Rename the file back to the original path to restore its contents
+    fs::path savePath{path.native() + ".save"};
+    fs::rename(savePath, path);
+}
+
 TEST(TemporaryFileTests, DefaultConstructor)
 {
     TemporaryFile file{};
@@ -39,7 +77,7 @@
     EXPECT_EQ(parentDir, "/tmp");
 
     std::string fileName = path.filename();
-    std::string namePrefix = "phosphor-regulators-";
+    std::string namePrefix = "phosphor-power-";
     EXPECT_EQ(fileName.compare(0, namePrefix.size(), namePrefix), 0);
 }
 
