Skip to content

Commit

Permalink
Merge pull request #552 from k-okada/check_536
Browse files Browse the repository at this point in the history
add test to check numbers in node name (#536)
  • Loading branch information
k-okada authored Dec 11, 2017
2 parents d4127cc + c8ecdfc commit 35a5042
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 1 deletion.
1 change: 1 addition & 0 deletions roseus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ if(CATKIN_ENABLE_TESTING)
add_rostest(test/test-disconnect.test)
add_rostest(test/test-multi-queue.test)
add_rostest(test/test-namespace.test)
add_rostest(test/test-nodename.test)
add_rostest(test/test-parameter.test)
add_rostest(test/test-anonymous.test)
add_rostest(test/test-timer.test)
Expand Down
3 changes: 2 additions & 1 deletion roseus/roseus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,8 +546,9 @@ pointer ROSEUS(register context *ctx,int n,pointer *argv)
}
} else error(E_NOSEQ);

// convert invalid node name charactors to _, we assume it is '-'
for (unsigned int i=0; i < strlen(name); i++)
if ( ! isalpha(name[i]) ) name[i] = '_';
if ( ! (isalpha(name[i]) || isdigit(name[i])) ) name[i] = '_';

K_ROSEUS_MD5SUM = defkeyword(ctx,"MD5SUM-");
K_ROSEUS_DATATYPE = defkeyword(ctx,"DATATYPE-");
Expand Down
29 changes: 29 additions & 0 deletions roseus/test/test-nodename.l
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env roseus
;;

(require :unittest "lib/llib/unittest.l")
;; remove __name:= to use (ros::roseus node-name) to set node name, otherwise node name is defined form cargs/cargs in ROSEUS()
(print lisp::*eustop-argument*)
(setq node-name (subseq (car (member "__name:=" lisp::*eustop-argument* :test #'substringp)) (length "__name:=")))
(setq node-name (substitute #\_ #\- node-name)) ;; accept '-' in node name
(setf (elt lisp::*eustop-argument* (position "__name:=" lisp::*eustop-argument* :test #'substringp))
(format nil "noname:=~A" node-name))

;;
(ros::roseus node-name :anonymous nil)


;; start test
(init-unit-test)

(deftest test-master ()

(ros::ros-info "get-name ~A" (ros::get-name))

(assert (string= (ros::get-name) (format nil "/~A" node-name))
(format nil "~A == ~A" (ros::get-name) node-name))
)

(run-all-tests)

(exit)
19 changes: 19 additions & 0 deletions roseus/test/test-nodename.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<launch>
<!-- Valid characters are a-z, A-Z, 0-9, / and _. -->

<!-- check normal name -->
<test type="roseus" pkg="roseus" test-name="test_nodename"
args="$(find roseus)/test/test-nodename.l" />

<!-- check name with -, only for roseus -->
<test type="roseus" pkg="roseus" test-name="test-nodename"
args="$(find roseus)/test/test-nodename.l" />

<!-- check name contins number -->
<test type="roseus" pkg="roseus" test-name="test_nodename123"
args="$(find roseus)/test/test-nodename.l" />

<!-- check name contins number -->
<test type="roseus" pkg="roseus" test-name="test_nodenameABC"
args="$(find roseus)/test/test-nodename.l" />
</launch>

0 comments on commit 35a5042

Please sign in to comment.