FPP tests

Nightly runs of fpp-tests against fpp master: every scenario under ASan and TSan, once more in a coverage build to see what FPP code the scenarios reach, and the web UI suite in a browser against the pages served as on a player, with the ASan fppd behind them. Last run 2026-10-29 08:12Z, fpp 10.x-master-3039-g54bfd083 (run log).

ASan

1975 / 2241 passed

9 failed · 257 skipped · 0 expected failures · 199 min · 2026-10-29

TSan

1937 / 2241 passed

8 failed · 296 skipped · 0 expected failures · 219 min · 2026-10-29

coverage build

1972 / 2241 passed

8 failed · 261 skipped · 0 expected failures · 198 min · 2026-10-29

Pi 5

108 / 253 passed

0 failed · 145 skipped · 0 expected failures · 24 min · 2026-10-29

AM62x Beagle

70 / 253 passed

0 failed · 183 skipped · 0 expected failures · 27 min · 2026-10-29

BeagleBone Black

32 / 33 passed

0 failed · 1 skipped · 0 expected failures · 8 min · 2026-10-29

PocketBeagle

20 / 33 passed

0 failed · 13 skipped · 0 expected failures · 6 min · 2026-10-29

web UI

1012 / 1018 passed

2 failed · 4 skipped · 0 expected failures · 50 min · 2026-10-29

line coverage

77.3%

67,190 of 86,967 lines +0.2%

function coverage

82.2%

5,248 of 6,387 functions · 23 of 357 files never reached +0.2%

Line-by-line coverage report Every function and its call count (CSV)

Want to help? Pick a directory or file below with many unreached lines, open it in the coverage report to see which paths no scenario takes, and add a scenario that drives them (how to write one).

Coverage over time

0%23%46%69%92%2026-10-142026-10-29
linesfunctions

Scenarios per run

06441289193325772026-10-142026-10-29
ASanTSancoverage buildPi 5AM62x BeagleBeagleBone BlackPocketBeagle

Coverage by source directory

FPP's own code under src/ (fppd, its plugins and tools), not the submodules. Most lines no scenario reaches first: these are the places a new scenario adds the most. Some code can't run in the Docker suite at all (cape GPIO, PRU, framebuffers, serial ports), so no directory is expected to reach 100%.

directoryfileslinesline coveragefunctionslines not reached
channeloutput8011,275
72.0% +0.1%
77.0%3,154
overlays/wled2411,705
74.5% -0.3%
74.5%2,982
(top level)6519,398
85.2% +0.1%
90.1%2,867
oled143,213
34.5% no change
46.5%2,104
mediaoutput2611,482
82.5% no change
89.0%2,010
non-gpl/BBShiftPanel21,444
2.6% no change
10.5%1,406
playlist223,977
79.3% no change
85.7%825
overlays144,710
83.3% no change
90.5%788
boot63,973
82.5% +1.9%
96.1%695
util232,691
76.5% +2.9%
75.2%632
sensors9896
62.9% no change
78.8%332
framebuffer51,567
79.8% no change
86.2%316
non-gpl/CapeUtils21,565
80.4% no change
87.8%307
fseq31,910
87.1% no change
85.2%247
commands122,490
91.2% no change
98.4%220
non-gpl/BBShiftString21,116
83.2% no change
90.9%188
non-gpl/FalconV5Support2376
54.5% no change
70.3%171
channeloutput/processors22622
77.8% no change
75.0%138
non-gpl/DPIPixels2574
77.7% no change
92.0%128
non-gpl/BBB48String2669
84.2% no change
85.7%106
channeloutput/stringtesters7405
82.7% no change
91.3%70
channeltester8806
92.6% no change
93.8%60
overlays/wled/lib8tion5103
69.9% no change
44.0%31

The 40 files with the most unreached lines

