Confidential PA1 10/23/2014 1
Fuego
Introduction to the
Fuego
Test System
Tim Bird Architecture Group Chair LF CE Workgroup
1
Fuego Test System Tim Bird Architecture Group Chair 1 LF CE - - PowerPoint PPT Presentation
Fuego Introduction to the Fuego Test System Tim Bird Architecture Group Chair 1 LF CE Workgroup 1 10/23/2014 PA1 Confidential Fuego Introduction to the Fuego Test System Tim Bird Architecture Group Chair 2 LF CE Workgroup 2
Confidential PA1 10/23/2014 1
Tim Bird Architecture Group Chair LF CE Workgroup
1
Confidential PA1 10/23/2014 2
Tim Bird Architecture Group Chair LF CE Workgroup
2
Confidential PA1 10/23/2014 3
3
Confidential PA1 10/23/2014 4
Confidential PA1 10/23/2014 5
Confidential PA1 10/23/2014 6
Confidential PA1 10/23/2014 7
Confidential PA1 10/23/2014 8
type stuff
extended functionality
systems
Confidential PA1 10/23/2014 9
Test history and test selection dashboard
support host/target configurations
Confidential PA1 10/23/2014 10
Confidential PA1 10/23/2014 11
to allow system to interact with target boards
and control of target:
etc.
based on board configuration, toolchain variables, and test variables
Confidential PA1 10/23/2014 12
variables
generator at runtime, into a full script to execute the test and collect results
Confidential PA1 10/23/2014 13
<board>.conf tools.sh testplan
test specs test-script.sh test_build() test_deploy() test_run() <target>_prolog.sh functional.sh functions.sh common.sh
reports.sh etc. Base script Extended script Fuego functions
Confidential PA1 10/23/2014 14
configurations is important
abstracted
run in multiple configurations
Confidential PA1 10/23/2014 15
dhrystone, ebizzy, ffsb, fio, GLMark, gtkperf, hackbench, himeno, Interbench, IOzone, iperf, Java, linpack, lmbench2, nbench, netperf, netpipe, OpenSSL, reboot, signaltest, Stream, tiobench, whetstone, x11perf, aiostress, arch_timer, bzip2, cmt, crashme, expat, fontconfig, glib, ipv6connect, jpeg, libpng, linus_stress, LTP, netperf, posixtestsuite, rmaptest, scifab, scrashme, sdhi_o, stress, synctest, zlib
tests
Confidential PA1 10/23/2014 16
available, to help you build your own SDK in YP/OE
needed for building all tests
Confidential PA1 10/23/2014 17
reproducible
Confidential PA1 10/23/2014 18
18
Confidential PA1 10/23/2014 19
programs is a single shell script
Confidential PA1 10/23/2014 20
Host machine: Docker container: Target board Web control interface Toolchains Config Builds Logs Volume Mount Container build system Jenkins Test programs Scripts
Confidential PA1 10/23/2014 21
container image build
Confidential PA1 10/23/2014 22
(wait a bit)
container:
Confidential PA1 10/23/2014 23
Confidential PA1 10/23/2014 24
Confidential PA1 10/23/2014 25
Confidential PA1 10/23/2014 26
Confidential PA1 10/23/2014 27
27
Confidential PA1 10/23/2014 28
Confidential PA1 10/23/2014 29
Confidential PA1 10/23/2014 30
that describe the board
filename “<target-name>.board”
(device, partitions, etc.)
for building test programs
Confidential PA1 10/23/2014 31
inherit "base-board" include "base-params" IPADDR="172.17.0.1" SSH_PORT=5555 LOGIN="root" FUEGO_HOME="/home/a" PASSWORD="adm" PLATFORM="qemu-armv7hf" TRANSPORT="ssh" ARCHITECTURE="arm" SATA_DEV="/dev/sdb1" SATA_MP="/mnt/sata" USB_DEV="/dev/sda1" USB_MP="/mnt/usb" MMC_DEV="/dev/mmcblk0p2" MMC_MP="/mnt/mmc" LTP_OPEN_POSIX_SUBTEST_COUNT_POS="1319" LTP_OPEN_POSIX_SUBTEST_COUNT_NEG="169" EXPAT_SUBTEST_COUNT_POS="1769“” EXPAT_SUBTEST_COUNT_NEG="41"
Confidential PA1 10/23/2014 32
to “boards/<target-name>.board”
Confidential PA1 10/23/2014 33
Confidential PA1 10/23/2014 34
/userdata/toolchains
Confidential PA1 10/23/2014 35
like: /userdata/toolchains/poky/2.0.1)
Confidential PA1 10/23/2014 36
this toolchain
userdata/conf/tools.sh file
script, and wrapper a few things
board file
Confidential PA1 10/23/2014 37
target)
Confidential PA1 10/23/2014 38
Confidential PA1 10/23/2014 39
for pass/fail
Confidential PA1 10/23/2014 40
program
core repository
Confidential PA1 10/23/2014 41
test_processing
Confidential PA1 10/23/2014 42
for pass or fail
a test
after a test
Confidential PA1 10/23/2014 43
tarball=synctest.tar.gz function test_build { make && touch test_suite_ready || build_error "error while building test" } function test_deploy { put synctest $FUEGO_HOME/fuego.$TESTDIR/ } function test_run { assert_define FUNCTIONAL_SYNCTEST_MOUNT_BLOCKDEV assert_define FUNCTIONAL_SYNCTEST_MOUNT_POINT assert_define FUNCTIONAL_SYNCTEST_LEN assert_define FUNCTIONAL_SYNCTEST_LOOP hd_test_mount_prepare $FUNCTIONAL_SYNCTEST_MOUNT_BLOCKDEV \ $FUNCTIONAL_SYNCTEST_MOUNT_POINT report "cd $FUNCTIONAL_SYNCTEST_MOUNT_POINT/fuego.\ $TESTDIR; $FUEGO_HOME/fuego.$TESTDIR/synctest \ $FUNCTIONAL_SYNCTEST_LEN \ $FUNCTIONAL_SYNCTEST_LOOP" hd_test_clean_umount $FUNCTIONAL_SYNCTEST_MOUNT_BLOCKDEV \ $FUNCTIONAL_SYNCTEST_MOUNT_POINT } function test_processing { log_compare "$TESTDIR" "1" "PASS : sync interrupted" "p" } . $FUEGO_SCRIPTS_PATH/functional.sh
Confidential PA1 10/23/2014 44
expression, and formats it into a python map
plot
Confidential PA1 10/23/2014 45
Confidential PA1 10/23/2014 46
46
Confidential PA1 10/23/2014 47
build systems
network
harware” problem
Confidential PA1 10/23/2014 48
front end
Confidential PA1 10/23/2014 49
Confidential PA1 10/23/2014 50
now
Confidential PA1 10/23/2014 51
Automation)
and purifying
Confidential PA1 10/23/2014 52
Confidential PA1 10/23/2014 53
53