Fuego wiki

Login or create account

Transport notes

This page has some random notes about the fuego transport functions.

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  ^
scp yes yes yes yes
ttc depends on wrapped command can pass it through to sub-command yes depends on wrapped command
serio -g no no no no
serio -p no no no no
adb pull yes no yes? ?
adb push yes no no no

places where 'get' is called [edit section]

in the system:
  • - 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/
  • - 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 put dhrystone $BOARD_TESTDIR/fuego.$TESTDIR/ | | return 1 * no no no
Benchmark.GLMark put -r glmark data $BOARD_TESTDIR/fuego.$TESTDIR/ yes no no
Benchmark.netpipe put NPtcp $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.Whetstone put whetstone $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.aim7 put src/reaim $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.aim7 put -r scripts $BOARD_TESTDIR/fuego.$TESTDIR/ yes no no
Benchmark.aim7 put -r data $BOARD_TESTDIR/fuego.$TESTDIR/ yes no no
Functional.aiostress put aiostress $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.arch_timer put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
Functional.bc put $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.blobsallad put blobsallad $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.blobsallad put -r maps $BOARD_TESTDIR/fuego.$TESTDIR/ yes no no
Benchmark.bonnie put bonnie++ $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.bzip2 put {sample*,} $BOARD_TESTDIR/fuego.$TESTDIR/ no yes yes?
Functional.cmt put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
Functional.crashme put crashme $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.cyclictest put cyclictest $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.dbench put dbench client.txt $BOARD_TESTDIR/fuego.$TESTDIR/ no no yes
Benchmark.ebizzy put ebizzy $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.expat put xmlwf/.libs/xmlwf $BOARD_TESTDIR/xmlwf/xmlwf; no no no
Functional.expat put -r XML-Test-Suite.tar tests/.libs/* tests/ $BOARD_TESTDIR/fuego.$TESTDIR/; yes yes yes
Benchmark.ffsb put examples/profile_everything $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.ffsb put ffsb $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.fio put fio examples/fsx-current examples/ssd-test-current $BOARD_TESTDIR/fuego.$TESTDIR/ no no yes
Functional.fontconfig put -r test/* $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
Functional.ft2demos put ${tarball%.tar*}/bin/.libs/* $BOARD_TESTDIR/fuego.$TESTDIR/ no yes no
Functional.glib put gio/tests/ `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 put src/gtkperf $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.gtkperf put pixmaps/*.png $BOARD_TESTDIR/fuego.$TESTDIR/share/pixmaps no yes no
Benchmark.hackbench put hackbench $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.hello_world put hello $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.himeno put bmt $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.Interbench put interbench $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.IOzone put fileop iozone pit_server $BOARD_TESTDIR/fuego.$TESTDIR/ no no yes
Benchmark.iperf put src/iperf $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.ipv6connect put ipv6connect $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.Java put *.jar $BOARD_TESTDIR/fuego.$TESTDIR/ no yes no
Functional.jpeg put test* djpeg cjpeg jpegtran $BOARD_TESTDIR/fuego.$TESTDIR/; no yes yes
Benchmark.linpack put linpack $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.linus_stress put linus_stress $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.lmbench2 put -r * $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
LTP put -r fs_tests/* $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
LTP put -r target_bin /tmp/fuego.$TESTDIR/ yes no no
LTP put -r testcases/kernel/device-drivers/rtc/rtc01 $BOARD_TESTDIR/fuego.$TESTDIR/ yes no no
Benchmark.nbench-byte put hardware nbench *.DAT $BOARD_TESTDIR/fuego.$TESTDIR/ no yes yes
Benchmark.nbench_byte put hardware nbench *.DAT $BOARD_TESTDIR/fuego.$TESTDIR/ no yes yes
netperf put *script $BOARD_TESTDIR/fuego.$TESTDIR/ no yes no
netperf put netperf $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
OpenSSL put -r apps util test $BOARD_TESTDIR/fuego.$TESTDIR/ yes no yes
Functional.pi_tests put ./pi_stress $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.posixtestsuite put -r ./* $BOARD_TESTDIR/fuego.$TESTDIR/ yes yes no
Benchmark.reboot put $TEST_HOME/$tarball $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.rmaptest put rmap-test $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.scifab put -r ./* $OSV_HOME/osv.$TESTDIR/ yes yes no
Functional.scrashme put scrashme $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.sdhi_0 put -r ./* $OSV_HOME/osv.$TESTDIR/ yes yes no
Benchmark.signaltest put signaltest $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.Stream put stream_c.exe $BOARD_TESTDIR/fuego.$TESTDIR/ no no yes
Functional.stress put src/stress $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.synctest put synctest $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.tiobench put tiotest $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Benchmark.x11perf put x11perf $BOARD_TESTDIR/fuego.$TESTDIR/ no no no
Functional.zlib put example minigzip $BOARD_TESTDIR/fuego.$TESTDIR/ no no yes


  • 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

TBWiki engine 1.8.2 by Tim Bird