diff --git a/tests/ParallelCheckerTester.cpp b/tests/ParallelCheckerTester.cpp
index 80e92e4494afda30bdf5c8b6653b29f3a200970e..467705e7f12db8ed2645f7d2fa2615754b13470b 100644
--- a/tests/ParallelCheckerTester.cpp
+++ b/tests/ParallelCheckerTester.cpp
@@ -41,3 +41,9 @@ ParallelCheckerTester::setTag(size_t tag) const
 {
   ParallelChecker::instance().m_tag = tag;
 }
+
+void
+ParallelCheckerTester::setTagWithCheck(size_t tag) const
+{
+  ParallelChecker::instance().setTag(tag);
+}
diff --git a/tests/ParallelCheckerTester.hpp b/tests/ParallelCheckerTester.hpp
index 9aefed506d34e7b899a9fa3fae1128180c03958e..90b476558e79924eca267710bcad2d20260805dd 100644
--- a/tests/ParallelCheckerTester.hpp
+++ b/tests/ParallelCheckerTester.hpp
@@ -15,6 +15,7 @@ class ParallelCheckerTester
   void setFilename(const std::string& filename) const;
   void setMode(ParallelChecker::Mode mode) const;
   void setTag(size_t tag) const;
+  void setTagWithCheck(size_t tag) const;
 
   ParallelCheckerTester()  = default;
   ~ParallelCheckerTester() = default;
diff --git a/tests/test_ParallelChecker_read.cpp b/tests/test_ParallelChecker_read.cpp
index 026cd4063fc0837dcec9a83bac312d4d58619561..12a65e475ea0c254d95458e880da9f148aba6fa9 100644
--- a/tests/test_ParallelChecker_read.cpp
+++ b/tests/test_ParallelChecker_read.cpp
@@ -9,14 +9,14 @@
 #include <mesh/SubItemArrayPerItemUtils.hpp>
 #include <mesh/SubItemValuePerItemUtils.hpp>
 
+#include <ParallelCheckerTester.hpp>
+
 #include <filesystem>
 
 // clazy:excludeall=non-pod-global-static
 
 #ifdef PUGS_HAS_HDF5
 
-#include <ParallelCheckerTester.hpp>
-
 template <typename T>
 struct test_TinyVectorDataType;
 
@@ -56,6 +56,26 @@ TEST_CASE("ParallelChecker_read", "[dev]")
   REQUIRE_NOTHROW(ParallelChecker::create());
   REQUIRE_NOTHROW(ParallelChecker::instance().setMode(ParallelChecker::Mode::read));
 
+  {
+    ParallelCheckerTester pc_tester;
+    pc_tester.setTag(12);
+    REQUIRE(pc_tester.getTag() == 12);
+
+    REQUIRE_THROWS_WITH(ParallelChecker::instance().setFilename("custom.h5"),
+                        "unexpected error: Cannot modify parallel checker file if it was already used");
+    REQUIRE(ParallelChecker::instance().filename() == "parallel_checker.h5");
+    REQUIRE_THROWS_WITH(ParallelChecker::instance().setMode(ParallelChecker::Mode::read),
+                        "unexpected error: Cannot modify parallel checker mode if it was already used");
+
+    pc_tester.setTag(0);
+    REQUIRE(pc_tester.getTag() == 0);
+
+    const bool is_resuming = ResumingManager::getInstance().isResuming();
+    ResumingManager::getInstance().setIsResuming(false);
+    REQUIRE_THROWS_WITH(pc_tester.setTagWithCheck(0),
+                        "unexpected error: Cannot modify parallel checker tag if not resuming");
+    ResumingManager::getInstance().setIsResuming(is_resuming);
+  }
   std::string tmp_dirname;
 
   {
@@ -1065,8 +1085,10 @@ TEST_CASE("ParallelChecker_read", "[dev]")
           values[node_id][i_cell] = std::sin(node_number[node_id] + 2 * i_cell);
         }
       }
-
+      std::clog << "SAME:\n" << std::flush;
       REQUIRE_NOTHROW(parallel_check(values, "sin", source_location));
+
+      std::clog << "DIFF NAME:\n" << std::flush;
       pc_tester.setTag(tag);
       UNSCOPED_INFO("can have different name in ref");
       REQUIRE_NOTHROW(parallel_check(values, "not_sin", source_location));
@@ -2046,6 +2068,35 @@ TEST_CASE("ParallelChecker_read", "[dev]")
   REQUIRE_NOTHROW(ParallelChecker::instance().setMode(ParallelChecker::Mode::read));
   REQUIRE_NOTHROW(not ParallelChecker::instance().isWriting());
 
+  REQUIRE(ParallelChecker::instance().filename() == "parallel_checker.h5");
+  REQUIRE_NOTHROW(ParallelChecker::instance().setFilename("custom.h5"));
+  REQUIRE(ParallelChecker::instance().filename() == "custom.h5");
+  REQUIRE_NOTHROW(ParallelChecker::instance().setFilename("parallel_checker.h5"));
+  REQUIRE(ParallelChecker::instance().filename() == "parallel_checker.h5");
+
+  {
+    ParallelCheckerTester pc_tester;
+    pc_tester.setTag(12);
+    REQUIRE(pc_tester.getTag() == 12);
+
+    REQUIRE(not ResumingManager::getInstance().isResuming());
+    ResumingManager::getInstance().setIsResuming(true);
+    pc_tester.setTagWithCheck(3);
+    REQUIRE(ParallelChecker::instance().tag() == 3);
+
+    ResumingManager::getInstance().setIsResuming(false);
+    REQUIRE_THROWS_WITH(pc_tester.setTagWithCheck(0),
+                        "unexpected error: Cannot modify parallel checker tag if not resuming");
+
+    REQUIRE_THROWS_WITH(ParallelChecker::instance().setFilename("custom.h5"),
+                        "unexpected error: Cannot modify parallel checker file if it was already used");
+    REQUIRE(ParallelChecker::instance().filename() == "parallel_checker.h5");
+    REQUIRE_THROWS_WITH(ParallelChecker::instance().setMode(ParallelChecker::Mode::read),
+                        "unexpected error: Cannot modify parallel checker mode if it was already used");
+
+    pc_tester.setTag(0);
+    REQUIRE(pc_tester.getTag() == 0);
+  }
   auto mesh = MeshDataBaseForTests::get().unordered1DMesh()->get<Mesh<1>>();
 
   const Connectivity<1>& connectivity = mesh->connectivity();
@@ -2074,6 +2125,12 @@ TEST_CASE("ParallelChecker_read", "[dev]")
   REQUIRE_THROWS_WITH(parallel_check(SubItemArrayPerItemVariant{napc}, "test"),
                       "error: parallel checker cannot be used without HDF5 support");
 
+  DiscreteFunctionP0<double> df_R{mesh};
+  REQUIRE_THROWS_WITH(parallel_check(df_R, "test"), "error: parallel checker cannot be used without HDF5 support");
+
+  DiscreteFunctionP0Vector<double> df_Rn{mesh, 2};
+  REQUIRE_THROWS_WITH(parallel_check(df_Rn, "test"), "error: parallel checker cannot be used without HDF5 support");
+
   REQUIRE_NOTHROW(ParallelChecker::destroy());
 }