diff --git a/modules/epos/epos.cpp b/modules/epos/epos.cpp
index b242172060c87808ff56c90e862a62327ad828bc..1d374bfdc84026a688236bf2a39f24c38678ec21 100644
--- a/modules/epos/epos.cpp
+++ b/modules/epos/epos.cpp
@@ -7,16 +7,16 @@ namespace epos {
   void ranfini_(double&, int&, int&) {}
 
   // this is needed as linker object, but it is not needed to do anything
-  void ranfcv_(double&) {}
+  void ranfcv_(double&) {} // LCOV_EXCL_LINE
 
   float rangen_() { return ::epos::rndm_interface(); }
   double drangen_() { return ::epos::double_rndm_interface(); }
 
   datadir::datadir(const std::string& dir) {
-    if (dir.length() > 500) {
+    if (dir.length() > 500) { // we don't test this limitation: LCOV_EXCL_START
       std::cerr << "Epos error, will cut datadir \"" << dir
                 << "\" to 500 characters: " << std::endl;
-    }
+    } // LCOV_EXCL_STOP
     int i = 0;
     for (i = 0; i < std::min(500, int(dir.length())); ++i) data[i] = dir[i];
     data[i + 0] = ' ';
diff --git a/tests/framework/testGeometry.cpp b/tests/framework/testGeometry.cpp
index 79073518bd6e8ea302f8a1414b73cacc03ccfdd2..cd2d8dbd2a2047d7218379bfb973e008a355d170 100644
--- a/tests/framework/testGeometry.cpp
+++ b/tests/framework/testGeometry.cpp
@@ -287,6 +287,20 @@ TEST_CASE("Geometry Trajectories") {
     CHECK((base.getDirection(0).getComponents(rootCS) -
            QuantityVector<dimensionless_d>{1, 0, 0})
               .getNorm() == Approx(0).margin(absMargin));
+
+    base.setDuration(0_s);
+
+    CHECK(base.getDuration() / 1_s == Approx(0));
+    CHECK(base.getLength() / 1_m == Approx(0));
+
+    base.setDuration(10_s);
+
+    CHECK(base.getDuration() / 1_s == Approx(10));
+
+    StraightTrajectory base2(line,
+                             std::numeric_limits<TimeType::value_type>::infinity() * 1_);
+    base2.setDuration(10_s);
+    CHECK(base2.getDuration() / 1_s == Approx(10));
   }
 
   SECTION("Helix") {