@@ -1032,6 +1032,28 @@ void generic_system_functional_test(
10321032 EXPECT_TRUE (std::isnan (j2p_c.get_optional ().value ()));
10331033 EXPECT_TRUE (std::isnan (j2v_c.get_optional ().value ()));
10341034
1035+ // read() does not change values until commands are set (i.e, isfinite())
1036+ ASSERT_EQ (rm.read (TIME, PERIOD).result , hardware_interface::return_type::OK);
1037+ EXPECT_EQ (3.45 + offset, j1p_s.get_optional ().value ());
1038+ EXPECT_EQ (0.0 , j1v_s.get_optional ().value ());
1039+ EXPECT_EQ (2.78 + offset, j2p_s.get_optional ().value ());
1040+ EXPECT_EQ (0.0 , j2v_s.get_optional ().value ());
1041+ EXPECT_TRUE (std::isnan (j1p_c.get_optional ().value ()));
1042+ EXPECT_TRUE (std::isnan (j1v_c.get_optional ().value ()));
1043+ EXPECT_TRUE (std::isnan (j2p_c.get_optional ().value ()));
1044+ EXPECT_TRUE (std::isnan (j2v_c.get_optional ().value ()));
1045+
1046+ // write() does not change values until commands are set (i.e, isfinite())
1047+ ASSERT_EQ (rm.write (TIME, PERIOD).result , hardware_interface::return_type::OK);
1048+ EXPECT_EQ (3.45 + offset, j1p_s.get_optional ().value ());
1049+ EXPECT_EQ (0.0 , j1v_s.get_optional ().value ());
1050+ EXPECT_EQ (2.78 + offset, j2p_s.get_optional ().value ());
1051+ EXPECT_EQ (0.0 , j2v_s.get_optional ().value ());
1052+ EXPECT_TRUE (std::isnan (j1p_c.get_optional ().value ()));
1053+ EXPECT_TRUE (std::isnan (j1v_c.get_optional ().value ()));
1054+ EXPECT_TRUE (std::isnan (j2p_c.get_optional ().value ()));
1055+ EXPECT_TRUE (std::isnan (j2v_c.get_optional ().value ()));
1056+
10351057 // set some new values in commands
10361058 ASSERT_TRUE (j1p_c.set_value (0.11 ));
10371059 ASSERT_TRUE (j1v_c.set_value (0.22 ));
0 commit comments