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>