Transport notes
These are implemented in base-board.fuegoclass.
This page describes some of the issues related to these functions.
ssh and scp, adb, serio and ttc are candidates for tools that fuego can use for transport operations. Each of these has peculiarities that are worth describing.
scp supports a -r option to use recursion with a set of files and directories.
scp supports transferring more than one file at a time to a single destination directory
- that is, you can do this: scp foo bar target:/tmp
- can you also do this: scp target:foo target:bar /tmp (this is never done by fuego)
table of sub-tool features [edit section]
ssh, adb, serio and ttc are candidates for tools that fuego can use for transport operations.Here is a table of sub-tool features:
tool and command ^ | supports directory recursion ^ | uses -r ^ | supports multiple sources ^ | supports target wildcards ^ |
adb pull | yes | no | yes? | ? |
serio -p | no | no | no | no |
adb push | yes | no | no | no |
scp | yes | yes | yes | yes |
serio -g | no | no | no | no |
ttc | depends on wrapped command | can pass it through to sub-command | yes | depends on wrapped command |
missing column 'test' in table |
places where 'get' is called [edit section]
in the system:- functions.sh - in post_test, to get syslogs.
- get /tmp/fuego.${1}/*.${BUILD_ID}.* $FUEGO_LOGS_PATH/${JOB_NAME}/systemlogs/
- uses wildcards, but not recursion (gets both .before and .after log)
- uses wildcard to avoid having to reference full log name and build number (and suffix: 'before' or 'after')
- dump_syslogs -> ov_rootfs_logread is used to create the syslogs
- filename is: ${NODE_NAME}.${BUILD_ID}.${BUILD_NUMBER}.$2
- where $2 is 'before' or 'after'
- changed to:
- get /tmp/fuego.${1}/${NODE_NAME}.${BUILD_ID}.${BUILD_NUMBER}.before $FUEGO_LOGS_PATH/${JOB_NAME}/systemlogs/
- get /tmp/fuego.${1}/${NODE_NAME}.${BUILD_ID}.${BUILD_NUMBER}.after $FUEGO_LOGS_PATH/${JOB_NAME}/systemlogs/
- get /tmp/fuego.${1}/*.${BUILD_ID}.* $FUEGO_LOGS_PATH/${JOB_NAME}/systemlogs/
- functions.sh - in get_testlog, to get the test log
- get ${2} $FUEGO_LOGS_PATH/${JOB_NAME}/testlogs/${NODE_NAME}.${BUILD_ID}.${BUILD_NUMBER}.log
in test scripts:
- 'get' is not used in any tests scripts currently
places where 'put' is called [edit section]
in the system:- 'put' is not used by the system
in test scripts: *
test ^ | script ^ | command ^ | uses -r? ^ | uses wildcard ^ | use multiple sources ^ |
Benchmark.Dhrystone | Dhrystone.sh | put dhrystone $BOARD_TESTDIR/fuego.$TESTDIR/ | | return 1 * | no | no | no |
Benchmark.GLMark | GLMark.sh | put -r glmark data $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | no |
Benchmark.IOzone | iozone.sh | put fileop iozone pit_server $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
Benchmark.Interbench | interbench.sh | put interbench $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.Java | java_perf.sh | put *.jar $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | no |
Benchmark.Stream | stream.sh | put stream_c.exe $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
Benchmark.Whetstone | Whetstone.sh | put whetstone $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.aim7 | aim7.sh | put src/reaim $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.aim7 | aim7.sh | put -r scripts $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | no |
Benchmark.aim7 | aim7.sh | put -r data $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | no |
Benchmark.blobsallad | blobsallad.sh | put blobsallad $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.blobsallad | blobsallad.sh | put -r maps $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | no |
Benchmark.bonnie | bonnie++.sh | put bonnie++ $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.cyclictest | cyclictest.sh | put cyclictest $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.dbench | dbench.sh | put dbench client.txt $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
Benchmark.ebizzy | ebizzy.sh | put ebizzy $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.ffsb | ffsb.sh | put examples/profile_everything $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.ffsb | ffsb.sh | put ffsb $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.fio | fio.sh | put fio examples/fsx-current examples/ssd-test-current $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
Benchmark.gtkperf | gtkperf.sh | put src/gtkperf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.gtkperf | gtkperf.sh | put pixmaps/*.png $BOARD_TESTDIR/fuego.$TESTDIR/share/pixmaps | no | yes | no |
Benchmark.hackbench | hackbench.sh | put hackbench $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.himeno | himeno.sh | put bmt $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.iperf | iperf.sh | put src/iperf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.linpack | linpack.sh | put linpack $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.lmbench2 | lmbench.sh | put -r * $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
Benchmark.nbench-byte | nbench-byte.sh | put hardware nbench sysinfo.sh *.DAT $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | yes |
Benchmark.nbench_byte | nbench_byte.sh | put hardware nbench sysinfo.sh *.DAT $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | yes |
Benchmark.netpipe | NetPIPE.sh | put NPtcp $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.reboot | reboot.sh | put $TEST_HOME/$tarball $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.signaltest | signaltest.sh | put signaltest $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.tiobench | tiobench.sh | put tiotest $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.x11perf | x11perf.sh | put x11perf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.aiostress | aiostress.sh | put aiostress $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.arch_timer | arch_timer.sh | put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
Functional.bc | bc-script.sh | put bc-device.sh $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.bzip2 | bzip2.sh | put {sample*,run-tests.sh} $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | yes? |
Functional.cmt | cmt.sh | put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
Functional.crashme | crashme.sh | put crashme $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.expat | expat.sh | put xmlwf/.libs/xmlwf $BOARD_TESTDIR/xmlwf/xmlwf; | no | no | no |
Functional.expat | expat.sh | put -r XML-Test-Suite.tar tests/.libs/* tests/xmltest.sh $BOARD_TESTDIR/fuego.$TESTDIR/; | yes | yes | yes |
Functional.fontconfig | fontconfig.sh | put -r test/* $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
Functional.ft2demos | ft2demos.sh | put ${tarball%.tar*}/bin/.libs/* $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | no |
Functional.glib | glib2.sh | put gio/tests/Makefile.am `find . -name .libs | xargs -IDIRS find DIRS -not -type d -not -name '*.so*' -not -name '*.la*' -perm /u+x` $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no! | yes |
Functional.hello_world | hello_world.sh | put hello $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.ipv6connect | ipv6connect.sh | put ipv6connect $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.jpeg | jpeg.sh | put run-tests.sh test* djpeg cjpeg jpegtran $BOARD_TESTDIR/fuego.$TESTDIR/; | no | yes | yes |
Functional.linus_stress | linus_stress.sh | put linus_stress $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.pi_tests | pi_tests.sh | put ./pi_stress $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.posixtestsuite | posixtestsuite.sh | put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
Functional.rmaptest | rmaptest.sh | put rmap-test $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.scifab | scifab.sh | put -r ./* $OSV_HOME/osv.$TESTDIR/ | yes | yes | no |
Functional.scrashme | scrashme.sh | put scrashme $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.sdhi_0 | sdhi_0.sh | put -r ./* $OSV_HOME/osv.$TESTDIR/ | yes | yes | no |
Functional.stress | stress.sh | put src/stress $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.synctest | synctest.sh | put synctest $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.zlib | zlib.sh | put example minigzip $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
LTP | ltp.sh | put -r fs_tests/* $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
LTP | ltp.sh | put -r target_bin /tmp/fuego.$TESTDIR/ | yes | no | no |
LTP | ltp.sh | put -r testcases/kernel/device-drivers/rtc/rtc01 $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | no |
OpenSSL | openssl.sh | put -r apps util test run-tests.sh $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | yes |
netperf | netperf.sh | put *script $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | no |
netperf | netperf.sh | put netperf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Notes:
- Dhrystone has '|| return 1' - is this needed?
- glib2 has a find|xargs command in the put parameters, for crying out loud!
- only expat and gtkperf put anything outside of $BOARD_TESTDIR/fuego.$TESTDIR
rules [edit section]
Here is a list of rules regarding use of 'get' and 'put' in Fuego:
- get only ever specifies:
- a single file on the target as the source
- a single directory on the host as the destination
- get never takes wildcards
- get never takes multiple files
- put can take a leading '-r' argument, which means to recurse directories
- if -r is used, it must be the first argument to 'put'
- put can take wildcards on the host for sources
- put can take multiple files and directories on the host for sources
- put always takes a single directory on the target as the destination