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 'script' 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.netpipe | NetPIPE.sh | put NPtcp $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Functional.hello_world | hello_world.sh | put hello $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.himeno | himeno.sh | put bmt $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.Interbench | interbench.sh | put interbench $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.IOzone | iozone.sh | put fileop iozone pit_server $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
Benchmark.iperf | iperf.sh | put src/iperf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.ipv6connect | ipv6connect.sh | put ipv6connect $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.Java | java_perf.sh | put *.jar $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | no |
Functional.jpeg | jpeg.sh | put run-tests.sh test* djpeg cjpeg jpegtran $BOARD_TESTDIR/fuego.$TESTDIR/; | no | yes | yes |
Benchmark.linpack | linpack.sh | put linpack $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Functional.linus_stress | linus_stress.sh | put linus_stress $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.lmbench2 | lmbench.sh | put -r * $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | yes | no |
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 |
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 |
netperf | netperf.sh | put *script $BOARD_TESTDIR/fuego.$TESTDIR/ | no | yes | no |
netperf | netperf.sh | put netperf $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
OpenSSL | openssl.sh | put -r apps util test run-tests.sh $BOARD_TESTDIR/fuego.$TESTDIR/ | yes | no | yes |
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 |
Benchmark.reboot | reboot.sh | put $TEST_HOME/$tarball $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | 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 |
Benchmark.signaltest | signaltest.sh | put signaltest $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | no |
Benchmark.Stream | stream.sh | put stream_c.exe $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
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 |
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.zlib | zlib.sh | put example minigzip $BOARD_TESTDIR/fuego.$TESTDIR/ | no | no | yes |
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