Revision: 6889
http://playerstage.svn.sourceforge.net/playerstage/?rev=6889&view=rev
Author: jeremy_asher
Date: 2008-07-18 20:58:47 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
libstageplugin: updates to testing framework, using CppUnit
Modified Paths:
--------------
code/stage/trunk/libstageplugin/CMakeLists.txt
code/stage/trunk/libstageplugin/test/CMakeLists.txt
code/stage/trunk/libstageplugin/test/lsp_test.cc
Added Paths:
-----------
code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
code/stage/trunk/libstageplugin/test/lsp_test_laser.hh
Modified: code/stage/trunk/libstageplugin/CMakeLists.txt
===================================================================
--- code/stage/trunk/libstageplugin/CMakeLists.txt 2008-07-18 18:18:17 UTC
(rev 6888)
+++ code/stage/trunk/libstageplugin/CMakeLists.txt 2008-07-18 20:58:47 UTC
(rev 6889)
@@ -3,8 +3,7 @@
link_directories( ${PLAYER_LIBDIR} )
include_directories( ${PLAYER_INCLUDE_DIRS})
-add_library( stageplugin MODULE
- p_driver.h
+set( stagepluginSrcs p_driver.h
p_driver.cc
p_blobfinder.cc
p_simulation.cc
@@ -16,6 +15,8 @@
stg_time.cc
)
+add_library( stageplugin MODULE ${stagepluginSrcs} )
+
# p_graphics3d.cc
@@ -24,7 +25,7 @@
${PLAYER_LIBRARIES}
playerutils
${OPENGL_LIBRARIES}
-
+
)
IF (BUILD_LSPTEST)
Modified: code/stage/trunk/libstageplugin/test/CMakeLists.txt
===================================================================
--- code/stage/trunk/libstageplugin/test/CMakeLists.txt 2008-07-18 18:18:17 UTC
(rev 6888)
+++ code/stage/trunk/libstageplugin/test/CMakeLists.txt 2008-07-18 20:58:47 UTC
(rev 6889)
@@ -1,10 +1,24 @@
MESSAGE( STATUS "Building Player plugin tests" )
pkg_search_module( PLAYERC REQUIRED playerc )
+pkg_search_module( CPPUNIT REQUIRED cppunit )
+include_directories(
+ ${CPPUNIT_INCLUDE_PATH}
+)
+
+link_directories(
+ ${CPPUNIT_LIBRARY_DIRS}
+)
+
SET( lspTestSrcs
lsp_test.cc
+ lsp_test_laser.cc
+ lsp_test_laser.hh
)
add_executable( lsp_test ${lspTestSrcs} )
-target_link_libraries( lsp_test PLAYERC )
+target_link_libraries( lsp_test
+ ${PLAYERC_LIBRARIES}
+ ${CPPUNIT_LIBRARIES}
+)
Modified: code/stage/trunk/libstageplugin/test/lsp_test.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test.cc 2008-07-18 18:18:17 UTC
(rev 6888)
+++ code/stage/trunk/libstageplugin/test/lsp_test.cc 2008-07-18 20:58:47 UTC
(rev 6889)
@@ -1,42 +1,32 @@
-#include <stdio.h>
+#include <cppunit/BriefTestProgressListener.h>
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
-#include <libplayerc/playerc.h>
-
-int main(int argc, const char **argv)
+int main( int argc, char* argv[] )
{
- int i;
- playerc_client_t *client;
- playerc_position2d_t *position2d;
- // Create a client and connect it to the server.
- client = playerc_client_create(NULL, "localhost", 6665);
- if (0 != playerc_client_connect(client))
- return -1;
+ // Create the event manager and test controller
+ CPPUNIT_NS::TestResult controller;
- // Create and subscribe to a position2d device.
- position2d = playerc_position2d_create(client, 0);
- if (playerc_position2d_subscribe(position2d, PLAYER_OPEN_MODE))
- return -1;
+ // Add a listener that colllects test result
+ CPPUNIT_NS::TestResultCollector result;
+ controller.addListener( &result );
- // Make the robot spin!
- if (0 != playerc_position2d_set_cmd_vel(position2d, 0, 0, DTOR(40.0),
1))
- return -1;
+ // Add a listener that print dots as test run.
+ CPPUNIT_NS::BriefTestProgressListener progress;
+ controller.addListener( &progress );
- for (i = 0; i < 200; i++)
- {
- // Wait for new data from server
- playerc_client_read(client);
-
- // Print current robot pose
- printf("position2d : %f %f %f\n",
- position2d->px, position2d->py, position2d->pa);
- }
+ // Add the top suite to the test runner
+ CPPUNIT_NS::TestRunner runner;
+ runner.addTest(
CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
+ runner.run( controller );
- // Shutdown
- playerc_position2d_unsubscribe(position2d);
- playerc_position2d_destroy(position2d);
- playerc_client_disconnect(client);
- playerc_client_destroy(client);
+ // Print test in a compiler compatible format.
+ CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut()
);
+ outputter.write();
- return 0;
+ return result.wasSuccessful() ? 0 : 1;
}
Added: code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
(rev 0)
+++ code/stage/trunk/libstageplugin/test/lsp_test_laser.cc 2008-07-18
20:58:47 UTC (rev 6889)
@@ -0,0 +1,51 @@
+#include "lsp_test_laser.hh"
+
+
+
+void LSPLaserTest::setUp() {
+ client = playerc_client_create( NULL, "localhost", 6665 );
+
+// int connectError = playerc_client_connect( client );
+ CPPUNIT_ASSERT( playerc_client_connect( client ) == 0 );
+
+ laserProxy = playerc_laser_create( client, 0 );
+
+ CPPUNIT_ASSERT( playerc_laser_subscribe( laserProxy, PLAYER_OPEN_MODE )
== 0 );
+}
+
+
+void LSPLaserTest::tearDown() {
+ CPPUNIT_ASSERT( playerc_laser_unsubscribe( laserProxy ) == 0 );
+ playerc_laser_destroy( laserProxy );
+
+ CPPUNIT_ASSERT( playerc_client_disconnect( client ) == 0 );
+ playerc_client_destroy( client );
+}
+
+void LSPLaserTest::testConfig() {
+ const double DELTA = 0.01;
+
+ double min = -M_PI/2;
+ double max = +M_PI/2;
+ double res = 100;
+ double range_res = 1;
+ unsigned char intensity = 1;
+ double freq = 10;
+
+ CPPUNIT_ASSERT( playerc_laser_set_config( laserProxy, min, max, res,
range_res, intensity, freq ) == 0 );
+
+ double min2, max2, res2, range_res2, freq2;
+ unsigned char intensity2 = 1;
+ CPPUNIT_ASSERT( playerc_laser_get_config( laserProxy, &min2, &max2,
&res2, &range_res2, &intensity2, &freq2 ) == 0 );
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( min2, min, DELTA );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( max2, max, DELTA );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( res2, res, DELTA );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( range_res2, range_res, DELTA );
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( freq2, freq, DELTA );
+ CPPUNIT_ASSERT( intensity == intensity2 );
+}
+
+void LSPLaserTest::testData() {
+
+}
\ No newline at end of file
Added: code/stage/trunk/libstageplugin/test/lsp_test_laser.hh
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_laser.hh
(rev 0)
+++ code/stage/trunk/libstageplugin/test/lsp_test_laser.hh 2008-07-18
20:58:47 UTC (rev 6889)
@@ -0,0 +1,28 @@
+#ifndef _LSP_LASER_TEST_H_
+#define _LSP_LASER_TEST_H_
+
+#include <cppunit/extensions/HelperMacros.h>
+#include <libplayerc/playerc.h>
+
+class LSPLaserTest : public CPPUNIT_NS::TestFixture
+{
+ CPPUNIT_TEST_SUITE( LSPLaserTest );
+ CPPUNIT_TEST( testConfig );
+ CPPUNIT_TEST( testData );
+ CPPUNIT_TEST_SUITE_END();
+
+protected:
+ playerc_laser_t* laserProxy;
+ playerc_client_t* client;
+
+ void testConfig();
+ void testData();
+
+public:
+ void setUp();
+ void tearDown();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION( LSPLaserTest );
+
+#endif
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit