test
src
wait_for_message.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2008, Willow Garage, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of Willow Garage, Inc. nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
/* Author: Josh Faust */
31
32
#include <string>
33
#include <sstream>
34
#include <fstream>
35
36
#include <gtest/gtest.h>
37
38
#include <
time.h
>
39
#include <stdlib.h>
40
41
#include "
ros/ros.h
"
42
#include <test_roscpp/TestArray.h>
43
44
using namespace
ros
;
45
using namespace
test_roscpp
;
46
47
TEST
(Roscpp, waitForMessage)
48
{
49
ros::NodeHandle
nh;
50
ros::Publisher
pub = nh.
advertise
<TestArray>(
"test"
, 1,
true
);
51
pub.
publish
(TestArray());
52
TestArrayConstPtr msg = topic::waitForMessage<TestArray>(
"test"
);
53
ASSERT_TRUE(msg);
54
}
55
56
TEST
(Roscpp, waitForMessageWithTimeout)
57
{
58
ros::NodeHandle
nh;
59
60
ros::Time
start
=
ros::Time::now
();
61
TestArrayConstPtr msg = topic::waitForMessage<TestArray>(
"test"
,
ros::Duration
(1.0));
62
ros::Time
end =
ros::Time::now
();
63
ros::Duration
dur = end -
start
;
64
ASSERT_GE(dur,
ros::Duration
(1.0));
65
ASSERT_FALSE(msg);
66
}
67
68
int
main
(
int
argc,
char
** argv)
69
{
70
testing::InitGoogleTest(&argc, argv);
71
ros::init
(argc, argv,
"wait_for_message"
);
72
73
ros::NodeHandle
nh;
74
75
return
RUN_ALL_TESTS();
76
}
77
ros::Publisher
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
test_roscpp
Definition:
generated_messages.cpp:58
ros
ros.h
time.h
ros::Publisher::publish
void publish(const boost::shared_ptr< M > &message) const
ros::NodeHandle::advertise
Publisher advertise(AdvertiseOptions &ops)
main
int main(int argc, char **argv)
Definition:
wait_for_message.cpp:68
TEST
TEST(Roscpp, waitForMessage)
Definition:
wait_for_message.cpp:47
ros::start
ROSCPP_DECL void start()
ros::Time
ros::Duration
ros::NodeHandle
ros::Time::now
static Time now()
test_roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas
, Jacob Perron
autogenerated on Sat Sep 14 2024 02:59:57