filelinesline coveragefunctionslines not reached
non-gpl/BBShiftPanel/BBShiftPanel.cpp1,437
2.6%
11.4%1,399
oled/SSD1306_OLED.c796
27.3%
43.1%579
overlays/wled/FX.cpp6,093
90.6%
97.7%571
overlays/wled/colorutils.cpp601
12.1%
13.2%528
mediaoutput/AES67Manager.cpp2,812
81.8%
87.9%511
channeloutput/PanelInterleaveHandler.cpp524
5.5%
8.1%495
overlays/wled/FX_fcn.cpp945
50.5%
51.4%468
mediaoutput/GStreamerOut.cpp2,903
84.5%
96.5%450
overlays/wled/noise.cpp419
0.0%
0.0%419
MultiSync.cpp2,819
85.7%
97.4%404
oled/FPPStatusOLEDPage.cpp558
30.8%
45.8%386
playlist/Playlist.cpp1,862
82.9%
89.0%319
non-gpl/CapeUtils/CapeUtils.cpp1,505
80.1%
87.5%300
oled/FPPMainMenu.cpp326
14.1%
13.3%280
overlays/PixelOverlayModel.cpp976
72.3%
88.7%270
channeloutput/RGBMatrix.cpp255
0.0%
0.0%255
boot/FPPINIT_Config.cpp1,125
78.5%
93.9%242
overlays/PixelOverlay.cpp1,374
83.2%
92.5%231
OutputMonitor.cpp744
69.6%
80.4%226
fppd.cpp1,251
82.0%
84.7%225
framebuffer/KMSFrameBuffer.cpp839
73.8%
84.6%220
fseq/FSEQFile.cpp1,556
85.9%
85.5%219
oled/NetworkOLEDPage.cpp217
0.0%
0.0%217
mediaoutput/VideoInputManager.cpp1,152
81.2%
85.5%217
oled/I2C1602_2004_DisplayDriver.cpp212
0.0%
0.0%212
gpio.cpp599
65.4%
69.8%207
mediaoutput/V4L2Device.cpp203
0.0%
0.0%203
non-gpl/BBShiftString/BBShiftString.cpp1,075
82.5%
89.1%188
channeloutput/PixelString.cpp568
67.4%
83.3%185
oled/OLEDPages.cpp425
56.7%
73.9%184
channeloutput/ILI9488.cpp182
0.0%
0.0%182
channeloutput/PCA9685.cpp464
60.8%
85.7%182
mediaoutput/VideoOutputManager.cpp1,244
85.7%
87.1%178
boot/FPPINIT_Audio.cpp1,458
87.8%
98.0%178
non-gpl/FalconV5Support/FalconV5Support.cpp370
53.8%
64.5%171
overlays/wled/colors.cpp342
52.6%
40.9%162
channeloutput/VirtualDisplayBase.cpp377
57.0%
80.0%162
mediaoutput/OpusRTPManager.cpp603
74.5%
90.0%154
boot/FPPINIT_Network.cpp917
83.6%
97.3%150
channeloutput/spixels.cpp148
0.0%
0.0%148

Recent runs

runfpp ASanTSancoverage buildPi 5AM62x BeagleBeagleBone BlackPocketBeagleweb UIline coverage
2026-10-29 08:12Z10.x-master-3039-g54bfd0831975/2241 · 9 failed1937/2241 · 8 failed1972/2241 · 8 failed108/25370/25332/3320/331012/1018 · 2 failed77.3%
2026-10-28 08:09Z10.x-master-3032-g809c07af1939/2193 · 1 failed1895/2193 · 7 failed1936/2193107/25169/251 · 1 failed32/3320/331002/1007 · 1 failed77.1%
2026-10-27 08:12Z10.x-master-3013-g38d5636f1750/20011719/20011749/2001107/25170/25132/3320/33978/983 · 1 failed75.5%
2026-10-26 08:22Z10.x-master-3002-gb4fac3501674/19251649/1925 · 2 failed1673/192553/9432/3320/33954/961 · 3 failed69.3%
2026-10-25 08:02Z10.x-master-2987-g606d17621607/17011585/1701 · 1 failed1605/1701 · 1 failed51/92622/62667.7%
2026-10-24 07:57Z10.x-master-2970-g53cd678f1532/1625 · 1 failed1510/1625 · 2 failed1531/1625 · 1 failed50/88506/51067.1%
2026-10-23 08:02Z10.x-master-2956-g36bc7e7b1506/15941479/1594 · 6 failed1504/1594 · 1 failed50/87503/509 · 2 failed65.7%
2026-10-22 07:58Z10.x-master-2943-g77cc90511397/1485 · 1 failed1371/1485 · 8 failed1397/1485 · 1 failed49/87 · 1 failed483/48764.8%
2026-10-21 17:31Z10.x-master-2919-g3fe0c2d31385/14721373/14801391/148050/87474/47464.8%
2026-10-21 09:46Z10.x-master-2876-gc0ba73ccno resultsno results1364/1456 · 4 failed443/451 · 8 failed69.4%
2026-10-20 08:43Z10.x-master-2793-g73f7fd82827/851815/851 · 7 failed827/85155/5561.8%
2026-10-19 08:43Z10.x-master-2747-ga0b4c6a0670/694 · 1 failed663/694 · 4 failed670/694 · 1 failed32/3255.6%
2026-10-18 15:38Z10.x-master-2688-g5cd6430e646/66232/3255.3%
2026-10-18 08:22Z10.x-master-2684-g52ea0347646/662642/662646/66255.3%
2026-10-17 14:02Z10.x-master-2679-gadba066a642/661 · 3 failed642/661642/661 · 3 failed55.0%
2026-10-17 08:21Z10.x-master-2679-gadba066a642/661 · 3 failed642/661642/661 · 3 failed55.0%
2026-10-16 08:25Z10.x-master-2623-ga896ff39642/658639/658642/65855.3%
2026-10-15 15:25Z10.x-master-2617-gbc36ac2d641/657 · 1 failed55.4%
2026-10-15 08:22Z10.x-master-2606-gf4a1ed3e608/623594/623 · 11 failed607/623 · 1 failed54.3%
2026-10-14 21:47Z10.x-master-2602-g7ccba9e7575/61151.8%

All runs, as JSON: history.json