You can't just run the test like that. You need to:<div><br></div><div>roscd test_roscpp</div><div>rostest test/params.xml</div><div><br></div><div>Josh<br><br><div class="gmail_quote">On Fri, Oct 29, 2010 at 12:36 AM, Christian Verbeek <span dir="ltr"><<a href="mailto:verbeek@servicerobotics.eu">verbeek@servicerobotics.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div text="#000000" bgcolor="#ffffff">
Josh,<br>
<br>
the test fails<br>
<br>
verbeek@rec-laptop3:~$ rosrun test_roscpp param<br>
parameter_validation params param_update_test<br>
verbeek@rec-laptop3:~$ rosrun test_roscpp params<br>
[==========] Running 17 tests from 1 test case.<br>
[----------] Global test environment set-up.<br>
[----------] 17 tests from Params<br>
[ RUN ] Params.allParamTypes<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:53:
Failure<br>
Value of: param::get( "string", string_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:54:
Failure<br>
Value of: string_param == "test"<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:57:
Failure<br>
Value of: param::get( "int", int_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:58:
Failure<br>
Value of: int_param == 10<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:61:
Failure<br>
Value of: param::get( "double", double_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:62:
Failure<br>
Value of: 10.5<br>
Expected: double_param<br>
Which is: 0<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:65:
Failure<br>
Value of: param::get( "bool", bool_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:66:
Failure<br>
Value of: bool_param<br>
Actual: true<br>
Expected: false<br>
[ FAILED ] Params.allParamTypes<br>
[ RUN ] Params.setThenGetString<br>
[ERROR] [1288337135.593725579]: [setParam] Failed to contact master
at [<a href="http://192.168.1.15:11311" target="_blank">192.168.1.15:11311</a>]. Retrying...<br>
^C<br>
verbeek@rec-laptop3:~$ rosrun test_roscpp params<br>
[==========] Running 17 tests from 1 test case.<br>
[----------] Global test environment set-up.<br>
[----------] 17 tests from Params<br>
[ RUN ] Params.allParamTypes<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:53:
Failure<br>
Value of: param::get( "string", string_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:54:
Failure<br>
Value of: string_param == "test"<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:57:
Failure<br>
Value of: param::get( "int", int_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:58:
Failure<br>
Value of: int_param == 10<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:61:
Failure<br>
Value of: param::get( "double", double_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:62:
Failure<br>
Value of: 10.5<br>
Expected: double_param<br>
Which is: 0<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:65:
Failure<br>
Value of: param::get( "bool", bool_param )<br>
Actual: false<br>
Expected: true<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:66:
Failure<br>
Value of: bool_param<br>
Actual: true<br>
Expected: false<br>
[ FAILED ] Params.allParamTypes<br>
[ RUN ] Params.setThenGetString<br>
[ OK ] Params.setThenGetString<br>
[ RUN ] Params.setThenGetStringCached<br>
[ OK ] Params.setThenGetStringCached<br>
[ RUN ] Params.setThenGetStringCachedNodeHandle<br>
[ OK ] Params.setThenGetStringCachedNodeHandle<br>
[ RUN ] Params.setThenGetCString<br>
[ OK ] Params.setThenGetCString<br>
[ RUN ] Params.setThenGetInt<br>
[ OK ] Params.setThenGetInt<br>
[ RUN ] Params.unknownParam<br>
[ OK ] Params.unknownParam<br>
[ RUN ] Params.deleteParam<br>
[ OK ] Params.deleteParam<br>
[ RUN ] Params.hasParam<br>
/tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/test/test_roscpp/src/params.cpp:132:
Failure<br>
Value of: param::has( "string" )<br>
Actual: false<br>
Expected: true<br>
[ FAILED ] Params.hasParam<br>
[ RUN ] Params.setIntDoubleGetInt<br>
[ OK ] Params.setIntDoubleGetInt<br>
[ RUN ] Params.getIntAsDouble<br>
[ OK ] Params.getIntAsDouble<br>
[ RUN ] Params.getDoubleAsInt<br>
[ OK ] Params.getDoubleAsInt<br>
[ RUN ] Params.searchParam<br>
[ OK ] Params.searchParam<br>
[ RUN ] Params.searchParamNodeHandle<br>
[ OK ] Params.searchParamNodeHandle<br>
[ RUN ] Params.searchParamNodeHandleWithRemapping<br>
[ OK ] Params.searchParamNodeHandleWithRemapping<br>
[ RUN ] Params.getMissingXmlRpcValueParameterCachedTwice<br>
[ OK ] Params.getMissingXmlRpcValueParameterCachedTwice<br>
[ RUN ] Params.doublePrecision<br>
[ OK ] Params.doublePrecision<br>
[----------] Global test environment tear-down<br>
[==========] 17 tests from 1 test case ran.<br>
[ PASSED ] 15 tests.<br>
[ FAILED ] 2 tests, listed below:<br>
[ FAILED ] Params.allParamTypes<br>
[ FAILED ] Params.hasParam<br>
<br>
2 FAILED TESTS<div><div></div><div class="h5"><br>
<blockquote type="cite">Do you have a small test-case that fails that I could
try? We have a test-case for exactly this:
<div><br>
</div>
<div>
<div> double double_param = 0.0;</div>
<div> EXPECT_TRUE( param::get( "double", double_param ) );</div>
<div> EXPECT_DOUBLE_EQ( double_param, 10.5 );</div>
<div><br>
</div>
<div>Does the params test in test_roscpp also fail?</div>
<div><br>
</div>
<div>Josh</div>
<br>
<div class="gmail_quote">On Thu, Oct 28, 2010 at 5:09 AM,
Christian Verbeek <span dir="ltr"><<a href="mailto:verbeek@servicerobotics.eu" target="_blank">verbeek@servicerobotics.eu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">getParam(const std::string &key,
double &d)<br>
<br>
returns only the integer part of the parameter.<br>
<br>
ros::NodeHandle nh( "~" );<br>
double dvalue;<br>
nh.getParam( "key", dvalue );<br>
<br>
dvalue=0 // in the launch file 0.2<br>
dvalue=1 // in the launch file 1.5<br>
...<br>
<br>
in /opt/ros/cturtle/ros/core/roscpp/src/libros/param.cpp<br>
I printed the XmlRpcValue and this gives me<br>
<br>
<value><double>0</double></value><br>
<value><double>1</double></value><br>
<br>
Whats going wrong? Any ideas?<br>
<br>
rosparam get key<br>
returns 0.200000000000000001 or 1.5<br>
<br>
so the values in the parameter server are correct.<br>
<br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</blockquote>
</div>
<br>
</div>
<pre><fieldset></fieldset>
_______________________________________________
ros-users mailing list
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br></div>