Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions roseus/roseus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1190,12 +1190,14 @@ pointer ROSEUS_SERVICE_CALL(register context *ctx,int n,pointer *argv)
}
vpop(); // pop response._message
vpop(); // pop request._message
if ( ! bSuccess ) {
if ( bSuccess ) {
return (response._message);
}
else {
ROS_ERROR("attempted to call service %s, but failed ",
ros::names::resolve(service).c_str());
return (NIL);
}

return (response._message);
}

pointer ROSEUS_ADVERTISE_SERVICE(register context *ctx,int n,pointer *argv)
Expand Down
2 changes: 1 addition & 1 deletion roseus/test/add-two-ints-client.l
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
(1 (setq res (ros::service-call "add_two_ints" req nil)))
(2 (setq res (ros::service-call "add_two_ints" req))))
(setq after (ros::time-now))
(ros::ros-info "~d + ~d = ~d~ (~A sec)" (send req :a) (send req :b) (send res :sum) (send (ros::time- after before) :to-sec))
(ros::ros-info "~d + ~d = ~A~ (~A sec)" (send req :a) (send req :b) (if res (send res :sum)) (send (ros::time- after before) :to-sec))
(unix:sleep 1))


Expand Down
16 changes: 8 additions & 8 deletions roseus/test/test-add-two-ints.l
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
(warning-message 2 "Requesting ~A(~A) + ~A(~A) -> ~A(~A)~%" a (class a) b (class b) (+ a b) (class (+ a b)))
(setq req (instance roseus::AddTwoIntsRequest :init :a a :b b))
(setq res (ros::service-call "add_two_ints" req))
(assert (= (+ (send req :a) (send req :b)) (send res :sum))
(assert (and res (= (+ (send req :a) (send req :b)) (send res :sum)))
(format nil "integration failure (~A+~A)=~A(~A)/=~A(~A)"
a b (+ a b) (class (+ a b)) (send res :sum) (class (send res :sum))))
a b (+ a b) (class (+ a b)) (if res (send res :sum)) (class (if res (send res :sum)))))
(sys::gc)
)))

Expand All @@ -47,14 +47,14 @@
(setq res (ros::service-call "add_two_ints" req))
;; https://github.com/ros/ros_comm/issues/1976
;; service call sometimes fail
(when (not (= (+ (send req :a) (send req :b)) (send res :sum)))
(when (not (and res (= (+ (send req :a) (send req :b)) (send res :sum))))
(incf service-call-error)
(warning-message 3 (format nil "[~A] integration failure (~A+~A)=~A(~A)/=~A(~A)~%"
service-call-error
a b (+ a b) (class (+ a b)) (send res :sum) (class (send res :sum)))))
(assert (or (< service-call-error 5) (= (+ (send req :a) (send req :b)) (send res :sum)))
a b (+ a b) (class (+ a b)) (if res (send res :sum)) (if res (class (send res :sum))))))
(assert (or (< service-call-error 5) (and res (= (+ (send req :a) (send req :b)) (send res :sum))))
(format nil "integration failure ~A times ... (~A+~A)=~A(~A)/=~A(~A)"
service-call-error a b (+ a b) (class (+ a b)) (send res :sum) (class (send res :sum))))
service-call-error a b (+ a b) (class (+ a b)) (if res (send res :sum)) (if res (class (send res :sum)))))
(sys::gc)
)))

Expand All @@ -67,9 +67,9 @@
(ros::ros-info "Requesting ~A(~A) + ~A(~A) -> ~A(~A)" a (class a) b (class b) (+ a b) (class (+ a b)))
(setq req (instance roseus::AddTwoIntsRequest :init :a a :b b))
(setq res (ros::service-call "add_two_ints" req t))
(assert (= (+ (send req :a) (send req :b)) (send res :sum))
(assert (and res (= (+ (send req :a) (send req :b)) (send res :sum)))
(format nil "integration failure (~A+~A)=~A(~A)/=~A(~A)"
a b (+ a b) (class (+ a b)) (send res :sum) (class (send res :sum))))
a b (+ a b) (class (+ a b)) (if res (send res :sum)) (if res (class (send res :sum)))))
(sys::gc)
)))

Expand Down