asrob-uc3m / robotDevastation

A new-generation shooter with augmented reality and real robots. You can play online with other users with your PC, moving robots in championships and campaigns: all 24/7!
http://asrob-uc3m.github.io/workgroups/2017-05-28-robot-devastation.html
GNU Lesser General Public License v2.1
9 stars 4 forks source link

Race conditions in MockupState prevent tests to pass in travis #92

Closed David-Estevez closed 7 years ago

David-Estevez commented 7 years ago

From comment 1:

I had to put a sleep function at a1021b5 because of race conditions in https://travis-ci.org/asrob-uc3m/robotDevastation/jobs/204284401#L3631. @jgvictores suggests implementing rd::MockupState as a RPC responder (yarp::os::PortReader class).

cc @David-Estevez

From comment 2:

The failed Travis build linked earlier corresponds to a GCC job, whereas Clang showed positive results. After having put the sleep function, GCC runs nice, but now Clang is stuck in an infinite loop: https://travis-ci.org/asrob-uc3m/robotDevastation/jobs/204323228#L3968. Notice two failed assertions in previous lines, which may be the cause. We might want to find a more reliable solution than the current one.

PeterBowman commented 7 years ago

With quite a lot of help from @jgvictores, a RPC client-server model was implemented in testFSM and MockupState at 6b4757f. The build does not loop indefinitely and passes testFSM on both GCC and Clang jobs. I'll rewrite the branch and submit a patch for review on the next days.