PX4 Firmware
PX4 Autopilot Software http://px4.io
uORB_tests_main.cpp
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* Copyright (c) 2012-2015 PX4 Development Team. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in
13
* the documentation and/or other materials provided with the
14
* distribution.
15
* 3. Neither the name PX4 nor the names of its contributors may be
16
* used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*
32
****************************************************************************/
33
34
#include <string.h>
35
#include "../uORBDeviceNode.hpp"
36
#include "../uORB.h"
37
#include "../uORBCommon.hpp"
38
39
#ifndef __PX4_QURT
40
#include "
uORBTest_UnitTest.hpp
"
41
#endif
42
43
extern
"C"
{
__EXPORT
int
uorb_tests_main
(
int
argc,
char
*argv[]); }
44
45
static
void
usage
()
46
{
47
PX4_INFO(
"Usage: uorb_tests [latency_test]"
);
48
}
49
50
int
51
uorb_tests_main
(
int
argc,
char
*argv[])
52
{
53
54
#ifndef __PX4_QURT
55
56
/*
57
* Test the driver/device.
58
*/
59
if
(argc == 1) {
60
uORBTest::UnitTest
&t =
uORBTest::UnitTest::instance
();
61
int
rc = t.
test
();
62
63
if
(rc ==
OK
) {
64
fprintf(stdout,
" [uORBTest] \t\tPASS\n"
);
65
fflush(stdout);
66
return
0;
67
68
}
else
{
69
fprintf(stderr,
" [uORBTest] \t\tFAIL\n"
);
70
fflush(stderr);
71
return
-1;
72
}
73
}
74
75
/*
76
* Test the latency.
77
*/
78
if
(argc > 1 && !strcmp(argv[1],
"latency_test"
)) {
79
80
uORBTest::UnitTest
&t =
uORBTest::UnitTest::instance
();
81
82
if
(argc > 2 && !strcmp(argv[2],
"medium"
)) {
83
return
t.
latency_test
<
struct
orb_test_medium
>(ORB_ID(orb_test_medium), true);
84
85
}
else
if
(argc > 2 && !strcmp(argv[2],
"large"
)) {
86
return
t.
latency_test
<
struct
orb_test_large
>(ORB_ID(orb_test_large), true);
87
88
}
else
{
89
return
t.
latency_test
<
struct
orb_test
>(ORB_ID(orb_test), true);
90
}
91
}
92
93
#endif
94
95
usage
();
96
return
-EINVAL;
97
}
uORBTest::UnitTest::latency_test
int latency_test(orb_id_t T, bool print)
Definition:
uORBTest_UnitTest.hpp:125
__EXPORT
Definition:
I2C.hpp:51
uORBTest::UnitTest::test
int test()
Definition:
uORBTest_UnitTest.cpp:189
uorb_tests_main
__EXPORT int uorb_tests_main(int argc, char *argv[])
Definition:
uORB_tests_main.cpp:51
orb_test_large
Definition:
uORBTest_UnitTest.hpp:60
orb_test_medium
Definition:
uORBTest_UnitTest.hpp:50
uORBTest_UnitTest.hpp
usage
static void usage()
Definition:
uORB_tests_main.cpp:45
uORBTest::UnitTest::instance
static uORBTest::UnitTest & instance()
Definition:
uORBTest_UnitTest.cpp:59
OK
#define OK
Definition:
uavcan_main.cpp:71
orb_test
Definition:
uORBTest_UnitTest.hpp:42
uORBTest::UnitTest
Definition:
uORBTest_UnitTest.hpp:73
src
modules
uORB
uORB_tests
uORB_tests_main.cpp
Generated by
1.8.13