diff --git a/cmake/configs/nuttx_px4fmu-v2_test.cmake b/cmake/configs/nuttx_px4fmu-v2_test.cmake index 0d6a8e7171..95e6c07e9b 100644 --- a/cmake/configs/nuttx_px4fmu-v2_test.cmake +++ b/cmake/configs/nuttx_px4fmu-v2_test.cmake @@ -75,6 +75,7 @@ set(config_module_list modules/controllib_test modules/mavlink/mavlink_tests modules/unit_test + modules/uORB/uORB_tests systemcmds/tests # diff --git a/cmake/configs/posix_sitl_test.cmake b/cmake/configs/posix_sitl_test.cmake index 29e8ee7c8b..e9fd6734cc 100644 --- a/cmake/configs/posix_sitl_test.cmake +++ b/cmake/configs/posix_sitl_test.cmake @@ -76,6 +76,7 @@ set(config_module_list modules/controllib_test #modules/mavlink/mavlink_tests modules/unit_test + modules/uORB/uORB_tests systemcmds/tests ) diff --git a/src/modules/uORB/CMakeLists.txt b/src/modules/uORB/CMakeLists.txt index 894ffc63e4..d8f8c9bc2a 100644 --- a/src/modules/uORB/CMakeLists.txt +++ b/src/modules/uORB/CMakeLists.txt @@ -49,17 +49,14 @@ set(SRCS if(${OS} STREQUAL "nuttx") list(APPEND SRCS uORBDevices_nuttx.cpp - uORBTest_UnitTest.cpp ) elseif(${OS} STREQUAL "posix") list(APPEND SRCS uORBDevices_posix.cpp - uORBTest_UnitTest.cpp ) elseif(${OS} STREQUAL "posix-arm") list(APPEND SRCS uORBDevices_posix.cpp - uORBTest_UnitTest.cpp ) elseif(${OS} STREQUAL "qurt") list(APPEND SRCS diff --git a/src/modules/uORB/uORBMain.cpp b/src/modules/uORB/uORBMain.cpp index cdc18e23bd..66b98debf2 100644 --- a/src/modules/uORB/uORBMain.cpp +++ b/src/modules/uORB/uORBMain.cpp @@ -37,19 +37,14 @@ #include "uORB.h" #include "uORBCommon.hpp" -#ifndef __PX4_QURT -#include "uORBTest_UnitTest.hpp" -#endif - extern "C" { __EXPORT int uorb_main(int argc, char *argv[]); } static uORB::DeviceMaster *g_dev = nullptr; static void usage() { - PX4_INFO("Usage: uorb 'start', 'test', 'latency_test' or 'status'"); + PX4_INFO("Usage: uorb 'start', 'status'"); } - int uorb_main(int argc, char *argv[]) { @@ -94,41 +89,6 @@ uorb_main(int argc, char *argv[]) return OK; } -#ifndef __PX4_QURT - - /* - * Test the driver/device. - */ - if (!strcmp(argv[1], "test")) { - if (!g_dev) { - PX4_WARN("orb is not running! start it first"); - return -ESRCH; - } - - uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); - return t.test(); - } - - /* - * Test the latency. - */ - if (!strcmp(argv[1], "latency_test")) { - - uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); - - if (argc > 2 && !strcmp(argv[2], "medium")) { - return t.latency_test(ORB_ID(orb_test_medium), true); - - } else if (argc > 2 && !strcmp(argv[2], "large")) { - return t.latency_test(ORB_ID(orb_test_large), true); - - } else { - return t.latency_test(ORB_ID(orb_test), true); - } - } - -#endif - /* * Print driver information. */ diff --git a/src/modules/uORB/uORB_tests/CMakeLists.txt b/src/modules/uORB/uORB_tests/CMakeLists.txt new file mode 100644 index 0000000000..5f88743d3a --- /dev/null +++ b/src/modules/uORB/uORB_tests/CMakeLists.txt @@ -0,0 +1,53 @@ +############################################################################ +# +# Copyright (c) 2015 PX4 Development Team. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name PX4 nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# this includes the generated topics directory +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +set(SRCS uORB_tests_main.cpp) + +if(NOT ${OS} STREQUAL "qurt") + list(APPEND SRCS uORBTest_UnitTest.cpp) +endif() + +px4_add_module( + MODULE modules__uORB__uORB_tests + MAIN uorb_tests + STACK_MAIN 2048 + COMPILE_FLAGS + -Os + SRCS ${SRCS} + DEPENDS + platforms__common + ) +# vim: set noet ft=cmake fenc=utf-8 ff=unix : diff --git a/src/modules/uORB/uORBTest_UnitTest.cpp b/src/modules/uORB/uORB_tests/uORBTest_UnitTest.cpp similarity index 99% rename from src/modules/uORB/uORBTest_UnitTest.cpp rename to src/modules/uORB/uORB_tests/uORBTest_UnitTest.cpp index c91172c107..2812336e79 100644 --- a/src/modules/uORB/uORBTest_UnitTest.cpp +++ b/src/modules/uORB/uORB_tests/uORBTest_UnitTest.cpp @@ -32,7 +32,7 @@ ****************************************************************************/ #include "uORBTest_UnitTest.hpp" -#include "uORBCommon.hpp" +#include "../uORBCommon.hpp" #include #include #include diff --git a/src/modules/uORB/uORBTest_UnitTest.hpp b/src/modules/uORB/uORB_tests/uORBTest_UnitTest.hpp similarity index 98% rename from src/modules/uORB/uORBTest_UnitTest.hpp rename to src/modules/uORB/uORB_tests/uORBTest_UnitTest.hpp index 5aae62c725..5722b164b3 100644 --- a/src/modules/uORB/uORBTest_UnitTest.hpp +++ b/src/modules/uORB/uORB_tests/uORBTest_UnitTest.hpp @@ -33,8 +33,8 @@ #ifndef _uORBTest_UnitTest_hpp_ #define _uORBTest_UnitTest_hpp_ -#include "uORBCommon.hpp" -#include "uORB.h" +#include "../uORBCommon.hpp" +#include "../uORB.h" #include struct orb_test { diff --git a/src/modules/uORB/uORB_tests/uORB_tests_main.cpp b/src/modules/uORB/uORB_tests/uORB_tests_main.cpp new file mode 100644 index 0000000000..6c0f109461 --- /dev/null +++ b/src/modules/uORB/uORB_tests/uORB_tests_main.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** + * + * Copyright (c) 2012-2015 PX4 Development Team. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#include +#include "../uORBDevices.hpp" +#include "../uORB.h" +#include "../uORBCommon.hpp" + +#ifndef __PX4_QURT +#include "uORBTest_UnitTest.hpp" +#endif + +extern "C" { __EXPORT int uorb_tests_main(int argc, char *argv[]); } + +static void usage() +{ + PX4_INFO("Usage: uorb_test 'test', 'latency_test'"); +} + +int +uorb_tests_main(int argc, char *argv[]) +{ + if (argc < 2) { + usage(); + return -EINVAL; + } + +#ifndef __PX4_QURT + + /* + * Test the driver/device. + */ + if (!strcmp(argv[1], "test")) { + uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); + return t.test(); + } + + /* + * Test the latency. + */ + if (!strcmp(argv[1], "latency_test")) { + + uORBTest::UnitTest &t = uORBTest::UnitTest::instance(); + + if (argc > 2 && !strcmp(argv[2], "medium")) { + return t.latency_test(ORB_ID(orb_test_medium), true); + + } else if (argc > 2 && !strcmp(argv[2], "large")) { + return t.latency_test(ORB_ID(orb_test_large), true); + + } else { + return t.latency_test(ORB_ID(orb_test), true); + } + } + +#endif + + usage(); + return -EINVAL; +}