Browse Source

uORB separate tests

sbg
Daniel Agar 9 years ago committed by Lorenz Meier
parent
commit
12165ba5a4
  1. 1
      cmake/configs/nuttx_px4fmu-v2_test.cmake
  2. 1
      cmake/configs/posix_sitl_test.cmake
  3. 3
      src/modules/uORB/CMakeLists.txt
  4. 42
      src/modules/uORB/uORBMain.cpp
  5. 53
      src/modules/uORB/uORB_tests/CMakeLists.txt
  6. 2
      src/modules/uORB/uORB_tests/uORBTest_UnitTest.cpp
  7. 4
      src/modules/uORB/uORB_tests/uORBTest_UnitTest.hpp
  8. 90
      src/modules/uORB/uORB_tests/uORB_tests_main.cpp

1
cmake/configs/nuttx_px4fmu-v2_test.cmake

@ -75,6 +75,7 @@ set(config_module_list @@ -75,6 +75,7 @@ set(config_module_list
modules/controllib_test
modules/mavlink/mavlink_tests
modules/unit_test
modules/uORB/uORB_tests
systemcmds/tests
#

1
cmake/configs/posix_sitl_test.cmake

@ -76,6 +76,7 @@ set(config_module_list @@ -76,6 +76,7 @@ set(config_module_list
modules/controllib_test
#modules/mavlink/mavlink_tests
modules/unit_test
modules/uORB/uORB_tests
systemcmds/tests
)

3
src/modules/uORB/CMakeLists.txt

@ -49,17 +49,14 @@ set(SRCS @@ -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

42
src/modules/uORB/uORBMain.cpp

@ -37,19 +37,14 @@ @@ -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[]) @@ -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<struct orb_test_medium>(ORB_ID(orb_test_medium), true);
} else if (argc > 2 && !strcmp(argv[2], "large")) {
return t.latency_test<struct orb_test_large>(ORB_ID(orb_test_large), true);
} else {
return t.latency_test<struct orb_test>(ORB_ID(orb_test), true);
}
}
#endif
/*
* Print driver information.
*/

53
src/modules/uORB/uORB_tests/CMakeLists.txt

@ -0,0 +1,53 @@ @@ -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 :

2
src/modules/uORB/uORBTest_UnitTest.cpp → src/modules/uORB/uORB_tests/uORBTest_UnitTest.cpp

@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
****************************************************************************/
#include "uORBTest_UnitTest.hpp"
#include "uORBCommon.hpp"
#include "../uORBCommon.hpp"
#include <px4_config.h>
#include <px4_time.h>
#include <stdio.h>

4
src/modules/uORB/uORBTest_UnitTest.hpp → src/modules/uORB/uORB_tests/uORBTest_UnitTest.hpp

@ -33,8 +33,8 @@ @@ -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 <px4_time.h>
struct orb_test {

90
src/modules/uORB/uORB_tests/uORB_tests_main.cpp

@ -0,0 +1,90 @@ @@ -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 <string.h>
#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<struct orb_test_medium>(ORB_ID(orb_test_medium), true);
} else if (argc > 2 && !strcmp(argv[2], "large")) {
return t.latency_test<struct orb_test_large>(ORB_ID(orb_test_large), true);
} else {
return t.latency_test<struct orb_test>(ORB_ID(orb_test), true);
}
}
#endif
usage();
return -EINVAL;
}
Loading…
Cancel
Save