From d77db574617da956b0d32f22453f9dc5a5c8cdfc Mon Sep 17 00:00:00 2001 From: Damon Kohler <damonkohler@google.com> Date: Fri, 18 Oct 2013 15:35:57 +0200 Subject: [PATCH] message_generation tests from rosjava_core. --- message_generation/build.gradle | 15 +- .../internal/message/Md5GeneratorTest.java | 108 +++++++ .../message/MessageInterfaceBuilderTest.java | 55 ++++ .../org/ros/internal/message/MessageTest.java | 124 ++++++++ .../message/RawMessageSerializationTest.java | 203 +++++++++++++ .../org/ros/internal/message/ServiceTest.java | 51 ++++ .../message/field/ArrayFieldTest.java | 272 ++++++++++++++++++ .../java/org/ros/message/DurationTest.java | 97 +++++++ .../test/java/org/ros/message/TimeTest.java | 102 +++++++ .../resources/geometry_msgs/msg/Point.msg | 4 + .../resources/geometry_msgs/msg/Point32.msg | 11 + .../geometry_msgs/msg/PointStamped.msg | 3 + .../resources/geometry_msgs/msg/Polygon.msg | 2 + .../geometry_msgs/msg/PolygonStamped.msg | 3 + .../test/resources/geometry_msgs/msg/Pose.msg | 3 + .../resources/geometry_msgs/msg/Pose2D.msg | 5 + .../resources/geometry_msgs/msg/PoseArray.msg | 5 + .../geometry_msgs/msg/PoseStamped.msg | 3 + .../geometry_msgs/msg/PoseWithCovariance.msg | 9 + .../msg/PoseWithCovarianceStamped.msg | 4 + .../geometry_msgs/msg/Quaternion.msg | 6 + .../geometry_msgs/msg/QuaternionStamped.msg | 4 + .../resources/geometry_msgs/msg/Transform.msg | 4 + .../geometry_msgs/msg/TransformStamped.msg | 10 + .../resources/geometry_msgs/msg/Twist.msg | 3 + .../geometry_msgs/msg/TwistStamped.msg | 3 + .../geometry_msgs/msg/TwistWithCovariance.msg | 9 + .../msg/TwistWithCovarianceStamped.msg | 3 + .../resources/geometry_msgs/msg/Vector3.msg | 5 + .../geometry_msgs/msg/Vector3Stamped.msg | 3 + .../resources/geometry_msgs/msg/Wrench.msg | 4 + .../geometry_msgs/msg/WrenchStamped.msg | 3 + .../resources/nav_msgs/action/GetMap.action | 5 + .../resources/nav_msgs/msg/GetMapAction.msg | 5 + .../nav_msgs/msg/GetMapActionFeedback.msg | 5 + .../nav_msgs/msg/GetMapActionGoal.msg | 5 + .../nav_msgs/msg/GetMapActionResult.msg | 5 + .../resources/nav_msgs/msg/GetMapFeedback.msg | 2 + .../resources/nav_msgs/msg/GetMapGoal.msg | 2 + .../resources/nav_msgs/msg/GetMapResult.msg | 2 + .../test/resources/nav_msgs/msg/GridCells.msg | 5 + .../resources/nav_msgs/msg/MapMetaData.msg | 13 + .../resources/nav_msgs/msg/OccupancyGrid.msg | 11 + .../test/resources/nav_msgs/msg/Odometry.msg | 7 + .../src/test/resources/nav_msgs/msg/Path.msg | 3 + .../test/resources/nav_msgs/srv/GetMap.srv | 3 + .../test/resources/nav_msgs/srv/GetPlan.srv | 13 + .../src/test/resources/std_msgs/msg/Bool.msg | 1 + .../src/test/resources/std_msgs/msg/Byte.msg | 1 + .../resources/std_msgs/msg/ByteMultiArray.msg | 6 + .../src/test/resources/std_msgs/msg/Char.msg | 1 + .../test/resources/std_msgs/msg/ColorRGBA.msg | 4 + .../test/resources/std_msgs/msg/Duration.msg | 1 + .../src/test/resources/std_msgs/msg/Empty.msg | 0 .../test/resources/std_msgs/msg/Float32.msg | 1 + .../std_msgs/msg/Float32MultiArray.msg | 6 + .../test/resources/std_msgs/msg/Float64.msg | 1 + .../std_msgs/msg/Float64MultiArray.msg | 6 + .../test/resources/std_msgs/msg/Header.msg | 15 + .../src/test/resources/std_msgs/msg/Int16.msg | 1 + .../std_msgs/msg/Int16MultiArray.msg | 6 + .../src/test/resources/std_msgs/msg/Int32.msg | 1 + .../std_msgs/msg/Int32MultiArray.msg | 6 + .../src/test/resources/std_msgs/msg/Int64.msg | 1 + .../std_msgs/msg/Int64MultiArray.msg | 6 + .../src/test/resources/std_msgs/msg/Int8.msg | 1 + .../resources/std_msgs/msg/Int8MultiArray.msg | 6 + .../std_msgs/msg/MultiArrayDimension.msg | 3 + .../std_msgs/msg/MultiArrayLayout.msg | 26 ++ .../test/resources/std_msgs/msg/String.msg | 1 + .../src/test/resources/std_msgs/msg/Time.msg | 1 + .../test/resources/std_msgs/msg/UInt16.msg | 1 + .../std_msgs/msg/UInt16MultiArray.msg | 6 + .../test/resources/std_msgs/msg/UInt32.msg | 1 + .../std_msgs/msg/UInt32MultiArray.msg | 6 + .../test/resources/std_msgs/msg/UInt64.msg | 1 + .../std_msgs/msg/UInt64MultiArray.msg | 6 + .../src/test/resources/std_msgs/msg/UInt8.msg | 1 + .../std_msgs/msg/UInt8MultiArray.msg | 6 + .../src/test/resources/std_srvs/srv/Empty.srv | 1 + .../test/resources/test_msgs/msg/ArrayVal.msg | 2 + .../resources/test_msgs/msg/Composite.msg | 3 + .../resources/test_msgs/msg/CompositeA.msg | 6 + .../resources/test_msgs/msg/CompositeB.msg | 4 + .../resources/test_msgs/msg/EmbedTest.msg | 6 + .../test/resources/test_msgs/msg/Floats.msg | 2 + .../test_msgs/msg/HeaderHeaderVal.msg | 2 + .../resources/test_msgs/msg/HeaderVal.msg | 2 + .../resources/test_msgs/msg/PythonKeyword.msg | 1 + .../resources/test_msgs/msg/TestArrays.msg | 10 + .../resources/test_msgs/msg/TestConstants.msg | 15 + .../test_msgs/msg/TestFixedArray.msg | 16 ++ .../resources/test_msgs/msg/TestHeader.msg | 8 + .../test_msgs/msg/TestPrimitives.msg | 21 ++ .../resources/test_msgs/msg/TestString.msg | 6 + .../test_msgs/msg/TransitiveImport.msg | 2 + .../test_msgs/msg/TransitiveMsg1.msg | 2 + .../test_msgs/msg/TransitiveMsg2.msg | 1 + .../src/test/resources/test_msgs/msg/Val.msg | 1 + .../resources/test_msgs/srv/AddTwoInts.srv | 4 + .../test_msgs/srv/ConstantsMultiplex.srv | 26 ++ .../resources/test_msgs/srv/EmptyReqSrv.srv | 2 + .../resources/test_msgs/srv/EmptyRespSrv.srv | 2 + .../test/resources/test_msgs/srv/EmptySrv.srv | 1 + .../resources/test_msgs/srv/ListReturn.srv | 7 + .../test_msgs/srv/MultipleAddTwoInts.srv | 8 + .../resources/test_msgs/srv/StringString.srv | 4 + .../resources/test_msgs/srv/TransitiveSrv.srv | 4 + 108 files changed, 1514 insertions(+), 7 deletions(-) create mode 100644 message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java create mode 100644 message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java create mode 100644 message_generation/src/test/java/org/ros/internal/message/MessageTest.java create mode 100644 message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java create mode 100644 message_generation/src/test/java/org/ros/internal/message/ServiceTest.java create mode 100644 message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java create mode 100644 message_generation/src/test/java/org/ros/message/DurationTest.java create mode 100644 message_generation/src/test/java/org/ros/message/TimeTest.java create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Point.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Point32.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PointStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Polygon.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PolygonStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Pose.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Pose2D.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PoseArray.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PoseStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovarianceStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/QuaternionStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Transform.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/TransformStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Twist.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/TwistStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovarianceStamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Vector3Stamped.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/Wrench.msg create mode 100644 message_generation/src/test/resources/geometry_msgs/msg/WrenchStamped.msg create mode 100644 message_generation/src/test/resources/nav_msgs/action/GetMap.action create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapAction.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapActionFeedback.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapActionGoal.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapActionResult.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapFeedback.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapGoal.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GetMapResult.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/GridCells.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/MapMetaData.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/OccupancyGrid.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/Odometry.msg create mode 100644 message_generation/src/test/resources/nav_msgs/msg/Path.msg create mode 100644 message_generation/src/test/resources/nav_msgs/srv/GetMap.srv create mode 100644 message_generation/src/test/resources/nav_msgs/srv/GetPlan.srv create mode 100644 message_generation/src/test/resources/std_msgs/msg/Bool.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Byte.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Char.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Duration.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Empty.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Float32.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Float64.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Header.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int16.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int32.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int64.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int8.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/String.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/Time.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt16.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt32.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt64.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt8.msg create mode 100644 message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg create mode 100644 message_generation/src/test/resources/std_srvs/srv/Empty.srv create mode 100644 message_generation/src/test/resources/test_msgs/msg/ArrayVal.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/Composite.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/CompositeA.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/CompositeB.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/EmbedTest.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/Floats.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/HeaderHeaderVal.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/HeaderVal.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/PythonKeyword.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestArrays.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestConstants.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestFixedArray.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestHeader.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestPrimitives.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TestString.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TransitiveImport.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TransitiveMsg1.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/TransitiveMsg2.msg create mode 100644 message_generation/src/test/resources/test_msgs/msg/Val.msg create mode 100644 message_generation/src/test/resources/test_msgs/srv/AddTwoInts.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/ConstantsMultiplex.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/EmptyReqSrv.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/EmptyRespSrv.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/EmptySrv.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/ListReturn.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/MultipleAddTwoInts.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/StringString.srv create mode 100644 message_generation/src/test/resources/test_msgs/srv/TransitiveSrv.srv diff --git a/message_generation/build.gradle b/message_generation/build.gradle index 1de91f4..9958016 100644 --- a/message_generation/build.gradle +++ b/message_generation/build.gradle @@ -15,13 +15,14 @@ */ dependencies { - compile "com.google.guava:guava:12.0" - compile "commons-pool:commons-pool:1.6" - compile "io.netty:netty:3.5.2.Final" - compile "org.apache.commons:com.springsource.org.apache.commons.codec:1.3.0" - compile "org.apache.commons:com.springsource.org.apache.commons.io:1.4.0" - compile "org.apache.commons:com.springsource.org.apache.commons.lang:2.4.0" - testCompile "junit:junit:4.8.2" + compile 'io.netty:netty:3.5.2.Final' + compile 'com.google.guava:guava:12.0' + compile 'org.apache.commons:com.springsource.org.apache.commons.codec:1.3.0' + compile 'org.apache.commons:com.springsource.org.apache.commons.io:1.4.0' + compile 'commons-pool:commons-pool:1.6' + compile 'org.apache.commons:com.springsource.org.apache.commons.lang:2.4.0' + compile project(':gradle_plugins') + testCompile 'junit:junit:4.8.2' } apply plugin: "application" diff --git a/message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java b/message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java new file mode 100644 index 0000000..2ff244a --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message; + +import static org.junit.Assert.assertEquals; + +import org.ros.internal.message.definition.MessageDefinitionProviderChain; + +import org.junit.Before; +import org.junit.Test; +import org.ros.internal.message.service.ServiceDefinitionResourceProvider; +import org.ros.internal.message.service.ServiceDescription; +import org.ros.internal.message.service.ServiceDescriptionFactory; +import org.ros.internal.message.topic.TopicDefinitionResourceProvider; +import org.ros.internal.message.topic.TopicDescription; +import org.ros.internal.message.topic.TopicDescriptionFactory; + +/** + * @author damonkohler@google.com (Damon Kohler) + */ +public class Md5GeneratorTest { + + private TopicDescriptionFactory topicDescriptionFactory; + private ServiceDescriptionFactory serviceDescriptionFactory; + + @Before + public void setUp() { + MessageDefinitionProviderChain messageDefinitionProviderChain = + new MessageDefinitionProviderChain(); + messageDefinitionProviderChain + .addMessageDefinitionProvider(new TopicDefinitionResourceProvider()); + messageDefinitionProviderChain + .addMessageDefinitionProvider(new ServiceDefinitionResourceProvider()); + topicDescriptionFactory = new TopicDescriptionFactory(messageDefinitionProviderChain); + serviceDescriptionFactory = new ServiceDescriptionFactory(messageDefinitionProviderChain); + } + + @Test + public void testPrimitives() { + TopicDescription topicDescription = + topicDescriptionFactory.newFromType("test_msgs/TestPrimitives"); + assertEquals("3e70f428a22c0d26ca67f87802c8e00f", topicDescription.getMd5Checksum()); + } + + @Test + public void testString() { + TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_msgs/TestString"); + assertEquals("334ff4377be93faa44ebc66d23d40fd3", topicDescription.getMd5Checksum()); + } + + @Test + public void testHeader() { + TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_msgs/TestHeader"); + assertEquals("4b5a00f536da2f756ba6aebcf795a967", topicDescription.getMd5Checksum()); + } + + @Test + public void testArrays() { + TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_msgs/TestArrays"); + assertEquals("4cc9b5e2cebe791aa3e994f5bc159eb6", topicDescription.getMd5Checksum()); + } + + @Test + public void testComposite() { + TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_msgs/Composite"); + assertEquals("d8fb6eb869ad3956b50e8737d96dc9fa", topicDescription.getMd5Checksum()); + } + + @Test + public void testOdometry() { + TopicDescription topicDescription = topicDescriptionFactory.newFromType("nav_msgs/Odometry"); + assertEquals("cd5e73d190d741a2f92e81eda573aca7", topicDescription.getMd5Checksum()); + } + + @Test + public void testEmpty() { + ServiceDescription serviceDescription = serviceDescriptionFactory.newFromType("std_srvs/Empty"); + assertEquals("d41d8cd98f00b204e9800998ecf8427e", serviceDescription.getMd5Checksum()); + } + + @Test + public void testAddTwoInts() { + ServiceDescription serviceDescription = + serviceDescriptionFactory.newFromType("test_msgs/AddTwoInts"); + assertEquals("6a2e34150c00229791cc89ff309fff21", serviceDescription.getMd5Checksum()); + } + + @Test + public void testTransitiveSrv() { + ServiceDescription serviceDescription = + serviceDescriptionFactory.newFromType("test_msgs/TransitiveSrv"); + assertEquals("8b7918ee2b81eaf825f4c70de011f6fa", serviceDescription.getMd5Checksum()); + } +} diff --git a/message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java b/message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java new file mode 100644 index 0000000..38e5316 --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2012 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; +import org.ros.internal.message.topic.TopicDefinitionResourceProvider; +import org.ros.message.MessageDeclaration; +import org.ros.message.MessageFactory; + +/** + * @author damonkohler@google.com (Damon Kohler) + */ +public class MessageInterfaceBuilderTest { + + private TopicDefinitionResourceProvider topicDefinitionResourceProvider; + private MessageFactory messageFactory; + + @Before + public void before() { + topicDefinitionResourceProvider = new TopicDefinitionResourceProvider(); + messageFactory = new DefaultMessageFactory(topicDefinitionResourceProvider); + } + + @Test + public void testDuplicateFieldNames() { + MessageInterfaceBuilder builder = new MessageInterfaceBuilder(); + builder.setPackageName("foo"); + builder.setInterfaceName("bar"); + builder.setMessageDeclaration(MessageDeclaration.of("foo/bar", "int32 foo\nint32 Foo")); + builder.setAddConstantsAndMethods(true); + String result = builder.build(messageFactory); + assertEquals("package foo;\n\n" + + "public interface bar extends org.ros.internal.message.Message {\n" + + " static final java.lang.String _TYPE = \"foo/bar\";\n" + + " static final java.lang.String _DEFINITION = \"int32 foo\\nint32 Foo\";\n" + + " int getFoo();\n" + " void setFoo(int value);\n" + "}\n", result); + } +} diff --git a/message_generation/src/test/java/org/ros/internal/message/MessageTest.java b/message_generation/src/test/java/org/ros/internal/message/MessageTest.java new file mode 100644 index 0000000..fe80bb4 --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/MessageTest.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.Lists; + +import org.junit.Before; +import org.junit.Test; +import org.ros.internal.message.topic.TopicDefinitionResourceProvider; +import org.ros.message.MessageFactory; + +/** + * @author damonkohler@google.com (Damon Kohler) + */ +public class MessageTest { + + private TopicDefinitionResourceProvider topicDefinitionResourceProvider; + private MessageFactory messageFactory; + + @Before + public void before() { + topicDefinitionResourceProvider = new TopicDefinitionResourceProvider(); + messageFactory = new DefaultMessageFactory(topicDefinitionResourceProvider); + } + + @Test + public void testCreateEmptyMessage() { + topicDefinitionResourceProvider.add("foo/foo", ""); + messageFactory.newFromType("foo/foo"); + } + + @Test + public void testCreateEmptyMessageWithBlankLines() { + topicDefinitionResourceProvider.add("foo/foo", "\n\n\n\n\n"); + messageFactory.newFromType("foo/foo"); + } + + @Test + public void testString() { + String data = "Hello, ROS!"; + RawMessage rawMessage = messageFactory.newFromType("std_msgs/String"); + rawMessage.setString("data", data); + assertEquals(data, rawMessage.getString("data")); + } + + @Test + public void testStringWithComments() { + topicDefinitionResourceProvider.add("foo/foo", "# foo\nstring data\n # string other data"); + String data = "Hello, ROS!"; + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setString("data", data); + assertEquals(data, rawMessage.getString("data")); + } + + @Test + public void testInt8() { + byte data = 42; + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Int8"); + rawMessage.setInt8("data", data); + assertEquals(data, rawMessage.getInt8("data")); + } + + @Test + public void testNestedMessage() { + topicDefinitionResourceProvider.add("foo/foo", "bar data"); + topicDefinitionResourceProvider.add("foo/bar", "int8 data"); + RawMessage fooMessage = messageFactory.newFromType("foo/foo"); + RawMessage barMessage = messageFactory.newFromType("foo/bar"); + fooMessage.setMessage("data", barMessage); + byte data = 42; + barMessage.setInt8("data", data); + assertEquals(data, fooMessage.getMessage("data").toRawMessage().getInt8("data")); + } + + @Test + public void testNestedMessageList() { + topicDefinitionResourceProvider.add("foo/foo", "bar[] data"); + topicDefinitionResourceProvider.add("foo/bar", "int8 data"); + RawMessage fooMessage = messageFactory.newFromType("foo/foo"); + RawMessage barMessage = messageFactory.newFromType("foo/bar"); + fooMessage.setMessageList("data", Lists.<Message>newArrayList(barMessage)); + byte data = 42; + barMessage.toRawMessage().setInt8("data", data); + assertEquals(data, fooMessage.getMessageList("data").get(0).toRawMessage().getInt8("data")); + } + + @Test + public void testConstantInt8() { + topicDefinitionResourceProvider.add("foo/foo", "int8 data=42"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + assertEquals(42, rawMessage.getInt8("data")); + } + + @Test + public void testConstantString() { + topicDefinitionResourceProvider.add("foo/foo", "string data=Hello, ROS! # comment "); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + assertEquals("Hello, ROS! # comment", rawMessage.getString("data")); + } + + public void testInt8List() { + topicDefinitionResourceProvider.add("foo/foo", "int8[] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + byte[] data = new byte[] { (byte) 1, (byte) 2, (byte) 3 }; + rawMessage.setInt8Array("data", data); + assertEquals(data, rawMessage.getInt8Array("data")); + } +} \ No newline at end of file diff --git a/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java b/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java new file mode 100644 index 0000000..d5bf1bb --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message; + +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.Lists; + +import org.jboss.netty.buffer.ChannelBuffer; +import org.junit.Before; +import org.junit.Test; +import org.ros.internal.message.topic.TopicDefinitionResourceProvider; +import org.ros.message.Duration; +import org.ros.message.MessageFactory; +import org.ros.message.Time; + +/** + * @author damonkohler@google.com (Damon Kohler) + */ +public class RawMessageSerializationTest { + + private TopicDefinitionResourceProvider topicDefinitionResourceProvider; + private MessageFactory messageFactory; + + @Before + public void before() { + topicDefinitionResourceProvider = new TopicDefinitionResourceProvider(); + messageFactory = new DefaultMessageFactory(topicDefinitionResourceProvider); + } + + private void checkSerializeAndDeserialize(Message message) { + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + DefaultMessageSerializer serializer = new DefaultMessageSerializer(); + serializer.serialize(message, buffer); + DefaultMessageDeserializer<RawMessage> deserializer = + new DefaultMessageDeserializer<RawMessage>(message.toRawMessage().getIdentifier(), + messageFactory); + RawMessage deserializedMessage = deserializer.deserialize(buffer); + assertTrue(message.equals(deserializedMessage)); + } + + @Test + public void testBool() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Bool"); + rawMessage.setBool("data", true); + checkSerializeAndDeserialize(rawMessage); + rawMessage.setBool("data", false); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt8() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Int8"); + rawMessage.setInt8("data", (byte) 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testUint8() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/UInt8"); + rawMessage.setUInt8("data", (byte) 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt16() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Int16"); + rawMessage.setInt16("data", (short) 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testUInt16() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/UInt16"); + rawMessage.setUInt16("data", (short) 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt32() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Int32"); + rawMessage.setInt32("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testUInt32() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/UInt32"); + rawMessage.setUInt32("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt64() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Int64"); + rawMessage.setInt64("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testUInt64() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/UInt64"); + rawMessage.setUInt64("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testFloat32() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Float32"); + rawMessage.setFloat32("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testFloat64() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Float64"); + rawMessage.setFloat64("data", 42); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testString() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/String"); + rawMessage.setString("data", "Hello, ROS!"); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testTime() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Time"); + rawMessage.setTime("data", new Time()); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testDuration() { + RawMessage rawMessage = messageFactory.newFromType("std_msgs/Duration"); + rawMessage.setDuration("data", new Duration()); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testNestedMessage() { + topicDefinitionResourceProvider.add("foo/foo", "std_msgs/String data"); + RawMessage fooMessage = messageFactory.newFromType("foo/foo"); + RawMessage stringMessage = messageFactory.newFromType("std_msgs/String"); + stringMessage.setString("data", "Hello, ROS!"); + fooMessage.setMessage("data", stringMessage); + checkSerializeAndDeserialize(fooMessage); + } + + @Test + public void testNestedMessageArray() { + topicDefinitionResourceProvider.add("foo/foo", "std_msgs/String[] data"); + RawMessage fooMessage = messageFactory.newFromType("foo/foo"); + RawMessage stringMessageA = messageFactory.newFromType("std_msgs/String"); + stringMessageA.setString("data", "Hello, ROS!"); + RawMessage stringMessageB = messageFactory.newFromType("std_msgs/String"); + stringMessageB.setString("data", "Goodbye, ROS!"); + fooMessage.setMessageList("data", Lists.<Message>newArrayList(stringMessageA, stringMessageB)); + checkSerializeAndDeserialize(fooMessage); + } + + @Test + public void testChannelBuffer() { + topicDefinitionResourceProvider.add("foo/foo", "uint8[] data"); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + buffer.writeBytes(new byte[] { 1, 2, 3, 4, 5 }); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setChannelBuffer("data", buffer); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testInt32Array() { + topicDefinitionResourceProvider.add("foo/foo", "int32[] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setInt32Array("data", new int[] { 1, 2, 3, 4, 5 }); + checkSerializeAndDeserialize(rawMessage); + } + + @Test + public void testFloat64Array() { + topicDefinitionResourceProvider.add("foo/foo", "float64[] data"); + RawMessage rawMessage = messageFactory.newFromType("foo/foo"); + rawMessage.setFloat64Array("data", new double[] { 1, 2, 3, 4, 5 }); + checkSerializeAndDeserialize(rawMessage); + } +} diff --git a/message_generation/src/test/java/org/ros/internal/message/ServiceTest.java b/message_generation/src/test/java/org/ros/internal/message/ServiceTest.java new file mode 100644 index 0000000..decb7c3 --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/ServiceTest.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message; + +import org.junit.Before; +import org.junit.Test; +import org.ros.internal.message.service.ServiceDefinitionResourceProvider; +import org.ros.internal.message.service.ServiceRequestMessageFactory; +import org.ros.internal.message.service.ServiceResponseMessageFactory; + +/** + * @author damonkohler@google.com (Damon Kohler) + */ +public class ServiceTest { + + private ServiceDefinitionResourceProvider serviceDefinitionResourceProvider; + private ServiceRequestMessageFactory serviceRequestMessageFactory; + private ServiceResponseMessageFactory serviceResponseMessageFactory; + + @Before + public void setUp() { + serviceDefinitionResourceProvider = new ServiceDefinitionResourceProvider(); + serviceDefinitionResourceProvider.add("foo/Echo", "string data\n---\nstring data"); + serviceRequestMessageFactory = + new ServiceRequestMessageFactory(serviceDefinitionResourceProvider); + serviceResponseMessageFactory = + new ServiceResponseMessageFactory(serviceDefinitionResourceProvider); + } + + @Test + public void testCreateEchoService() { + RawMessage request = serviceRequestMessageFactory.newFromType("foo/Echo"); + RawMessage response = serviceResponseMessageFactory.newFromType("foo/Echo"); + request.setString("data", "Hello, ROS!"); + response.setString("data", "Hello, ROS!"); + } +} diff --git a/message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java b/message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java new file mode 100644 index 0000000..7ebb264 --- /dev/null +++ b/message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java @@ -0,0 +1,272 @@ +/* + * Copyright (C) 2012 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.internal.message.field; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; + +import org.ros.internal.message.MessageBuffers; + +import org.jboss.netty.buffer.ChannelBuffer; +import org.junit.Test; + +/** + * The following unit tests were created by inspecting the serialization of + * array fields using the ROS Python client library. + * + * @author damonkohler@google.com (Damon Kohler) + */ +public class ArrayFieldTest { + + @Test + public void testBooleanArrayFieldVariableSize() { + BooleanArrayField field = BooleanArrayField.newVariable("foo", -1); + boolean[] value = new boolean[] { true, false, true, false }; + field.setValue(value); + assertEquals(PrimitiveFieldType.BOOL, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 4, 0, 0, 0, 1, 0, 1, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testBooleanArrayFieldFixedSize() { + BooleanArrayField field = BooleanArrayField.newVariable("foo", 4); + field.setValue(new boolean[] { true, false, true, false }); + assertEquals(PrimitiveFieldType.BOOL, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 1, 0, 1, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @SuppressWarnings("deprecation") + @Test + public void testByteArrayFieldVariableSize() { + testByteArrayFieldVariableSize(PrimitiveFieldType.INT8); + testByteArrayFieldVariableSize(PrimitiveFieldType.BYTE); + testByteArrayFieldVariableSize(PrimitiveFieldType.UINT8); + testByteArrayFieldVariableSize(PrimitiveFieldType.CHAR); + } + + private void testByteArrayFieldVariableSize(FieldType type) { + ByteArrayField field = ByteArrayField.newVariable(type, "foo", -1); + field.setValue(new byte[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 4, 0, 0, 0, 1, 2, 3, 4 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @SuppressWarnings("deprecation") + @Test + public void testByteArrayFieldFixedSize() { + testByteArrayFieldFixedSize(PrimitiveFieldType.INT8); + testByteArrayFieldFixedSize(PrimitiveFieldType.BYTE); + testByteArrayFieldFixedSize(PrimitiveFieldType.UINT8); + testByteArrayFieldFixedSize(PrimitiveFieldType.CHAR); + } + + private void testByteArrayFieldFixedSize(FieldType type) { + ByteArrayField field = ByteArrayField.newVariable(type, "foo", 4); + field.setValue(new byte[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 1, 2, 3, 4 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testDoubleArrayFieldVariableSize() { + DoubleArrayField field = DoubleArrayField.newVariable("foo", -1); + field.setValue(new double[] { 1, 2, 3, 4 }); + assertEquals(PrimitiveFieldType.FLOAT64, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = + new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 63, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 0, 8, 64, 0, 0, 0, 0, 0, 0, 16, 64 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testDoubleArrayFieldFixedSize() { + DoubleArrayField field = DoubleArrayField.newVariable("foo", 4); + field.setValue(new double[] { 1, 2, 3, 4 }); + assertEquals(PrimitiveFieldType.FLOAT64, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = + new byte[] { 0, 0, 0, 0, 0, 0, -16, 63, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 8, 64, + 0, 0, 0, 0, 0, 0, 16, 64 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testFloatArrayFieldVariableSize() { + FloatArrayField field = FloatArrayField.newVariable("foo", -1); + field.setValue(new float[] { 1, 2, 3, 4 }); + assertEquals(PrimitiveFieldType.FLOAT32, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = + new byte[] { 4, 0, 0, 0, 0, 0, -128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, -128, 64 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testFloatArrayFieldFixedSize() { + FloatArrayField field = FloatArrayField.newVariable("foo", 4); + field.setValue(new float[] { 1, 2, 3, 4 }); + assertEquals(PrimitiveFieldType.FLOAT32, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 0, 0, -128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, -128, 64 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testIntegerArrayFieldVariableSize() { + testIntegerArrayFieldVariableSize(PrimitiveFieldType.INT32); + testIntegerArrayFieldVariableSize(PrimitiveFieldType.UINT32); + } + + private void testIntegerArrayFieldVariableSize(FieldType type) { + IntegerArrayField field = IntegerArrayField.newVariable(type, "foo", -1); + field.setValue(new int[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testIntegerArrayFieldFixedSize() { + testIntegerArrayFieldFixedSize(PrimitiveFieldType.INT32); + testIntegerArrayFieldFixedSize(PrimitiveFieldType.UINT32); + } + + private void testIntegerArrayFieldFixedSize(FieldType type) { + IntegerArrayField field = IntegerArrayField.newVariable(type, "foo", 4); + field.setValue(new int[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testLongArrayFieldVariableSize() { + testLongArrayFieldVariableSize(PrimitiveFieldType.INT64); + testLongArrayFieldVariableSize(PrimitiveFieldType.UINT64); + } + + private void testLongArrayFieldVariableSize(FieldType type) { + LongArrayField field = LongArrayField.newVariable(type, "foo", -1); + field.setValue(new long[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = + new byte[] { 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testLongArrayFieldFixedSize() { + testLongArrayFieldFixedSize(PrimitiveFieldType.INT64); + testLongArrayFieldFixedSize(PrimitiveFieldType.UINT64); + } + + private void testLongArrayFieldFixedSize(FieldType type) { + LongArrayField field = LongArrayField.newVariable(type, "foo", 4); + field.setValue(new long[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = + new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testShortArrayFieldVariableSize() { + testShortArrayFieldVariableSize(PrimitiveFieldType.INT16); + testShortArrayFieldVariableSize(PrimitiveFieldType.UINT16); + } + + private void testShortArrayFieldVariableSize(FieldType type) { + ShortArrayField field = ShortArrayField.newVariable(type, "foo", -1); + field.setValue(new short[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 4, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } + + @Test + public void testShortArrayFieldFixedSize() { + testShortArrayFieldFixedSize(PrimitiveFieldType.INT16); + testShortArrayFieldFixedSize(PrimitiveFieldType.UINT16); + } + + private void testShortArrayFieldFixedSize(FieldType type) { + ShortArrayField field = ShortArrayField.newVariable(type, "foo", 4); + field.setValue(new short[] { 1, 2, 3, 4 }); + assertEquals(type, field.getType()); + ChannelBuffer buffer = MessageBuffers.dynamicBuffer(); + field.serialize(buffer); + byte[] expected = new byte[] { 1, 0, 2, 0, 3, 0, 4, 0 }; + byte[] actual = new byte[buffer.readableBytes()]; + buffer.readBytes(actual); + assertArrayEquals(expected, actual); + } +} diff --git a/message_generation/src/test/java/org/ros/message/DurationTest.java b/message_generation/src/test/java/org/ros/message/DurationTest.java new file mode 100644 index 0000000..fb337eb --- /dev/null +++ b/message_generation/src/test/java/org/ros/message/DurationTest.java @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.message; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +/** + * @author kwc@willowgarage.com (Ken Conley) + */ +public class DurationTest { + + @Before + public void setUp() { + } + + @Test + public void testConstructor() { + // Test no args constructor. + Duration t = new Duration(); + assertEquals(0, t.nsecs); + assertEquals(0, t.secs); + + // Test secs/nsecs constructor with no normalization. + t = new Duration(1, 2); + assertEquals(1, t.secs); + assertEquals(2, t.nsecs); + + // Test secs/nsecs constructor with normalization. + t = new Duration(2, -1); + assertEquals(1, t.secs); + assertEquals(1000000000 - 1, t.nsecs); + + t = new Duration(2, 1000000000 + 2); + assertEquals(3, t.secs); + assertEquals(2, t.nsecs); + } + + @Test + public void testNormalize() { + Duration d = new Duration(0, 0); + d.secs = 1; + d.nsecs = 1000000000; + d.normalize(); + assertEquals(2, d.secs); + assertEquals(0, d.nsecs); + + d.secs = 1; + d.nsecs = -1; + d.normalize(); + assertEquals(0, d.secs); + assertEquals(1000000000-1, d.nsecs); + } + + @Test + public void testIsZero() { + assertTrue(new Duration(0, 0).isZero()); + assertFalse(new Duration(1, 0).isZero()); + assertFalse(new Duration(0, 1).isZero()); + } + + @Test + public void testComparable() { + assertEquals(0, new Duration(0, 0).compareTo(new Duration(0, 0))); + assertEquals(0, new Duration(1, 0).compareTo(new Duration(1, 0))); + + assertTrue(new Duration(0, 0).compareTo(new Duration(0, -1)) > 0); + assertTrue(new Duration(0, -1).compareTo(new Duration(0, 0)) < 0); + + assertTrue(new Duration(0, 0).compareTo(new Duration(-1, 0)) > 0); + assertTrue(new Duration(-1, 0).compareTo(new Duration(0, 0)) < 0); + + assertTrue(new Duration(1, 0).compareTo(new Duration(0, 0)) > 0); + assertTrue(new Duration(0, 0).compareTo(new Duration(1, 0)) < 0); + + assertTrue(new Duration(0, 1).compareTo(new Duration(0, 0)) > 0); + assertTrue(new Duration(0, 0).compareTo(new Duration(0, 1)) < 0); + } +} \ No newline at end of file diff --git a/message_generation/src/test/java/org/ros/message/TimeTest.java b/message_generation/src/test/java/org/ros/message/TimeTest.java new file mode 100644 index 0000000..5ef0c4d --- /dev/null +++ b/message_generation/src/test/java/org/ros/message/TimeTest.java @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package org.ros.message; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +/** + * @author kwc@willowgarage.com (Ken Conley) + */ +public class TimeTest { + + @Before + public void setUp() { + } + + @Test + public void testConstructor() { + // Test no args constructor. + Time t = new Time(); + assertEquals(0, t.nsecs); + assertEquals(0, t.secs); + + // Test secs/nsecs constructor with no normalization. + t = new Time(1, 2); + assertEquals(1, t.secs); + assertEquals(2, t.nsecs); + + // Test secs/nsecs constructor with normalization. + t = new Time(2, -1); + assertEquals(1, t.secs); + assertEquals(1000000000 - 1, t.nsecs); + + t = new Time(2, 1000000000 + 2); + assertEquals(3, t.secs); + assertEquals(2, t.nsecs); + } + + @Test + public void testFromMillis() { + assertEquals(new Time(0, 0), Time.fromMillis(0)); + assertEquals(new Time(0, 1000000), Time.fromMillis(1)); + assertEquals(new Time(1, 0), Time.fromMillis(1000)); + assertEquals(new Time(10, 0), Time.fromMillis(10000)); + assertEquals(new Time(1, 1000000), Time.fromMillis(1001)); + assertEquals(new Time(1, 11000000), Time.fromMillis(1011)); + } + + @Test + public void testNormalize() { + Time t = new Time(0, 0); + t.secs = 1; + t.nsecs = 1000000000; + t.normalize(); + assertEquals(2, t.secs); + assertEquals(0, t.nsecs); + + t.secs = 1; + t.nsecs = -1; + t.normalize(); + assertEquals(0, t.secs); + assertEquals(1000000000 - 1, t.nsecs); + } + + @Test + public void testIsZero() { + assertTrue(new Time(0, 0).isZero()); + assertFalse(new Time(1, 0).isZero()); + assertFalse(new Time(0, 1).isZero()); + } + + @Test + public void testComparable() { + assertEquals(0, new Time(0, 0).compareTo(new Time(0, 0))); + assertEquals(0, new Time(1, 1).compareTo(new Time(1, 1))); + assertTrue(new Time(0, 1).compareTo(new Time(0, 0)) > 0); + + assertEquals(-1, new Time(0, 0).compareTo(new Time(0, 1))); + assertTrue(new Time(0, 0).compareTo(new Time(0, 1)) < 0); + assertTrue(new Time(1, 0).compareTo(new Time(0, 0)) > 0); + assertTrue(new Time(0, 0).compareTo(new Time(1, 0)) < 0); + + } +} \ No newline at end of file diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Point.msg b/message_generation/src/test/resources/geometry_msgs/msg/Point.msg new file mode 100644 index 0000000..f1d3a71 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Point.msg @@ -0,0 +1,4 @@ +# This contains the position of a point in free space +float64 x +float64 y +float64 z diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Point32.msg b/message_generation/src/test/resources/geometry_msgs/msg/Point32.msg new file mode 100644 index 0000000..52af0a2 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Point32.msg @@ -0,0 +1,11 @@ +# This contains the position of a point in free space(with 32 bits of precision). +# It is recommeded to use Point wherever possible instead of Point32. +# +# This recommendation is to promote interoperability. +# +# This message is designed to take up less space when sending +# lots of points at once, as in the case of a PointCloud. + +float32 x +float32 y +float32 z \ No newline at end of file diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PointStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/PointStamped.msg new file mode 100644 index 0000000..82c3437 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PointStamped.msg @@ -0,0 +1,3 @@ +# This represents a Point with reference coordinate frame and timestamp +Header header +Point point diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Polygon.msg b/message_generation/src/test/resources/geometry_msgs/msg/Polygon.msg new file mode 100644 index 0000000..c081fc4 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Polygon.msg @@ -0,0 +1,2 @@ +#A specification of a polygon where the first and last points are assumed to be connected +Point32[] points diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PolygonStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/PolygonStamped.msg new file mode 100644 index 0000000..c9ee413 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PolygonStamped.msg @@ -0,0 +1,3 @@ +# This represents a Polygon with reference coordinate frame and timestamp +Header header +Polygon polygon diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Pose.msg b/message_generation/src/test/resources/geometry_msgs/msg/Pose.msg new file mode 100644 index 0000000..b81919c --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Pose.msg @@ -0,0 +1,3 @@ +# A representation of pose in free space, composed of postion and orientation. +Point position +Quaternion orientation diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Pose2D.msg b/message_generation/src/test/resources/geometry_msgs/msg/Pose2D.msg new file mode 100644 index 0000000..e9555b4 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Pose2D.msg @@ -0,0 +1,5 @@ +# This expresses a position and orientation on a 2D manifold. + +float64 x +float64 y +float64 theta \ No newline at end of file diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PoseArray.msg b/message_generation/src/test/resources/geometry_msgs/msg/PoseArray.msg new file mode 100644 index 0000000..4fe0cec --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PoseArray.msg @@ -0,0 +1,5 @@ +# An array of poses with a header for global reference. + +Header header + +Pose[] poses diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PoseStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/PoseStamped.msg new file mode 100644 index 0000000..7e3cdc5 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PoseStamped.msg @@ -0,0 +1,3 @@ +# A Pose with reference coordinate frame and timestamp +Header header +Pose pose diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg b/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg new file mode 100644 index 0000000..86bc45a --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg @@ -0,0 +1,9 @@ +# This represents a pose in free space with uncertainty. + +Pose pose + +# Row-major representation of the 6x6 covariance matrix +# The orientation parameters use a fixed-axis representation. +# In order, the parameters are: +# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis) +float64[36] covariance diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovarianceStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovarianceStamped.msg new file mode 100644 index 0000000..cdc306b --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovarianceStamped.msg @@ -0,0 +1,4 @@ +# This expresses an estimated pose with a reference coordinate frame and timestamp + +Header header +PoseWithCovariance pose diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg b/message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg new file mode 100644 index 0000000..9f4fde2 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg @@ -0,0 +1,6 @@ +# This represents an orientation in free space in quaternion form. + +float64 x +float64 y +float64 z +float64 w diff --git a/message_generation/src/test/resources/geometry_msgs/msg/QuaternionStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/QuaternionStamped.msg new file mode 100644 index 0000000..62c2fdf --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/QuaternionStamped.msg @@ -0,0 +1,4 @@ +# This represents an orientation with reference coordinate frame and timestamp. + +Header header +Quaternion quaternion diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Transform.msg b/message_generation/src/test/resources/geometry_msgs/msg/Transform.msg new file mode 100644 index 0000000..f605c85 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Transform.msg @@ -0,0 +1,4 @@ +# This represents the transform between two coordinate frames in free space. + +Vector3 translation +Quaternion rotation diff --git a/message_generation/src/test/resources/geometry_msgs/msg/TransformStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/TransformStamped.msg new file mode 100644 index 0000000..c28ae8a --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/TransformStamped.msg @@ -0,0 +1,10 @@ +# This expresses a transform from coordinate frame header.frame_id +# to the coordinate frame child_frame_id +# +# This message is mostly used by the +# <a href="http://www.ros.org/wiki/tf">tf</a> package. +# See its documentation for more information. + +Header header +string child_frame_id # the frame id of the child frame +Transform transform diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Twist.msg b/message_generation/src/test/resources/geometry_msgs/msg/Twist.msg new file mode 100644 index 0000000..7012c2d --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Twist.msg @@ -0,0 +1,3 @@ +# This expresses velocity in free space broken into its linear and angular parts. +Vector3 linear +Vector3 angular diff --git a/message_generation/src/test/resources/geometry_msgs/msg/TwistStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/TwistStamped.msg new file mode 100644 index 0000000..53b8253 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/TwistStamped.msg @@ -0,0 +1,3 @@ +# A twist with reference coordinate frame and timestamp +Header header +Twist twist diff --git a/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg b/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg new file mode 100644 index 0000000..111a19c --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg @@ -0,0 +1,9 @@ +# This expresses velocity in free space with uncertainty. + +Twist twist + +# Row-major representation of the 6x6 covariance matrix +# The orientation parameters use a fixed-axis representation. +# In order, the parameters are: +# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis) +float64[36] covariance diff --git a/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovarianceStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovarianceStamped.msg new file mode 100644 index 0000000..aba6ebe --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovarianceStamped.msg @@ -0,0 +1,3 @@ +# This represents an estimated twist with reference coordinate frame and timestamp. +Header header +TwistWithCovariance twist diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg b/message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg new file mode 100644 index 0000000..00dd4cb --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg @@ -0,0 +1,5 @@ +# This represents a vector in free space. + +float64 x +float64 y +float64 z \ No newline at end of file diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Vector3Stamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/Vector3Stamped.msg new file mode 100644 index 0000000..e68eb06 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Vector3Stamped.msg @@ -0,0 +1,3 @@ +# This represents a Vector3 with reference coordinate frame and timestamp +Header header +Vector3 vector diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Wrench.msg b/message_generation/src/test/resources/geometry_msgs/msg/Wrench.msg new file mode 100644 index 0000000..41201d4 --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/Wrench.msg @@ -0,0 +1,4 @@ +# This represents force in free space, separated into +# its linear and angular parts. +Vector3 force +Vector3 torque diff --git a/message_generation/src/test/resources/geometry_msgs/msg/WrenchStamped.msg b/message_generation/src/test/resources/geometry_msgs/msg/WrenchStamped.msg new file mode 100644 index 0000000..dad910e --- /dev/null +++ b/message_generation/src/test/resources/geometry_msgs/msg/WrenchStamped.msg @@ -0,0 +1,3 @@ +# A wrench with reference coordinate frame and timestamp +Header header +Wrench wrench diff --git a/message_generation/src/test/resources/nav_msgs/action/GetMap.action b/message_generation/src/test/resources/nav_msgs/action/GetMap.action new file mode 100644 index 0000000..080e54f --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/action/GetMap.action @@ -0,0 +1,5 @@ +# Get the map as a nav_msgs/OccupancyGrid +--- +nav_msgs/OccupancyGrid map +--- +# no feedback \ No newline at end of file diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapAction.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapAction.msg new file mode 100644 index 0000000..1cbd69c --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapAction.msg @@ -0,0 +1,5 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== + +GetMapActionGoal action_goal +GetMapActionResult action_result +GetMapActionFeedback action_feedback diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapActionFeedback.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionFeedback.msg new file mode 100644 index 0000000..4853601 --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionFeedback.msg @@ -0,0 +1,5 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== + +Header header +actionlib_msgs/GoalStatus status +GetMapFeedback feedback diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapActionGoal.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionGoal.msg new file mode 100644 index 0000000..8782a1e --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionGoal.msg @@ -0,0 +1,5 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== + +Header header +actionlib_msgs/GoalID goal_id +GetMapGoal goal diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapActionResult.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionResult.msg new file mode 100644 index 0000000..707d61d --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapActionResult.msg @@ -0,0 +1,5 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== + +Header header +actionlib_msgs/GoalStatus status +GetMapResult result diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapFeedback.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapFeedback.msg new file mode 100644 index 0000000..8eb4d48 --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapFeedback.msg @@ -0,0 +1,2 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== +# no feedback diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapGoal.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapGoal.msg new file mode 100644 index 0000000..6354ac1 --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapGoal.msg @@ -0,0 +1,2 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== +# Get the map as a nav_msgs/OccupancyGrid diff --git a/message_generation/src/test/resources/nav_msgs/msg/GetMapResult.msg b/message_generation/src/test/resources/nav_msgs/msg/GetMapResult.msg new file mode 100644 index 0000000..b8c9dcd --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GetMapResult.msg @@ -0,0 +1,2 @@ +# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== +nav_msgs/OccupancyGrid map diff --git a/message_generation/src/test/resources/nav_msgs/msg/GridCells.msg b/message_generation/src/test/resources/nav_msgs/msg/GridCells.msg new file mode 100644 index 0000000..2c92894 --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/GridCells.msg @@ -0,0 +1,5 @@ +#an array of cells in a 2D grid +Header header +float32 cell_width +float32 cell_height +geometry_msgs/Point[] cells diff --git a/message_generation/src/test/resources/nav_msgs/msg/MapMetaData.msg b/message_generation/src/test/resources/nav_msgs/msg/MapMetaData.msg new file mode 100644 index 0000000..398fbdd --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/MapMetaData.msg @@ -0,0 +1,13 @@ +# This hold basic information about the characterists of the OccupancyGrid + +# The time at which the map was loaded +time map_load_time +# The map resolution [m/cell] +float32 resolution +# Map width [cells] +uint32 width +# Map height [cells] +uint32 height +# The origin of the map [m, m, rad]. This is the real-world pose of the +# cell (0,0) in the map. +geometry_msgs/Pose origin \ No newline at end of file diff --git a/message_generation/src/test/resources/nav_msgs/msg/OccupancyGrid.msg b/message_generation/src/test/resources/nav_msgs/msg/OccupancyGrid.msg new file mode 100644 index 0000000..f2e79bd --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/OccupancyGrid.msg @@ -0,0 +1,11 @@ +# This represents a 2-D grid map, in which each cell represents the probability of +# occupancy. + +Header header + +#MetaData for the map +MapMetaData info + +# The map data, in row-major order, starting with (0,0). Occupancy +# probabilities are in the range [0,100]. Unknown is -1. +int8[] data diff --git a/message_generation/src/test/resources/nav_msgs/msg/Odometry.msg b/message_generation/src/test/resources/nav_msgs/msg/Odometry.msg new file mode 100644 index 0000000..73578ed --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/Odometry.msg @@ -0,0 +1,7 @@ +# This represents an estimate of a position and velocity in free space. +# The pose in this message should be specified in the coordinate frame given by header.frame_id. +# The twist in this message should be specified in the coordinate frame given by the child_frame_id +Header header +string child_frame_id +geometry_msgs/PoseWithCovariance pose +geometry_msgs/TwistWithCovariance twist diff --git a/message_generation/src/test/resources/nav_msgs/msg/Path.msg b/message_generation/src/test/resources/nav_msgs/msg/Path.msg new file mode 100644 index 0000000..979cb7d --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/msg/Path.msg @@ -0,0 +1,3 @@ +#An array of poses that represents a Path for a robot to follow +Header header +geometry_msgs/PoseStamped[] poses diff --git a/message_generation/src/test/resources/nav_msgs/srv/GetMap.srv b/message_generation/src/test/resources/nav_msgs/srv/GetMap.srv new file mode 100644 index 0000000..6bd8e4a --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/srv/GetMap.srv @@ -0,0 +1,3 @@ +# Get the map as a nav_msgs/OccupancyGrid +--- +nav_msgs/OccupancyGrid map diff --git a/message_generation/src/test/resources/nav_msgs/srv/GetPlan.srv b/message_generation/src/test/resources/nav_msgs/srv/GetPlan.srv new file mode 100644 index 0000000..f5c23ed --- /dev/null +++ b/message_generation/src/test/resources/nav_msgs/srv/GetPlan.srv @@ -0,0 +1,13 @@ +# Get a plan from the current position to the goal Pose + +# The start pose for the plan +geometry_msgs/PoseStamped start + +# The final pose of the goal position +geometry_msgs/PoseStamped goal + +# If the goal is obstructed, how many meters the planner can +# relax the constraint in x and y before failing. +float32 tolerance +--- +nav_msgs/Path plan diff --git a/message_generation/src/test/resources/std_msgs/msg/Bool.msg b/message_generation/src/test/resources/std_msgs/msg/Bool.msg new file mode 100644 index 0000000..f7cabb9 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Bool.msg @@ -0,0 +1 @@ +bool data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/Byte.msg b/message_generation/src/test/resources/std_msgs/msg/Byte.msg new file mode 100644 index 0000000..d993b34 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Byte.msg @@ -0,0 +1 @@ +byte data diff --git a/message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg new file mode 100644 index 0000000..bb00bd3 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +byte[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Char.msg b/message_generation/src/test/resources/std_msgs/msg/Char.msg new file mode 100644 index 0000000..39a1d46 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Char.msg @@ -0,0 +1 @@ +char data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg b/message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg new file mode 100644 index 0000000..182dbc8 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg @@ -0,0 +1,4 @@ +float32 r +float32 g +float32 b +float32 a diff --git a/message_generation/src/test/resources/std_msgs/msg/Duration.msg b/message_generation/src/test/resources/std_msgs/msg/Duration.msg new file mode 100644 index 0000000..f13931e --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Duration.msg @@ -0,0 +1 @@ +duration data diff --git a/message_generation/src/test/resources/std_msgs/msg/Empty.msg b/message_generation/src/test/resources/std_msgs/msg/Empty.msg new file mode 100644 index 0000000..e69de29 diff --git a/message_generation/src/test/resources/std_msgs/msg/Float32.msg b/message_generation/src/test/resources/std_msgs/msg/Float32.msg new file mode 100644 index 0000000..e897405 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Float32.msg @@ -0,0 +1 @@ +float32 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg new file mode 100644 index 0000000..9158308 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +float32[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Float64.msg b/message_generation/src/test/resources/std_msgs/msg/Float64.msg new file mode 100644 index 0000000..cd09d39 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Float64.msg @@ -0,0 +1 @@ +float64 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg new file mode 100644 index 0000000..0a13b92 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +float64[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Header.msg b/message_generation/src/test/resources/std_msgs/msg/Header.msg new file mode 100644 index 0000000..b2f34f6 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Header.msg @@ -0,0 +1,15 @@ +# Standard metadata for higher-level stamped data types. +# This is generally used to communicate timestamped data +# in a particular coordinate frame. +# +# sequence ID: consecutively increasing ID +uint32 seq +#Two-integer timestamp that is expressed as: +# * stamp.secs: seconds (stamp_secs) since epoch +# * stamp.nsecs: nanoseconds since stamp_secs +# time-handling sugar is provided by the client library +time stamp +#Frame this data is associated with +# 0: no frame +# 1: global frame +string frame_id diff --git a/message_generation/src/test/resources/std_msgs/msg/Int16.msg b/message_generation/src/test/resources/std_msgs/msg/Int16.msg new file mode 100644 index 0000000..c4389fa --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int16.msg @@ -0,0 +1 @@ +int16 data diff --git a/message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg new file mode 100644 index 0000000..d2ddea1 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +int16[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Int32.msg b/message_generation/src/test/resources/std_msgs/msg/Int32.msg new file mode 100644 index 0000000..0ecfe35 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int32.msg @@ -0,0 +1 @@ +int32 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg new file mode 100644 index 0000000..af60abd --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +int32[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Int64.msg b/message_generation/src/test/resources/std_msgs/msg/Int64.msg new file mode 100644 index 0000000..6961e00 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int64.msg @@ -0,0 +1 @@ +int64 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg new file mode 100644 index 0000000..f4f35e1 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +int64[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/Int8.msg b/message_generation/src/test/resources/std_msgs/msg/Int8.msg new file mode 100644 index 0000000..1e42e55 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int8.msg @@ -0,0 +1 @@ +int8 data diff --git a/message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg new file mode 100644 index 0000000..a59a372 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +int8[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg b/message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg new file mode 100644 index 0000000..0824046 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg @@ -0,0 +1,3 @@ +string label # label of given dimension +uint32 size # size of given dimension (in type units) +uint32 stride # stride of given dimension \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg b/message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg new file mode 100644 index 0000000..5437f85 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg @@ -0,0 +1,26 @@ +# The multiarray declares a generic multi-dimensional array of a +# particular data type. Dimensions are ordered from outer most +# to inner most. + +MultiArrayDimension[] dim # Array of dimension properties +uint32 data_offset # padding bytes at front of data + +# Accessors should ALWAYS be written in terms of dimension stride +# and specified outer-most dimension first. +# +# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k] +# +# A standard, 3-channel 640x480 image with interleaved color channels +# would be specified as: +# +# dim[0].label = "height" +# dim[0].size = 480 +# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image) +# dim[1].label = "width" +# dim[1].size = 640 +# dim[1].stride = 3*640 = 1920 +# dim[2].label = "channel" +# dim[2].size = 3 +# dim[2].stride = 3 +# +# multiarray(i,j,k) refers to the ith row, jth column, and kth channel. \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/String.msg b/message_generation/src/test/resources/std_msgs/msg/String.msg new file mode 100644 index 0000000..ae72173 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/String.msg @@ -0,0 +1 @@ +string data diff --git a/message_generation/src/test/resources/std_msgs/msg/Time.msg b/message_generation/src/test/resources/std_msgs/msg/Time.msg new file mode 100644 index 0000000..7f8f721 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/Time.msg @@ -0,0 +1 @@ +time data diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt16.msg b/message_generation/src/test/resources/std_msgs/msg/UInt16.msg new file mode 100644 index 0000000..87d0c44 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt16.msg @@ -0,0 +1 @@ +uint16 data diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg new file mode 100644 index 0000000..f38970b --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +uint16[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt32.msg b/message_generation/src/test/resources/std_msgs/msg/UInt32.msg new file mode 100644 index 0000000..b6c696b --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt32.msg @@ -0,0 +1 @@ +uint32 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg new file mode 100644 index 0000000..b2bb077 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +uint32[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt64.msg b/message_generation/src/test/resources/std_msgs/msg/UInt64.msg new file mode 100644 index 0000000..2eb1afa --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt64.msg @@ -0,0 +1 @@ +uint64 data \ No newline at end of file diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg new file mode 100644 index 0000000..30d0cd9 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +uint64[] data # array of data + diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt8.msg b/message_generation/src/test/resources/std_msgs/msg/UInt8.msg new file mode 100644 index 0000000..5eefd87 --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt8.msg @@ -0,0 +1 @@ +uint8 data diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg b/message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg new file mode 100644 index 0000000..31f7d6a --- /dev/null +++ b/message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg @@ -0,0 +1,6 @@ +# Please look at the MultiArrayLayout message definition for +# documentation on all multiarrays. + +MultiArrayLayout layout # specification of data layout +uint8[] data # array of data + diff --git a/message_generation/src/test/resources/std_srvs/srv/Empty.srv b/message_generation/src/test/resources/std_srvs/srv/Empty.srv new file mode 100644 index 0000000..73b314f --- /dev/null +++ b/message_generation/src/test/resources/std_srvs/srv/Empty.srv @@ -0,0 +1 @@ +--- \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/ArrayVal.msg b/message_generation/src/test/resources/test_msgs/msg/ArrayVal.msg new file mode 100644 index 0000000..4a34dd1 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/ArrayVal.msg @@ -0,0 +1,2 @@ +Val[] vals +#Val[10] vals_fixed diff --git a/message_generation/src/test/resources/test_msgs/msg/Composite.msg b/message_generation/src/test/resources/test_msgs/msg/Composite.msg new file mode 100644 index 0000000..4629d3e --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/Composite.msg @@ -0,0 +1,3 @@ +# composite message. required for testing import calculation in generators +CompositeA a +CompositeB b diff --git a/message_generation/src/test/resources/test_msgs/msg/CompositeA.msg b/message_generation/src/test/resources/test_msgs/msg/CompositeA.msg new file mode 100644 index 0000000..9f4fde2 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/CompositeA.msg @@ -0,0 +1,6 @@ +# This represents an orientation in free space in quaternion form. + +float64 x +float64 y +float64 z +float64 w diff --git a/message_generation/src/test/resources/test_msgs/msg/CompositeB.msg b/message_generation/src/test/resources/test_msgs/msg/CompositeB.msg new file mode 100644 index 0000000..fb689bc --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/CompositeB.msg @@ -0,0 +1,4 @@ +# copy of geometry_msgs/Point for testing +float64 x +float64 y +float64 z diff --git a/message_generation/src/test/resources/test_msgs/msg/EmbedTest.msg b/message_generation/src/test/resources/test_msgs/msg/EmbedTest.msg new file mode 100644 index 0000000..e1962cd --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/EmbedTest.msg @@ -0,0 +1,6 @@ +std_msgs/String str1 +std_msgs/Int32 int1 +std_msgs/Int32[] ints +Val val +Val[] vals +ArrayVal[] arrayval diff --git a/message_generation/src/test/resources/test_msgs/msg/Floats.msg b/message_generation/src/test/resources/test_msgs/msg/Floats.msg new file mode 100644 index 0000000..6bd8052 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/Floats.msg @@ -0,0 +1,2 @@ +# exact copy of rospy_tutorials/Floats, used for testing +float32[] data diff --git a/message_generation/src/test/resources/test_msgs/msg/HeaderHeaderVal.msg b/message_generation/src/test/resources/test_msgs/msg/HeaderHeaderVal.msg new file mode 100644 index 0000000..6882d7a --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/HeaderHeaderVal.msg @@ -0,0 +1,2 @@ +Header header +HeaderVal val \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/HeaderVal.msg b/message_generation/src/test/resources/test_msgs/msg/HeaderVal.msg new file mode 100644 index 0000000..91f99b2 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/HeaderVal.msg @@ -0,0 +1,2 @@ +Header header +string val \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/PythonKeyword.msg b/message_generation/src/test/resources/test_msgs/msg/PythonKeyword.msg new file mode 100644 index 0000000..0949ea8 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/PythonKeyword.msg @@ -0,0 +1 @@ +int32 yield diff --git a/message_generation/src/test/resources/test_msgs/msg/TestArrays.msg b/message_generation/src/test/resources/test_msgs/msg/TestArrays.msg new file mode 100644 index 0000000..2d7493f --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestArrays.msg @@ -0,0 +1,10 @@ +# caller_id of most recent node to send this message +string caller_id +# caller_id of the original node to send this message +string orig_caller_id + +int32[] int32_array +float32[] float32_array +time[] time_array +TestString[] test_string_array +# TODO: array of arrays diff --git a/message_generation/src/test/resources/test_msgs/msg/TestConstants.msg b/message_generation/src/test/resources/test_msgs/msg/TestConstants.msg new file mode 100644 index 0000000..344afc3 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestConstants.msg @@ -0,0 +1,15 @@ +float32 A=-123.0 +float32 B=124.0 +float64 C=125.0 +int32 X=123 +int32 Y=-123 +uint32 Z=124 +string FOO=foo +string SINGLEQUOTE='hi +string DOUBLEQUOTE="hello" there +string MULTIQUOTE="hello" 'goodbye' +string EXAMPLE="#comments" are ignored, and leading and trailing whitespace removed +string WHITESPACE= strip +string EMPTY= +bool TRUE=1 +bool FALSE=0 \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/TestFixedArray.msg b/message_generation/src/test/resources/test_msgs/msg/TestFixedArray.msg new file mode 100644 index 0000000..005aa94 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestFixedArray.msg @@ -0,0 +1,16 @@ +float32[1] f32_1 +float32[3] f32_3 +float64[1] f64_1 +float64[3] f64_3 +int8[1] i8_1 +int8[3] i8_3 +uint8[1] u8_1 +uint8[3] u8_3 +int32[1] i32_1 +int32[3] i32_3 +uint32[1] u32_1 +uint32[3] u32_3 +string[1] s_1 +string[3] s_3 +bool[1] b_1 +bool[3] b_3 \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/TestHeader.msg b/message_generation/src/test/resources/test_msgs/msg/TestHeader.msg new file mode 100644 index 0000000..22897c3 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestHeader.msg @@ -0,0 +1,8 @@ +Header header + +# caller_id of most recent node to send this message +string caller_id +# caller_id of the original node to send this message +string orig_caller_id + +byte auto_header # autoset header on response diff --git a/message_generation/src/test/resources/test_msgs/msg/TestPrimitives.msg b/message_generation/src/test/resources/test_msgs/msg/TestPrimitives.msg new file mode 100644 index 0000000..815dd5b --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestPrimitives.msg @@ -0,0 +1,21 @@ +# Integration test message of all primitive types + +# caller_id of most recent node to send this message +string caller_id +# caller_id of the original node to send this message +string orig_caller_id + +string str +byte b +int16 int16 +int32 int32 +int64 int64 +char c +uint16 uint16 +uint32 uint32 +uint64 uint64 +float32 float32 +float64 float64 +time t +duration d + diff --git a/message_generation/src/test/resources/test_msgs/msg/TestString.msg b/message_generation/src/test/resources/test_msgs/msg/TestString.msg new file mode 100644 index 0000000..4ab0438 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TestString.msg @@ -0,0 +1,6 @@ +# Integration test message +# caller_id of most recent node to send this message +string caller_id +# caller_id of the original node to send this message +string orig_caller_id +string data diff --git a/message_generation/src/test/resources/test_msgs/msg/TransitiveImport.msg b/message_generation/src/test/resources/test_msgs/msg/TransitiveImport.msg new file mode 100644 index 0000000..bf33d17 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TransitiveImport.msg @@ -0,0 +1,2 @@ +# Bug #2133/2139: EmbedTest uses std_msgs, so TransitiveImport needs it as well +EmbedTest data \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg1.msg b/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg1.msg new file mode 100644 index 0000000..f41ed0c --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg1.msg @@ -0,0 +1,2 @@ +TransitiveMsg2 msg2 + diff --git a/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg2.msg b/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg2.msg new file mode 100644 index 0000000..0084c08 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/TransitiveMsg2.msg @@ -0,0 +1 @@ +test_msgs/Composite data diff --git a/message_generation/src/test/resources/test_msgs/msg/Val.msg b/message_generation/src/test/resources/test_msgs/msg/Val.msg new file mode 100644 index 0000000..c11841a --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/msg/Val.msg @@ -0,0 +1 @@ +string val \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/srv/AddTwoInts.srv b/message_generation/src/test/resources/test_msgs/srv/AddTwoInts.srv new file mode 100644 index 0000000..3a68808 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/AddTwoInts.srv @@ -0,0 +1,4 @@ +int64 a +int64 b +--- +int64 sum diff --git a/message_generation/src/test/resources/test_msgs/srv/ConstantsMultiplex.srv b/message_generation/src/test/resources/test_msgs/srv/ConstantsMultiplex.srv new file mode 100644 index 0000000..b955445 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/ConstantsMultiplex.srv @@ -0,0 +1,26 @@ +byte BYTE_X=0 +byte BYTE_Y=15 +byte BYTE_Z=5 +int32 INT32_X=0 +int32 INT32_Y=-12345678 +int32 INT32_Z=12345678 +uint32 UINT32_X=0 +uint32 UINT32_Y=12345678 +uint32 UINT32_Z=1 +float32 FLOAT32_X=0.0 +float32 FLOAT32_Y=-3.14159 +float32 FLOAT32_Z=12345.78 +byte SELECT_X=1 +byte SELECT_Y=2 +byte SELECT_Z=3 +byte selection +--- +# test response constants as well +byte CONFIRM_X=1 +byte CONFIRM_Y=2 +byte CONFIRM_Z=3 +byte select_confirm +byte ret_byte +int32 ret_int32 +uint32 ret_uint32 +float32 ret_float32 \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/srv/EmptyReqSrv.srv b/message_generation/src/test/resources/test_msgs/srv/EmptyReqSrv.srv new file mode 100644 index 0000000..1f2c1eb --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/EmptyReqSrv.srv @@ -0,0 +1,2 @@ +--- +int32 fake_secret diff --git a/message_generation/src/test/resources/test_msgs/srv/EmptyRespSrv.srv b/message_generation/src/test/resources/test_msgs/srv/EmptyRespSrv.srv new file mode 100644 index 0000000..6ef29bc --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/EmptyRespSrv.srv @@ -0,0 +1,2 @@ +int32 fake_secret +--- diff --git a/message_generation/src/test/resources/test_msgs/srv/EmptySrv.srv b/message_generation/src/test/resources/test_msgs/srv/EmptySrv.srv new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/EmptySrv.srv @@ -0,0 +1 @@ +--- diff --git a/message_generation/src/test/resources/test_msgs/srv/ListReturn.srv b/message_generation/src/test/resources/test_msgs/srv/ListReturn.srv new file mode 100644 index 0000000..311e806 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/ListReturn.srv @@ -0,0 +1,7 @@ +# test case for having single list return value +int32 a +int32 b +int32 c +int32 d +--- +int32[] abcd diff --git a/message_generation/src/test/resources/test_msgs/srv/MultipleAddTwoInts.srv b/message_generation/src/test/resources/test_msgs/srv/MultipleAddTwoInts.srv new file mode 100644 index 0000000..522a482 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/MultipleAddTwoInts.srv @@ -0,0 +1,8 @@ +# test case for having multiple return values +int32 a +int32 b +int32 c +int32 d +--- +int32 ab +int32 cd \ No newline at end of file diff --git a/message_generation/src/test/resources/test_msgs/srv/StringString.srv b/message_generation/src/test/resources/test_msgs/srv/StringString.srv new file mode 100644 index 0000000..a9242d4 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/StringString.srv @@ -0,0 +1,4 @@ +std_msgs/String str +Val str2 +--- +std_msgs/String str diff --git a/message_generation/src/test/resources/test_msgs/srv/TransitiveSrv.srv b/message_generation/src/test/resources/test_msgs/srv/TransitiveSrv.srv new file mode 100644 index 0000000..09a0375 --- /dev/null +++ b/message_generation/src/test/resources/test_msgs/srv/TransitiveSrv.srv @@ -0,0 +1,4 @@ +test_msgs/TransitiveMsg1 msg +--- +int32 a + -- GitLab