@@ -136,6 +136,16 @@ class ReverseIntefaceTest : public ::testing::Test
136136 return pos[1 ];
137137 }
138138
139+ int32_t getFreedriveControlMode ()
140+ {
141+ // received_pos[0]=control::FreedriveControlMessage, when writing a trajectory control message
142+ int32_t keep_alive_signal;
143+ int32_t control_mode;
144+ vector6int32_t pos;
145+ readMessage (keep_alive_signal, pos, control_mode);
146+ return pos[0 ];
147+ }
148+
139149 protected:
140150 virtual bool open (int socket_fd, struct sockaddr * address, size_t address_len)
141151 {
@@ -360,6 +370,30 @@ TEST_F(ReverseIntefaceTest, write_control_mode)
360370 EXPECT_EQ (toUnderlying (expected_control_mode), received_control_mode);
361371}
362372
373+ TEST_F (ReverseIntefaceTest, write_freedrive_control_message)
374+ {
375+ // Wait for the client to connect to the server
376+ EXPECT_TRUE (waitForProgramState (1000 , true ));
377+
378+ control::FreedriveControlMessage written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_STOP;
379+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
380+ int32_t received_freedrive_message = client_->getFreedriveControlMode ();
381+
382+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
383+
384+ written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_NOOP;
385+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
386+ received_freedrive_message = client_->getFreedriveControlMode ();
387+
388+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
389+
390+ written_freedrive_message = control::FreedriveControlMessage::FREEDRIVE_START;
391+ reverse_interface_->writeFreedriveControlMessage (written_freedrive_message);
392+ received_freedrive_message = client_->getFreedriveControlMode ();
393+
394+ EXPECT_EQ (toUnderlying (written_freedrive_message), received_freedrive_message);
395+ }
396+
363397int main (int argc, char * argv[])
364398{
365399 ::testing::InitGoogleTest (&argc, argv);
0 commit comments