Discussion:
[nuttx] Example of on-hardware CI
Lorenz Meier lorenz@px4.io [nuttx]
2018-02-21 17:15:38 UTC
Permalink
This is the system we have set up 3 years ago for on-hardware testing.
Subject: SUCCESS: On-hardware test for nuttx_next on PX4/Firmware (98ac8800b6f6c04f45948cbf41dc13ad562f0617)
Date: 20 April 2015 at 17:15:05 GMT+2
PX4/Firmware <http://results.dronetest.io/zurich01/1056/index.html>
The test succeeded
Report
Commit: 98ac8800b6f6c04f45948cbf41dc13ad562f0617 <http://github.com/PX4/Firmware/commits/98ac8800b6f6c04f45948cbf41dc13ad562f0617>
Repository: PX4/Firmware <http://github.com/PX4/Firmware/tree/nuttx_next> (nuttx_next branch)
Full results: Test results for commit 98ac8800b6f6c04f45948cbf41dc13ad562f0617 <http://results.dronetest.io/zurich01/1056/index.html>
<http://results.dronetest.io/zurich01/1056/index.html>
Detailed Results: NSH Console Output
[boot] 4 Battery Backed Up File(s)
[boot] Fault Log info File No 3 Length 3257 flags:0x00 state:1
[boot] Fault Log is Armed
[boot] Initialized SPI port 1 (SENSORS)
[boot] Initialized SPI port 2 (RAMTRON FRAM)
[boot] Initialized SPI port 4
[boot] Initialized SDIO
[rgbled] on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
[i] USB interface connected
nshterm [8:70]
[i] card mounted at /fs/microsd
param: selected parameter default file /fs/mtd_params
[param] Loaded: /fs/mtd_params
[px4io] default PWM output device
PX4IO OK
px4io: check CRC failed: -22: Unknown error
PX4IO CRC failure
[PX4IO] using firmware from /etc/extras/px4io-v2_default.bin
[PX4IO] found bootloader revision: 4
[PX4IO] erase...
[PX4IO] programming 51020 bytes...
[PX4IO] verify...
[PX4IO] update complete
[px4io] default PWM output device
PX4IO restart OK
mavlink_tests: RUNNING TEST: _ack_test
mavlink_tests: TEST PASSED: _ack_test
mavlink_tests: RUNNING TEST: _bad_opcode_test
mavlink_tests: FTP: nak 7
mavlink_tests: TEST PASSED: _bad_opcode_test
mavlink_tests: RUNNING TEST: _bad_datasize_test
mavlink_tests: FTP: nak 3
mavlink_tests: TEST PASSED: _bad_datasize_test
WARNING! list test commented out, but needs proper resolution!
mavlink_tests: RUNNING TEST: _list_eof_test
mavlink_tests: FTP: nak 6
mavlink_tests: TEST PASSED: _list_eof_test
mavlink_tests: RUNNING TEST: _open_badfile_test
mavlink_tests: FTP: nak 2
mavlink_tests: TEST PASSED: _open_badfile_test
mavlink_tests: RUNNING TEST: _open_terminate_test
mavlink_tests: TEST PASSED: _open_terminate_test
mavlink_tests: RUNNING TEST: _terminate_badsession_test
mavlink_tests: FTP: nak 4
mavlink_tests: TEST PASSED: _terminate_badsession_test
mavlink_tests: RUNNING TEST: _read_test
mavlink_tests: TEST PASSED: _read_test
mavlink_tests: RUNNING TEST: _read_badsession_test
mavlink_tests: FTP: nak 4
mavlink_tests: TEST PASSED: _read_badsession_test
mavlink_tests: RUNNING TEST: _removedirectory_test
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: TEST PASSED: _removedirectory_test
mavlink_tests: RUNNING TEST: _createdirectory_test
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: TEST PASSED: _createdirectory_test
mavlink_tests: RUNNING TEST: _removefile_test
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: FTP: nak 2
mavlink_tests: TEST PASSED: _removefile_test
mavlink_tests: ALL TESTS PASSED
mavlink_tests: Tests passed : 12
mavlink_tests: Tests failed : 0
mavlink_tests: Assertions : 270
commander_tests: RUNNING TEST: armingStateTransitionTest
commander_tests: INVAL: ARMING_STATE_INIT - ARMING_STATE_ARMED
commander_tests: INVAL: ARMING_STATE_STANDBY - ARMING_STATE_ARMED_ERROR
commander_tests: INVAL: ARMING_STATE_ARMED - ARMING_STATE_INIT
commander_tests: INVAL: ARMING_STATE_ARMED - ARMING_STATE_REBOOT
commander_tests: INVAL: ARMING_STATE_ARMED_ERROR - ARMING_STATE_ARMED
commander_tests: INVAL: ARMING_STATE_ARMED_ERROR - ARMING_STATE_REBOOT
commander_tests: INVAL: ARMING_STATE_STANDBY_ERROR - ARMING_STATE_ARMED
commander_tests: INVAL: ARMING_STATE_STANDBY_ERROR - ARMING_STATE_STANDBY
commander_tests: INVAL: ARMING_STATE_REBOOT - ARMING_STATE_ARMED
commander_tests: INVAL: ARMING_STATE_IN_AIR_RESTORE - ARMING_STATE_STANDBY
commander_tests: INVAL: ARMING_STATE_INIT - ARMING_STATE_STANDBY
commander_tests: INVAL: ARMING_STATE_STANDBY - ARMING_STATE_ARMED
commander_tests: TEST PASSED: armingStateTransitionTest
commander_tests: RUNNING TEST: mainStateTransitionTest
commander_tests: TEST PASSED: mainStateTransitionTest
commander_tests: RUNNING TEST: isSafeTest
commander_tests: TEST PASSED: isSafeTest
commander_tests: ALL TESTS PASSED
commander_tests: Tests passed : 3
commander_tests: Tests failed : 0
commander_tests: Assertions : 167
note: publish handle 0x100079e0
note: subscribe fd 3
note: try publish
note: try multi-topic support
note: advertised
note: published
uorb_latency: mean: 28.1220
note: PASS
[MS5611_SPI] on SPI bus 4 at 2 (11000 KHz)
ms5611: no device on bus 4
[MS5611_SPI] on SPI bus 1 at 3 (11000 KHz)
ms5611: no device on bus 1
ms5611: no device on bus 2
init done
mpu6000: driver start failed
[MPU6000] on SPI bus 1 at 4 (1000 KHz)
probe failed
l3gd20: driver start failed
[L3GD20] on SPI bus 1 at 1 (11000 KHz)
hmc5883: no device on bus 2
hmc5883: no device on bus 1
[HMC5883_SPI] on SPI bus 1 at 5 (11000 KHz)
hmc5883: no device on bus 3
hmc5883: driver start failed
ver hwcmp match: PX4FMU_V2
probe failed
lsm303d: SPI init failed
lsm303d: driver start failed
[LSM303D] on SPI bus 1 at 2 (11000 KHz)
ms5611: no device on bus 2
ms5611: driver start failed
meas_airspeed: no MS4525 airspeed sensor connected
ets_airspeed: no ETS airspeed sensor connected
ets_airspeed: no ETS airspeed sensor connected
sensors_task: config: 2 gyros, 1 mags, 2 accels
nsh: px4flow: command not found
nsh: ll40ls: command not found
Running all tests...
[led] STARTING TEST
LED test completed, no errors.
[led] PASS
[int] STARTING TEST
--- 64 BIT MATH TESTS ---
success: 354156329598 * 5 == 1770781647990
--- 32 BIT / 64 BIT MIXED MATH TESTS ---
success: 64bit calculation: 50 * 2147483647 (max int val) == 107374182350
SUCCESS: All float and double tests passed.
[int] PASS
[float] STARTING TEST
--- SINGLE PRECISION TESTS ---
The single precision test involves calls to fabsf(),
if test fails check this function as well.
success: sinf(0.0f) == 0.0f
success: sinf(1.0f) == 0.84147f
success: asinf(1.0f) == 1.57079f
success: cosf(1.0f) == 0.54030f
success: acosf(1.0f) == 0.0f
success: sinf(0.1f) == 0.09983f
success: sqrt(2.0f) == 1.41421f
success: atan2f(1.0f, 1.0f) == 0.78539f
success: printf("%8.4f", 0.553415f) == 0.5534
success: printf("%8.4f", -0.553415f) == -0.5534
--- DOUBLE PRECISION TESTS ---
success: 1.0111 * 2.0 == 2.0222
success: (float) 1.55f == 1.55 (double)
success: sin(0.0) == 0.0
success: sin(1.0) == 0.84147098480
success: atan2(1.0, 1.0) == 0.785398
testing pow() with magic value
(44330.0 * (1.0 - pow((96286LL / 101325.0), 0.190295)));
success: result: 428.2293
success: printf("%8.4f", 0.553415) == 0.5534
success: printf("%8.4f", -0.553415) == -0.5534
SUCCESS: All float and double tests passed.
[float] PASS
[sensors] STARTING TEST
sensor: accel0
ACCEL: test start
ACCEL accel: x: 0.1390 y: 9.7515 z: -1.0602 m/s^2
OK: ACCEL passed all tests successfully
sensor: accel1
ACCEL: test start
ACCEL accel: x: 0.1834 y: 9.8005 z: -0.9696 m/s^2
OK: ACCEL passed all tests successfully
sensor: gyro0
GYRO: test start
GYRO rates: x: 0.0003 y: 0.0011 z: -0.0017 rad/s
OK: GYRO passed all tests successfully
sensor: gyro1
GYRO: test start
GYRO rates: x: 0.0010 y: -0.0074 z: -0.0012 rad/s
OK: GYRO passed all tests successfully
sensor: mag0
MAG: test start
MAG values: x: 0.1082 y: -0.3262 z: 0.2411
OK: MAG passed all tests successfully
sensor: baro0
BARO: test start
BARO pressure: 973.9000 mbar alt: 332.8288 m temp: 49.3000 deg C
OK: BARO passed all tests successfully
[sensors] PASS
[adc] STARTING TEST
2: 4 3: 5 4: 2868 10: 2264 11: 1864 12: 1509 13: 1599 14: 1841 15: 2 16: 5
2: 5 3: 5 4: 2861 10: 2258 11: 1860 12: 1513 13: 1615 14: 1828 15: 2 16: 5
2: 5 3: 5 4: 2884 10: 2276 11: 1900 12: 1586 13: 1592 14: 1782 15: 2 16: 4
2: 5 3: 5 4: 2872 10: 2268 11: 1884 12: 1558 13: 1588 14: 1829 15: 2 16: 5
2: 5 3: 5 4: 2865 10: 2261 11: 1880 12: 1538 13: 1531 14: 1786 15: 2 16: 5
tests: ADC test successful.
[adc] PASS
[tone] STARTING TEST
Alarm 1 (disable with: tests tone 0)
[tone] PASS
[sleep] STARTING TEST
20 100ms sleeps
Sleep test successful.
[sleep] PASS
[time] STARTING TEST
Maximum jitter 2us
[time] PASS
[perf] STARTING TEST
perf: expect count of 4
test_count: 4 events
perf: expect count of 1
test_elapsed: 1 events, 0 overruns, 333us elapsed, 333us avg, min 333us max 333us NaNus rms
perf: expect at least two counters
test_elapsed: 1 events, 0 overruns, 333us elapsed, 333us avg, min 333us max 333us NaNus rms
test_count: 4 events
sensor task update: 1394 events, 0 overruns, 91735us elapsed, 65us avg, min 47us max 179us 23.906us rms
lsm303d_bad_values: 0 events
lsm303d_bad_registers: 0 events
lsm303d_accel_resched: 7 events
lsm303d_mag_read: 564 events, 0 overruns, 13305us elapsed, 23us avg, min 22us max 24us 0.496us rms
lsm303d_accel_read: 4526 events, 0 overruns, 131252us elapsed, 28us avg, min 9us max 31us 0.807us rms
l3gd20_bad_registers: 0 events
l3gd20_errors: 0 events
l3gd20_reschedules: 976 events
l3gd20_read: 5225 events, 0 overruns, 140752us elapsed, 26us avg, min 9us max 32us 8.606us rms
mpu6000_reset_retries: 0 events
mpu6000_good_transfers: 5718 events
mpu6000_bad_registers: 0 events
mpu6000_bad_transfers: 0 events
mpu6000_read: 5736 events, 0 overruns, 280816us elapsed, 48us avg, min 44us max 51us 0.258us rms
mpu6000_gyro_read: 1 events
mpu6000_accel_read: 1 events
ctrl_latency: 0 events, 0 overruns, 0us elapsed, 0us avg, min 0us max 0us 0.000us rms
sys_latency: 0 events, 0 overruns, 0us elapsed, 0us avg, min 0us max 0us 0.000us rms
mpu6000_reset_retries: 0 events
adc_samples: 5770 events, 0 overruns, 15544us elapsed, 2us avg, min 2us max 3us 0.461us rms
ms5611_buffer_overflows: 394 events
ms5611_comms_errors: 0 events
ms5611_measure: 534 events, 0 overruns, 3879us elapsed, 7us avg, min 6us max 78us 5.176us rms
ms5611_read: 535 events, 0 overruns, 36053us elapsed, 67us avg, min 11us max 264us 36.931us rms
io latency: 0 events, 0 overruns, 0us elapsed, 0us avg, min 0us max 0us 0..000us rms
io write: 0 events, 0 overruns, 0us elapsed, 0us avg, min 0us max 0us 0.000us rms
io update: 456 events, 0 overruns, 620981us elapsed, 1361us avg, min 1336us max 2096us 58.909us rms
io_badidle : 0 events
io_idle : 1421 events
io_uarterrs : 0 events
io_protoerrs: 0 events
io_dmaerrs : 0 events
io_crcerrs : 0 events
io_timeouts : 3 events
io_retries : 3 events
io_dmasetup : 1427 events, 0 overruns, 8585us elapsed, 6us avg, min 3us max 101us 3.719us rms
io_txns : 1427 events, 0 overruns, 617278us elapsed, 432us avg, min 132us max 667us 94.950us rms
DMA allocations: 3 events
[perf] PASS
[param] STARTING TEST
tests: parameter test PASS
sensors_task: config: 2 gyros, 1 mags, 2 accels
[param] PASS
[bson] STARTING TEST
tests: PASS: decoder: bool1
tests: PASS: decoder: int1
tests: PASS: decoder: int2
tests: PASS: decoder: double1
tests: PASS: decoder: string1
tests: PASS: decoder: data1
[bson] PASS
[file2] STARTING TEST
Testing on /fs/microsd/testfile2.dat with write_chunk=64 write_size=5120
write ofs=64
write ofs=5120
read ofs=0
read ofs=5120
All OK
[file2] PASS
[mathlib] STARTING TEST
tests: testing mathlib
tests: Constructor Vector<2>(): 0.271317us
tests: Constructor Vector<2>(Vector<2>): 0.145733us
tests: Constructor Vector<2>(float[]): 0.144800us
tests: Constructor Vector<2>(float, float): 0.149900us
tests: Vector<2> = Vector<2>: 0.000000us
tests: Vector<2> + Vector<2>: 0.274033us
tests: Vector<2> - Vector<2>: 0.265067us
tests: Vector<2> += Vector<2>: 0.035967us
tests: Vector<2> -= Vector<2>: 0.037683us
tests: Vector<2> * Vector<2>: 0.000017us
tests: Vector<2> % Vector<2>: 0.000000us
tests: Constructor Vector<3>(): 0.867850us
tests: Constructor Vector<3>(Vector<3>): 0.738033us
tests: Constructor Vector<3>(float[]): 0.739000us
tests: Constructor Vector<3>(float, float, float): 0.737800us
tests: Vector<3> = Vector<3>: 0.120767us
tests: Vector<3> + Vector<3>: 0.864200us
tests: Vector<3> - Vector<3>: 0.862383us
tests: Vector<3> += Vector<3>: 0.043933us
tests: Vector<3> -= Vector<3>: 0.044617us
tests: Vector<3> * float: 0.866567us
tests: Vector<3> / float: 0.861183us
tests: Vector<3> *= float: 0.042217us
tests: Vector<3> /= float: 0.051717us
tests: Vector<3> * Vector<3>: 0.000000us
tests: Vector<3> % Vector<3>: 0.743167us
tests: Vector<3> length: 0.755767us
tests: Vector<3> length squared: 0.000000us
tests: Vector<3> element read: 0.031733us
tests: Vector<3> element read direct: 0.029883us
tests: Vector<3> element write: 0.000017us
tests: Vector<3> element write direct: 0.000017us
tests: Constructor Vector<4>(): 1.015567us
tests: Constructor Vector<4>(Vector<4>): 0.882233us
tests: Constructor Vector<4>(float[]): 0.879033us
tests: Constructor Vector<4>(float, float, float, float): 0.884700us
tests: Vector<4> = Vector<4>: 0.000000us
tests: Vector<4> + Vector<4>: 1.445750us
tests: Vector<4> - Vector<4>: 1.438733us
tests: Vector<4> += Vector<4>: 0.334083us
tests: Vector<4> -= Vector<4>: 0.318583us
tests: Vector<4> * Vector<4>: 0.000000us
tests: Constructor Vector<10>(): 1.774900us
tests: Constructor Vector<10>(Vector<10>): 0.688700us
tests: Constructor Vector<10>(float[]): 0.000017us
tests: Matrix<3, 3> * Vector<3>: 1.251283us
tests: Matrix<3, 3> + Matrix<3, 3>: 2.176600us
tests: Matrix<3, 3> * Matrix<3, 3>: 6.445050us
tests: Matrix<10, 10> * Vector<10>: 12.358383us
tests: Matrix<10, 10> + Matrix<10, 10>: 28.733217us
tests: Matrix<10, 10> * Matrix<10, 10>: 100.283167us
tests: Nonsymmetric matrix operations test
tests: Quaternion transformation methods test.
tests: Quaternion vector rotation method test.
[mathlib] PASS
----------------------------------------
T E S T S U M M A R Y
______ __ __ ______ __ __
/\ __ \ /\ \ /\ \ /\ __ \ /\ \/ /
\ \ __ \ \ \ \____ \ \ \____ \ \ \/\ \ \ \ _"-.
\ \_\ \_\ \ \_____\ \ \_____\ \ \_____\ \ \_\ \_\
\/_/\/_/ \/_____/ \/_____/ \/_____/ \/_/\/_/
All tests passed (13 of 13)
All Unit Tests PASSED
HW arch: PX4FMU_V2
FW git-hash: 98ac8800b6f6c04f45948cbf41dc13ad562f0617
Build datetime: Apr 20 2015 17:13:44
Build uri: localhost
Toolchain: 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
MCU: STM32F42x, rev. Y
WARNING WARNING WARNING!
Revision Y has a silicon errata
This device can only utilize a maximum of 1MB flash safely!
http://px4.io/help/errata
UID: 2E0035:3133470B:36393133
total used free largest
Mem: 235312 57648 177664 167584
NuttShell (NSH)
Dronetest.io <http://dronetest.io/> powered by Hans-CI <http://dronetest.io/> with teutonic thoroughness.
spudarnia@yahoo.com [nuttx]
2018-02-21 17:39:05 UTC
Permalink
I am familiar with this. It is a requirement for me that whatever infrastructure is added is independent of any other project. So thanks for your offer, but I do not wish to be a project under the PX4 umbrella.
Loading...