mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
abe163c335
* Removes all previous structs that represented an on-disc block layout and were therfore subject to a number of layout restrictions (packed, padding members, enum representations, etc.). * Adds a replacement struct without any layout restrictions for each of the removed structs. The new structs are named similar to the old structs. * Adds block encoding and decoding utilities for easily converting from the new structs to on-disc blocks and vice-versa (Block_scanner, Block_generator, T::decode_to_blk, T::encode_from_blk) * Adapts all affected places in the library to encode and decode proberly instead of simply casting pointers. * Thereby cleans up the hashing utilities to use typed-reference args instead of void pointers. * Re-enables run/tresor_tester and test-file_vault_vonfig_report for platforms rpi, imx53_qsb, imx53_qsb_tz, imx6q_sabrelite, imx7d_sabre. Ref #4819
1161 lines
52 KiB
Plaintext
1161 lines
52 KiB
Plaintext
# riscv lacks jitterentropy support currently
|
|
if {[get_cmd_switch --autopilot] && [have_board virt_qemu_riscv]} {
|
|
puts "Autopilot mode is not supported on this platform."
|
|
exit 0
|
|
}
|
|
|
|
set dd [installed_command dd]
|
|
|
|
proc tresor_image_name { } {
|
|
return "tresor_block.img"
|
|
}
|
|
|
|
proc lx_local_tresor_image { } {
|
|
return bin/[tresor_image_name]
|
|
}
|
|
|
|
proc lx_autopilot_tresor_image { } {
|
|
return /tmp/[tresor_image_name].[exec id -un]
|
|
}
|
|
|
|
proc lx_tresor_image_size_mb { } {
|
|
return 400
|
|
}
|
|
|
|
proc benchmark_blk_count { } {
|
|
|
|
if {[have_board linux]} {
|
|
|
|
# benchmarks over 50 mebibyte
|
|
return 12800
|
|
}
|
|
if {[have_board virt_qemu_arm_v8a]} {
|
|
|
|
# benchmarks over 25 mebibyte
|
|
return 6400
|
|
}
|
|
# benchmarks turned off
|
|
return 0
|
|
}
|
|
|
|
proc block_io_vfs_ram_mb { } {
|
|
|
|
if {[benchmark_blk_count] > 0} {
|
|
|
|
# when benchmarks turned on
|
|
set bench_mb [expr (([benchmark_blk_count] * 4096) / 1024 / 1024)]
|
|
return [expr 8 * $bench_mb]
|
|
}
|
|
# when benchmarks turned off
|
|
return 10
|
|
}
|
|
|
|
proc jent_avail { } {
|
|
|
|
if {[have_board pbxa9]} { return 0 }
|
|
if {[have_board zynq_qemu]} { return 0 }
|
|
return 1
|
|
}
|
|
|
|
append build_components {
|
|
core
|
|
init
|
|
timer
|
|
server/vfs
|
|
app/tresor_tester
|
|
server/log_terminal
|
|
server/report_rom
|
|
lib/vfs_tresor_crypto_aes_cbc
|
|
lib/vfs_tresor_trust_anchor
|
|
lib/vfs_import
|
|
}
|
|
|
|
append_if [jent_avail] build_components { lib/vfs_jitterentropy }
|
|
|
|
append_if [have_board linux] build_components { server/lx_fs }
|
|
append_if [have_board linux] build_components { server/lx_block }
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
append config {
|
|
|
|
<config verbose="yes">
|
|
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
</parent-provides>
|
|
|
|
<start name="timer" caps="100">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IRQ"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="report_rom" caps="100">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config verbose="yes"/>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="log_terminal" caps="100">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Terminal"/></provides>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
if {[have_board linux]} {
|
|
|
|
append config {
|
|
|
|
<start name="block_io_fs" caps="100" ld="no">
|
|
<binary name="lx_fs"/>
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<default-policy root="/" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
|
|
} else {
|
|
|
|
append config {
|
|
|
|
<start name="block_io_fs" caps="100">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="} [block_io_vfs_ram_mb] {M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="block_io">
|
|
<ram/>
|
|
</dir>
|
|
<import>
|
|
<dir name="block_io">
|
|
<inline name="} [tresor_image_name] {"></inline>
|
|
</dir>
|
|
</import>
|
|
</vfs>
|
|
<default-policy root="/block_io" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
}
|
|
}
|
|
append config {
|
|
|
|
<start name="trust_anchor_fs" caps="200">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides><service name="File_system"/></provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="storage">
|
|
<ram/>
|
|
</dir>
|
|
|
|
<dir name="dev"> }
|
|
|
|
append_if [jent_avail] config {
|
|
|
|
<jitterentropy name="jitterentropy"/> }
|
|
|
|
append_if [expr ![jent_avail]] config {
|
|
|
|
<inline name="jitterentropy">0123456789abcdefghijklmnopqrstuv</inline> }
|
|
|
|
append config {
|
|
<tresor_trust_anchor name="tresor_trust_anchor" storage_dir="/storage"/>
|
|
</dir>
|
|
</vfs>
|
|
|
|
<default-policy root="/dev/tresor_trust_anchor" writeable="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="test" caps="200">
|
|
|
|
<binary name="tresor_tester"/>
|
|
<resource name="RAM" quantum="10M"/>
|
|
<config ld_verbose="yes">
|
|
|
|
<verbose
|
|
cmd_pool_cmd_pending="no"
|
|
cmd_pool_cmd_in_progress="no"
|
|
cmd_pool_cmd_completed="no"
|
|
blk_io_req_in_progress="no"
|
|
blk_io_req_completed="no"
|
|
ta_req_in_progress="no"
|
|
ta_req_completed="no"
|
|
client_data_mismatch="yes"
|
|
client_data_transferred="no"/>
|
|
|
|
<block-io type="vfs" path="/} [tresor_image_name] {"/>
|
|
<crypto path="/crypto"/>
|
|
<trust-anchor path="/trust_anchor"/>
|
|
|
|
<vfs>
|
|
<fs buffer_size="1M"/>
|
|
<tresor_crypto_aes_cbc name="crypto"/>
|
|
<dir name="trust_anchor">
|
|
<fs label="trust_anchor"/>
|
|
</dir>
|
|
</vfs>
|
|
|
|
<commands>
|
|
|
|
<log string="Step 1: Initialize Trust Anchor and Tresor device, start Tresor library"/>
|
|
|
|
<trust-anchor op="initialize" passphrase="foobar"/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="3"
|
|
nr_of_children="8"
|
|
nr_of_leafs="64" />
|
|
|
|
<free-tree
|
|
nr_of_levels="3"
|
|
nr_of_children="8"
|
|
nr_of_leafs="64" />
|
|
|
|
</initialize>
|
|
<check/>
|
|
<construct/>
|
|
|
|
<log string="Step 2: test synchronous write, read"/>
|
|
|
|
<request op="write" vba="1" count="1" sync="yes" salt="1234"/>
|
|
<request op="read" vba="1" count="1" sync="yes" salt="1234"/>
|
|
<request op="write" vba="12" count="10" sync="yes"/>
|
|
<request op="read" vba="12" count="10" sync="yes"/>
|
|
<request op="write" vba="24" count="40" sync="yes"/>
|
|
<request op="read" vba="24" count="40" sync="yes"/>
|
|
|
|
<log string="Step 3: test synchronous write, read, compare"/>
|
|
|
|
<request op="write" vba="9" count="1" sync="yes" salt="4321"/>
|
|
<request op="read" vba="9" count="1" sync="yes" salt="4321"/>
|
|
<request op="write" vba="41" count="3" sync="yes" salt="8765"/>
|
|
<request op="read" vba="41" count="3" sync="yes" salt="8765"/>
|
|
<request op="write" vba="9" count="1" sync="yes" salt="1234"/>
|
|
<request op="write" vba="41" count="19" sync="yes" salt="5678"/>
|
|
<request op="read" vba="9" count="1" sync="yes" salt="1234"/>
|
|
<request op="read" vba="41" count="19" sync="yes" salt="5678"/>
|
|
|
|
<log string="Step 4: test asynchronous write, read"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no"/>
|
|
<request op="write" vba="15" count="10" sync="no"/>
|
|
<request op="read" vba="34" count="2" sync="no"/>
|
|
<request op="read" vba="21" count="5" sync="no"/>
|
|
<request op="write" vba="12" count="12" sync="no"/>
|
|
<request op="read" vba="32" count="8" sync="no"/>
|
|
<request op="write" vba="17" count="7" sync="no"/>
|
|
<request op="write" vba="29" count="9" sync="no"/>
|
|
<request op="read" vba="14" count="18" sync="no"/>
|
|
|
|
<log string="Step 5: test asynchronous write, read, compare"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7373"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7373"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="1515"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6001"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="1515"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1515"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="9689"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="1515"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6001"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="0987"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="9689"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="6543"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="5432"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="1515"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="4221"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="1001"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="3366"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7271"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1331"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="6543"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="5432"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7271"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="1515"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="3366"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1331"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="4221"/>
|
|
|
|
<log string="Step 6: shut down Tresor library, check Tresor integrity, restart Tresor library"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<check/>
|
|
<construct/>
|
|
|
|
<log string="Step 7: test synchronous snapshot creation"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="7304"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="7304"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="9612"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="6111"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="9612"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="6111"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="5436"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 8: test asynchronous snapshot creation"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 9: reinitialize Tresor device"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="4"
|
|
nr_of_children="8"
|
|
nr_of_leafs="100" />
|
|
|
|
<free-tree
|
|
nr_of_levels="4"
|
|
nr_of_children="8"
|
|
nr_of_leafs="100" />
|
|
|
|
</initialize>
|
|
<construct/>
|
|
|
|
<log string="Step 10: test synchronous rekeying"/>
|
|
|
|
<request op="write" vba="0" count="1" sync="yes" salt="4359"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="0" count="1" sync="yes" salt="4359"/>
|
|
<request op="write" vba="15" count="7" sync="yes" salt="1742"/>
|
|
<request op="write" vba="20" count="13" sync="yes" salt="8471"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="write" vba="33" count="5" sync="yes" salt="7831"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="17" count="3" sync="yes" salt="1742"/>
|
|
<request op="write" vba="51" count="8" sync="yes" salt="8384"/>
|
|
<request op="read" vba="25" count="1" sync="yes" salt="8471"/>
|
|
<request op="write" vba="30" count="5" sync="yes" salt="2837"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="rekey" sync="yes"/>
|
|
<request op="read" vba="35" count="2" sync="yes" salt="7831"/>
|
|
<request op="read" vba="31" count="4" sync="yes" salt="2837"/>
|
|
<request op="read" vba="51" count="8" sync="yes" salt="8384"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 11: test asynchronous rekeying (SKIPPED BECAUSE OF KNOWN BUG)"/>
|
|
|
|
<!-- FIXME: this step would yet trigger a hash mismatch in the
|
|
VBD rekeying module
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="rekey" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="create_snapshot" sync="yes"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="rekey" sync="no"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
-->
|
|
|
|
<log string="Step 12: test synchronous free tree extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="7304"/>
|
|
<request op="extend_ft" count="23" sync="yes"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="7304"/>
|
|
<request op="extend_ft" count="6" sync="yes"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="9612"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="6111"/>
|
|
<request op="extend_ft" count="10" sync="yes"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="9612"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="9612"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="extend_ft" count="2" sync="yes"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="9612"/>
|
|
<request op="extend_ft" count="1" sync="yes"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="6111"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="5436"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 13: test asynchronous free tree extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="3874"/>
|
|
<request op="extend_ft" count="21" sync="no"/>
|
|
<request op="extend_ft" count="17" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="3874"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="6092"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="1060"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="6092"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="6092"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="6092"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="1060"/>
|
|
<request op="extend_ft" count="180" sync="no"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="4316"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="4673"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="3243"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="6092"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="7538"/>
|
|
<request op="extend_ft" count="3" sync="no"/>
|
|
<request op="extend_ft" count="2" sync="no"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="0984"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4545"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="5774"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="9311"/>
|
|
<request op="write" vba="65" count="7" sync="no" salt="4583"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="4673"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="3243"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="5774"/>
|
|
<request op="extend_ft" count="11" sync="no"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="6092"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4545"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9311"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="7538"/>
|
|
<request op="read" vba="65" count="7" sync="no" salt="4583"/>
|
|
<request op="write" vba="60" count="10" sync="no" salt="2725"/>
|
|
<request op="read" vba="63" count="7" sync="no" salt="2725"/>
|
|
<request op="read" vba="70" count="2" sync="no" salt="4583"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 14: test synchronous vbd extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="yes" salt="0473"/>
|
|
<request op="extend_vbd" count="23" sync="yes"/>
|
|
<request op="read" vba="21" count="1" sync="yes" salt="0473"/>
|
|
<request op="extend_vbd" count="6" sync="yes"/>
|
|
<request op="write" vba="15" count="10" sync="yes" salt="1296"/>
|
|
<request op="write" vba="15" count="4" sync="yes" salt="1161"/>
|
|
<request op="extend_vbd" count="10" sync="yes"/>
|
|
<request op="read" vba="21" count="3" sync="yes" salt="1296"/>
|
|
<request op="read" vba="19" count="3" sync="yes" salt="1296"/>
|
|
<request op="write" vba="17" count="5" sync="yes" salt="5353"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="extend_vbd" count="2" sync="yes"/>
|
|
<request op="read" vba="22" count="3" sync="yes" salt="1296"/>
|
|
<request op="extend_vbd" count="1" sync="yes"/>
|
|
<request op="read" vba="15" count="2" sync="yes" salt="1161"/>
|
|
<request op="write" vba="11" count="6" sync="yes" salt="3654"/>
|
|
<request op="write" vba="65" count="1" sync="yes" salt="5346"/>
|
|
<request op="read" vba="65" count="1" sync="yes" salt="5346"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 15: test asynchronous vbd extension"/>
|
|
|
|
<request op="write" vba="20" count="3" sync="no" salt="7384"/>
|
|
<request op="extend_vbd" count="21" sync="no"/>
|
|
<request op="extend_vbd" count="17" sync="no"/>
|
|
<request op="read" vba="21" count="1" sync="no" salt="7384"/>
|
|
<request op="write" vba="15" count="10" sync="no" salt="9602"/>
|
|
<request op="write" vba="15" count="4" sync="no" salt="6100"/>
|
|
<request op="read" vba="21" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="9602"/>
|
|
<request op="write" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="read" vba="22" count="3" sync="no" salt="9602"/>
|
|
<request op="read" vba="15" count="2" sync="no" salt="6100"/>
|
|
<request op="extend_vbd" count="180" sync="no"/>
|
|
<request op="write" vba="11" count="6" sync="no" salt="1436"/>
|
|
<request op="read" vba="17" count="5" sync="no" salt="5555"/>
|
|
<request op="write" vba="22" count="2" sync="no" salt="7463"/>
|
|
<request op="write" vba="25" count="11" sync="no" salt="4323"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="write" vba="10" count="5" sync="no" salt="3758"/>
|
|
<request op="extend_vbd" count="3" sync="no"/>
|
|
<request op="extend_vbd" count="2" sync="no"/>
|
|
<request op="write" vba="21" count="2" sync="no" salt="8094"/>
|
|
<request op="write" vba="12" count="10" sync="no" salt="4455"/>
|
|
<request op="write" vba="26" count="4" sync="no" salt="7574"/>
|
|
<request op="write" vba="15" count="7" sync="no" salt="1931"/>
|
|
<request op="write" vba="65" count="7" sync="no" salt="8453"/>
|
|
<request op="read" vba="23" count="1" sync="no" salt="7463"/>
|
|
<request op="read" vba="25" count="1" sync="no" salt="4323"/>
|
|
<request op="read" vba="28" count="2" sync="no" salt="7574"/>
|
|
<request op="extend_vbd" count="11" sync="no"/>
|
|
<request op="read" vba="24" count="1" sync="no" salt="9602"/>
|
|
<request op="read" vba="12" count="3" sync="no" salt="4455"/>
|
|
<request op="read" vba="19" count="3" sync="no" salt="1931"/>
|
|
<request op="read" vba="10" count="2" sync="no" salt="3758"/>
|
|
<request op="read" vba="65" count="7" sync="no" salt="8453"/>
|
|
<request op="write" vba="60" count="10" sync="no" salt="2275"/>
|
|
<request op="read" vba="63" count="7" sync="no" salt="2275"/>
|
|
<request op="read" vba="70" count="2" sync="no" salt="8453"/>
|
|
<request op="sync" vba="0" count="256" sync="yes"/>
|
|
<check/>
|
|
|
|
<log string="Step 16: reinitialize Tresor device"/>
|
|
|
|
<request op="deinitialize" sync="no"/>
|
|
<destruct/>
|
|
<initialize>
|
|
|
|
<virtual-block-device
|
|
nr_of_levels="4"
|
|
nr_of_children="64"
|
|
nr_of_leafs="25600" />
|
|
|
|
<free-tree
|
|
nr_of_levels="4"
|
|
nr_of_children="64"
|
|
nr_of_leafs="25600" />
|
|
|
|
</initialize>
|
|
<construct/>
|
|
}
|
|
if {[benchmark_blk_count] > 0} {
|
|
|
|
append config {
|
|
|
|
<log string="Step 17: do read/write benchmarks"/>
|
|
|
|
<benchmark op="start" label="read initial data in one request"/>
|
|
<request op="read" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite initial data in one request"/>
|
|
<request op="write" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite written data in one request"/>
|
|
<request op="write" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="read written data in one request"/>
|
|
<request op="read" vba="0" count="} [benchmark_blk_count] {" sync="no"/>
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="read written data randomized"/>
|
|
|
|
<request op="read" vba="00001" count="10" sync="no"/>
|
|
<request op="read" vba="00028" count="80" sync="no"/>
|
|
<request op="read" vba="24045" count="50" sync="no"/>
|
|
<request op="read" vba="04441" count="10" sync="no"/>
|
|
<request op="read" vba="14240" count="40" sync="no"/>
|
|
<request op="read" vba="00230" count="80" sync="no"/>
|
|
<request op="read" vba="01673" count="30" sync="no"/>
|
|
<request op="read" vba="21609" count="30" sync="no"/>
|
|
<request op="read" vba="12201" count="10" sync="no"/>
|
|
<request op="read" vba="19601" count="10" sync="no"/>
|
|
<request op="read" vba="08901" count="10" sync="no"/>
|
|
<request op="read" vba="00972" count="20" sync="no"/>
|
|
<request op="read" vba="00097" count="70" sync="no"/>
|
|
<request op="read" vba="05593" count="30" sync="no"/>
|
|
<request op="read" vba="15201" count="10" sync="no"/>
|
|
<request op="read" vba="25237" count="20" sync="no"/>
|
|
<request op="read" vba="03537" count="70" sync="no"/>
|
|
<request op="read" vba="15151" count="10" sync="no"/>
|
|
<request op="read" vba="04374" count="40" sync="no"/>
|
|
<request op="read" vba="05350" count="40" sync="no"/>
|
|
<request op="read" vba="00754" count="40" sync="no"/>
|
|
<request op="read" vba="01729" count="90" sync="no"/>
|
|
<request op="read" vba="11246" count="60" sync="no"/>
|
|
<request op="read" vba="13229" count="90" sync="no"/>
|
|
<request op="read" vba="13001" count="10" sync="no"/>
|
|
<request op="read" vba="00120" count="90" sync="no"/>
|
|
<request op="read" vba="20111" count="10" sync="no"/>
|
|
<request op="read" vba="02451" count="10" sync="no"/>
|
|
<request op="read" vba="14734" count="40" sync="no"/>
|
|
<request op="read" vba="00942" count="20" sync="no"/>
|
|
<request op="read" vba="00091" count="10" sync="no"/>
|
|
<request op="read" vba="23011" count="10" sync="no"/>
|
|
<request op="read" vba="20271" count="50" sync="no"/>
|
|
<request op="read" vba="01283" count="30" sync="no"/>
|
|
<request op="read" vba="12823" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="01234" count="40" sync="no"/>
|
|
<request op="read" vba="17490" count="70" sync="no"/>
|
|
<request op="read" vba="19990" count="20" sync="no"/>
|
|
<request op="read" vba="02190" count="30" sync="no"/>
|
|
<request op="read" vba="00421" count="10" sync="no"/>
|
|
<request op="read" vba="11421" count="10" sync="no"/>
|
|
<request op="read" vba="02481" count="50" sync="no"/>
|
|
<request op="read" vba="23471" count="10" sync="no"/>
|
|
<request op="read" vba="21291" count="40" sync="no"/>
|
|
<request op="read" vba="00212" count="20" sync="no"/>
|
|
<request op="read" vba="14402" count="20" sync="no"/>
|
|
<request op="read" vba="01201" count="10" sync="no"/>
|
|
<request op="read" vba="20975" count="30" sync="no"/>
|
|
<request op="read" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="00100" count="10" sync="no"/>
|
|
<request op="read" vba="00820" count="80" sync="no"/>
|
|
<request op="read" vba="24540" count="50" sync="no"/>
|
|
<request op="read" vba="04144" count="10" sync="no"/>
|
|
<request op="read" vba="14042" count="40" sync="no"/>
|
|
<request op="read" vba="00032" count="80" sync="no"/>
|
|
<request op="read" vba="01376" count="30" sync="no"/>
|
|
<request op="read" vba="21906" count="30" sync="no"/>
|
|
<request op="read" vba="12102" count="10" sync="no"/>
|
|
<request op="read" vba="19106" count="10" sync="no"/>
|
|
<request op="read" vba="08109" count="10" sync="no"/>
|
|
<request op="read" vba="00279" count="20" sync="no"/>
|
|
<request op="read" vba="00790" count="70" sync="no"/>
|
|
<request op="read" vba="05395" count="30" sync="no"/>
|
|
<request op="read" vba="15102" count="10" sync="no"/>
|
|
<request op="read" vba="25032" count="20" sync="no"/>
|
|
<request op="read" vba="03735" count="70" sync="no"/>
|
|
<request op="read" vba="15151" count="10" sync="no"/>
|
|
<request op="read" vba="04473" count="40" sync="no"/>
|
|
<request op="read" vba="05053" count="40" sync="no"/>
|
|
<request op="read" vba="00457" count="40" sync="no"/>
|
|
<request op="read" vba="01927" count="90" sync="no"/>
|
|
<request op="read" vba="11642" count="60" sync="no"/>
|
|
<request op="read" vba="13922" count="90" sync="no"/>
|
|
<request op="read" vba="13100" count="10" sync="no"/>
|
|
<request op="read" vba="00021" count="90" sync="no"/>
|
|
<request op="read" vba="20111" count="10" sync="no"/>
|
|
<request op="read" vba="02154" count="10" sync="no"/>
|
|
<request op="read" vba="14437" count="40" sync="no"/>
|
|
<request op="read" vba="00249" count="20" sync="no"/>
|
|
<request op="read" vba="00190" count="10" sync="no"/>
|
|
<request op="read" vba="23110" count="10" sync="no"/>
|
|
<request op="read" vba="20172" count="50" sync="no"/>
|
|
<request op="read" vba="01382" count="30" sync="no"/>
|
|
<request op="read" vba="12328" count="30" sync="no"/>
|
|
<request op="read" vba="00002" count="50" sync="no"/>
|
|
<request op="read" vba="01432" count="40" sync="no"/>
|
|
<request op="read" vba="17094" count="70" sync="no"/>
|
|
<request op="read" vba="19099" count="20" sync="no"/>
|
|
<request op="read" vba="02091" count="30" sync="no"/>
|
|
<request op="read" vba="00124" count="10" sync="no"/>
|
|
<request op="read" vba="11124" count="10" sync="no"/>
|
|
<request op="read" vba="02184" count="50" sync="no"/>
|
|
<request op="read" vba="23174" count="10" sync="no"/>
|
|
<request op="read" vba="21192" count="40" sync="no"/>
|
|
<request op="read" vba="00212" count="20" sync="no"/>
|
|
<request op="read" vba="14204" count="20" sync="no"/>
|
|
<request op="read" vba="01102" count="10" sync="no"/>
|
|
<request op="read" vba="20579" count="30" sync="no"/>
|
|
<request op="read" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="00010" count="10" sync="no"/>
|
|
<request op="read" vba="02080" count="80" sync="no"/>
|
|
<request op="read" vba="24054" count="50" sync="no"/>
|
|
<request op="read" vba="04414" count="10" sync="no"/>
|
|
<request op="read" vba="14204" count="40" sync="no"/>
|
|
<request op="read" vba="03200" count="80" sync="no"/>
|
|
<request op="read" vba="07631" count="30" sync="no"/>
|
|
<request op="read" vba="20691" count="30" sync="no"/>
|
|
<request op="read" vba="10212" count="10" sync="no"/>
|
|
<request op="read" vba="10619" count="10" sync="no"/>
|
|
<request op="read" vba="00918" count="10" sync="no"/>
|
|
<request op="read" vba="07920" count="20" sync="no"/>
|
|
<request op="read" vba="09070" count="70" sync="no"/>
|
|
<request op="read" vba="09535" count="30" sync="no"/>
|
|
<request op="read" vba="10215" count="10" sync="no"/>
|
|
<request op="read" vba="23275" count="20" sync="no"/>
|
|
<request op="read" vba="03573" count="70" sync="no"/>
|
|
<request op="read" vba="15115" count="10" sync="no"/>
|
|
<request op="read" vba="07344" count="40" sync="no"/>
|
|
<request op="read" vba="05305" count="40" sync="no"/>
|
|
<request op="read" vba="05740" count="40" sync="no"/>
|
|
<request op="read" vba="02791" count="90" sync="no"/>
|
|
<request op="read" vba="14261" count="60" sync="no"/>
|
|
<request op="read" vba="12293" count="90" sync="no"/>
|
|
<request op="read" vba="10013" count="10" sync="no"/>
|
|
<request op="read" vba="02100" count="90" sync="no"/>
|
|
<request op="read" vba="21110" count="10" sync="no"/>
|
|
<request op="read" vba="05412" count="10" sync="no"/>
|
|
<request op="read" vba="13744" count="40" sync="no"/>
|
|
<request op="read" vba="04920" count="20" sync="no"/>
|
|
<request op="read" vba="09010" count="10" sync="no"/>
|
|
<request op="read" vba="21013" count="10" sync="no"/>
|
|
<request op="read" vba="00210" count="50" sync="no"/>
|
|
<request op="read" vba="08231" count="30" sync="no"/>
|
|
<request op="read" vba="12832" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="03241" count="40" sync="no"/>
|
|
<request op="read" vba="19407" count="70" sync="no"/>
|
|
<request op="read" vba="19909" count="20" sync="no"/>
|
|
<request op="read" vba="09102" count="30" sync="no"/>
|
|
<request op="read" vba="02410" count="10" sync="no"/>
|
|
<request op="read" vba="12411" count="10" sync="no"/>
|
|
<request op="read" vba="08412" count="50" sync="no"/>
|
|
<request op="read" vba="22413" count="10" sync="no"/>
|
|
<request op="read" vba="24211" count="40" sync="no"/>
|
|
<request op="read" vba="01220" count="20" sync="no"/>
|
|
<request op="read" vba="10424" count="20" sync="no"/>
|
|
<request op="read" vba="00211" count="10" sync="no"/>
|
|
<request op="read" vba="21950" count="30" sync="no"/>
|
|
<request op="read" vba="17773" count="70" sync="no"/>
|
|
|
|
<request op="read" vba="01000" count="10" sync="no"/>
|
|
<request op="read" vba="08002" count="80" sync="no"/>
|
|
<request op="read" vba="25044" count="50" sync="no"/>
|
|
<request op="read" vba="01444" count="10" sync="no"/>
|
|
<request op="read" vba="10244" count="40" sync="no"/>
|
|
<request op="read" vba="00203" count="80" sync="no"/>
|
|
<request op="read" vba="03617" count="30" sync="no"/>
|
|
<request op="read" vba="23610" count="30" sync="no"/>
|
|
<request op="read" vba="11220" count="10" sync="no"/>
|
|
<request op="read" vba="11690" count="10" sync="no"/>
|
|
<request op="read" vba="01980" count="10" sync="no"/>
|
|
<request op="read" vba="02907" count="20" sync="no"/>
|
|
<request op="read" vba="07009" count="70" sync="no"/>
|
|
<request op="read" vba="03559" count="30" sync="no"/>
|
|
<request op="read" vba="11250" count="10" sync="no"/>
|
|
<request op="read" vba="20253" count="20" sync="no"/>
|
|
<request op="read" vba="07533" count="70" sync="no"/>
|
|
<request op="read" vba="11155" count="10" sync="no"/>
|
|
<request op="read" vba="04347" count="40" sync="no"/>
|
|
<request op="read" vba="00355" count="40" sync="no"/>
|
|
<request op="read" vba="04705" count="40" sync="no"/>
|
|
<request op="read" vba="09712" count="90" sync="no"/>
|
|
<request op="read" vba="16214" count="60" sync="no"/>
|
|
<request op="read" vba="19232" count="90" sync="no"/>
|
|
<request op="read" vba="11030" count="10" sync="no"/>
|
|
<request op="read" vba="00102" count="90" sync="no"/>
|
|
<request op="read" vba="21101" count="10" sync="no"/>
|
|
<request op="read" vba="01425" count="10" sync="no"/>
|
|
<request op="read" vba="14743" count="40" sync="no"/>
|
|
<request op="read" vba="02904" count="20" sync="no"/>
|
|
<request op="read" vba="01009" count="10" sync="no"/>
|
|
<request op="read" vba="21031" count="10" sync="no"/>
|
|
<request op="read" vba="25207" count="50" sync="no"/>
|
|
<request op="read" vba="03218" count="30" sync="no"/>
|
|
<request op="read" vba="13822" count="30" sync="no"/>
|
|
<request op="read" vba="00200" count="50" sync="no"/>
|
|
<request op="read" vba="04213" count="40" sync="no"/>
|
|
<request op="read" vba="10479" count="70" sync="no"/>
|
|
<request op="read" vba="10999" count="20" sync="no"/>
|
|
<request op="read" vba="00129" count="30" sync="no"/>
|
|
<request op="read" vba="01402" count="10" sync="no"/>
|
|
<request op="read" vba="11412" count="10" sync="no"/>
|
|
<request op="read" vba="01428" count="50" sync="no"/>
|
|
<request op="read" vba="21437" count="10" sync="no"/>
|
|
<request op="read" vba="24219" count="40" sync="no"/>
|
|
<request op="read" vba="02201" count="20" sync="no"/>
|
|
<request op="read" vba="12440" count="20" sync="no"/>
|
|
<request op="read" vba="01210" count="10" sync="no"/>
|
|
<request op="read" vba="20907" count="30" sync="no"/>
|
|
<request op="read" vba="17737" count="70" sync="no"/>
|
|
|
|
<benchmark op="stop"/>
|
|
|
|
<benchmark op="start" label="overwrite written data randomized"/>
|
|
|
|
<request op="write" vba="00001" count="10" sync="no"/>
|
|
<request op="write" vba="00028" count="80" sync="no"/>
|
|
<request op="write" vba="24045" count="50" sync="no"/>
|
|
<request op="write" vba="04441" count="10" sync="no"/>
|
|
<request op="write" vba="14240" count="40" sync="no"/>
|
|
<request op="write" vba="00230" count="80" sync="no"/>
|
|
<request op="write" vba="01673" count="30" sync="no"/>
|
|
<request op="write" vba="21609" count="30" sync="no"/>
|
|
<request op="write" vba="12201" count="10" sync="no"/>
|
|
<request op="write" vba="19601" count="10" sync="no"/>
|
|
<request op="write" vba="08901" count="10" sync="no"/>
|
|
<request op="write" vba="00972" count="20" sync="no"/>
|
|
<request op="write" vba="00097" count="70" sync="no"/>
|
|
<request op="write" vba="05593" count="30" sync="no"/>
|
|
<request op="write" vba="15201" count="10" sync="no"/>
|
|
<request op="write" vba="25237" count="20" sync="no"/>
|
|
<request op="write" vba="03537" count="70" sync="no"/>
|
|
<request op="write" vba="15151" count="10" sync="no"/>
|
|
<request op="write" vba="04374" count="40" sync="no"/>
|
|
<request op="write" vba="05350" count="40" sync="no"/>
|
|
<request op="write" vba="00754" count="40" sync="no"/>
|
|
<request op="write" vba="01729" count="90" sync="no"/>
|
|
<request op="write" vba="11246" count="60" sync="no"/>
|
|
<request op="write" vba="13229" count="90" sync="no"/>
|
|
<request op="write" vba="13001" count="10" sync="no"/>
|
|
<request op="write" vba="00120" count="90" sync="no"/>
|
|
<request op="write" vba="20111" count="10" sync="no"/>
|
|
<request op="write" vba="02451" count="10" sync="no"/>
|
|
<request op="write" vba="14734" count="40" sync="no"/>
|
|
<request op="write" vba="00942" count="20" sync="no"/>
|
|
<request op="write" vba="00091" count="10" sync="no"/>
|
|
<request op="write" vba="23011" count="10" sync="no"/>
|
|
<request op="write" vba="20271" count="50" sync="no"/>
|
|
<request op="write" vba="01283" count="30" sync="no"/>
|
|
<request op="write" vba="12823" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="01234" count="40" sync="no"/>
|
|
<request op="write" vba="17490" count="70" sync="no"/>
|
|
<request op="write" vba="19990" count="20" sync="no"/>
|
|
<request op="write" vba="02190" count="30" sync="no"/>
|
|
<request op="write" vba="00421" count="10" sync="no"/>
|
|
<request op="write" vba="11421" count="10" sync="no"/>
|
|
<request op="write" vba="02481" count="50" sync="no"/>
|
|
<request op="write" vba="23471" count="10" sync="no"/>
|
|
<request op="write" vba="21291" count="40" sync="no"/>
|
|
<request op="write" vba="00212" count="20" sync="no"/>
|
|
<request op="write" vba="14402" count="20" sync="no"/>
|
|
<request op="write" vba="01201" count="10" sync="no"/>
|
|
<request op="write" vba="20975" count="30" sync="no"/>
|
|
<request op="write" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="00100" count="10" sync="no"/>
|
|
<request op="write" vba="00820" count="80" sync="no"/>
|
|
<request op="write" vba="24540" count="50" sync="no"/>
|
|
<request op="write" vba="04144" count="10" sync="no"/>
|
|
<request op="write" vba="14042" count="40" sync="no"/>
|
|
<request op="write" vba="00032" count="80" sync="no"/>
|
|
<request op="write" vba="01376" count="30" sync="no"/>
|
|
<request op="write" vba="21906" count="30" sync="no"/>
|
|
<request op="write" vba="12102" count="10" sync="no"/>
|
|
<request op="write" vba="19106" count="10" sync="no"/>
|
|
<request op="write" vba="08109" count="10" sync="no"/>
|
|
<request op="write" vba="00279" count="20" sync="no"/>
|
|
<request op="write" vba="00790" count="70" sync="no"/>
|
|
<request op="write" vba="05395" count="30" sync="no"/>
|
|
<request op="write" vba="15102" count="10" sync="no"/>
|
|
<request op="write" vba="25032" count="20" sync="no"/>
|
|
<request op="write" vba="03735" count="70" sync="no"/>
|
|
<request op="write" vba="15151" count="10" sync="no"/>
|
|
<request op="write" vba="04473" count="40" sync="no"/>
|
|
<request op="write" vba="05053" count="40" sync="no"/>
|
|
<request op="write" vba="00457" count="40" sync="no"/>
|
|
<request op="write" vba="01927" count="90" sync="no"/>
|
|
<request op="write" vba="11642" count="60" sync="no"/>
|
|
<request op="write" vba="13922" count="90" sync="no"/>
|
|
<request op="write" vba="13100" count="10" sync="no"/>
|
|
<request op="write" vba="00021" count="90" sync="no"/>
|
|
<request op="write" vba="20111" count="10" sync="no"/>
|
|
<request op="write" vba="02154" count="10" sync="no"/>
|
|
<request op="write" vba="14437" count="40" sync="no"/>
|
|
<request op="write" vba="00249" count="20" sync="no"/>
|
|
<request op="write" vba="00190" count="10" sync="no"/>
|
|
<request op="write" vba="23110" count="10" sync="no"/>
|
|
<request op="write" vba="20172" count="50" sync="no"/>
|
|
<request op="write" vba="01382" count="30" sync="no"/>
|
|
<request op="write" vba="12328" count="30" sync="no"/>
|
|
<request op="write" vba="00002" count="50" sync="no"/>
|
|
<request op="write" vba="01432" count="40" sync="no"/>
|
|
<request op="write" vba="17094" count="70" sync="no"/>
|
|
<request op="write" vba="19099" count="20" sync="no"/>
|
|
<request op="write" vba="02091" count="30" sync="no"/>
|
|
<request op="write" vba="00124" count="10" sync="no"/>
|
|
<request op="write" vba="11124" count="10" sync="no"/>
|
|
<request op="write" vba="02184" count="50" sync="no"/>
|
|
<request op="write" vba="23174" count="10" sync="no"/>
|
|
<request op="write" vba="21192" count="40" sync="no"/>
|
|
<request op="write" vba="00212" count="20" sync="no"/>
|
|
<request op="write" vba="14204" count="20" sync="no"/>
|
|
<request op="write" vba="01102" count="10" sync="no"/>
|
|
<request op="write" vba="20579" count="30" sync="no"/>
|
|
<request op="write" vba="13777" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="00010" count="10" sync="no"/>
|
|
<request op="write" vba="02080" count="80" sync="no"/>
|
|
<request op="write" vba="24054" count="50" sync="no"/>
|
|
<request op="write" vba="04414" count="10" sync="no"/>
|
|
<request op="write" vba="14204" count="40" sync="no"/>
|
|
<request op="write" vba="03200" count="80" sync="no"/>
|
|
<request op="write" vba="07631" count="30" sync="no"/>
|
|
<request op="write" vba="20691" count="30" sync="no"/>
|
|
<request op="write" vba="10212" count="10" sync="no"/>
|
|
<request op="write" vba="10619" count="10" sync="no"/>
|
|
<request op="write" vba="00918" count="10" sync="no"/>
|
|
<request op="write" vba="07920" count="20" sync="no"/>
|
|
<request op="write" vba="09070" count="70" sync="no"/>
|
|
<request op="write" vba="09535" count="30" sync="no"/>
|
|
<request op="write" vba="10215" count="10" sync="no"/>
|
|
<request op="write" vba="23275" count="20" sync="no"/>
|
|
<request op="write" vba="03573" count="70" sync="no"/>
|
|
<request op="write" vba="15115" count="10" sync="no"/>
|
|
<request op="write" vba="07344" count="40" sync="no"/>
|
|
<request op="write" vba="05305" count="40" sync="no"/>
|
|
<request op="write" vba="05740" count="40" sync="no"/>
|
|
<request op="write" vba="02791" count="90" sync="no"/>
|
|
<request op="write" vba="14261" count="60" sync="no"/>
|
|
<request op="write" vba="12293" count="90" sync="no"/>
|
|
<request op="write" vba="10013" count="10" sync="no"/>
|
|
<request op="write" vba="02100" count="90" sync="no"/>
|
|
<request op="write" vba="21110" count="10" sync="no"/>
|
|
<request op="write" vba="05412" count="10" sync="no"/>
|
|
<request op="write" vba="13744" count="40" sync="no"/>
|
|
<request op="write" vba="04920" count="20" sync="no"/>
|
|
<request op="write" vba="09010" count="10" sync="no"/>
|
|
<request op="write" vba="21013" count="10" sync="no"/>
|
|
<request op="write" vba="00210" count="50" sync="no"/>
|
|
<request op="write" vba="08231" count="30" sync="no"/>
|
|
<request op="write" vba="12832" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="03241" count="40" sync="no"/>
|
|
<request op="write" vba="19407" count="70" sync="no"/>
|
|
<request op="write" vba="19909" count="20" sync="no"/>
|
|
<request op="write" vba="09102" count="30" sync="no"/>
|
|
<request op="write" vba="02410" count="10" sync="no"/>
|
|
<request op="write" vba="12411" count="10" sync="no"/>
|
|
<request op="write" vba="08412" count="50" sync="no"/>
|
|
<request op="write" vba="22413" count="10" sync="no"/>
|
|
<request op="write" vba="24211" count="40" sync="no"/>
|
|
<request op="write" vba="01220" count="20" sync="no"/>
|
|
<request op="write" vba="10424" count="20" sync="no"/>
|
|
<request op="write" vba="00211" count="10" sync="no"/>
|
|
<request op="write" vba="21950" count="30" sync="no"/>
|
|
<request op="write" vba="17773" count="70" sync="no"/>
|
|
|
|
<request op="write" vba="01000" count="10" sync="no"/>
|
|
<request op="write" vba="08002" count="80" sync="no"/>
|
|
<request op="write" vba="25044" count="50" sync="no"/>
|
|
<request op="write" vba="01444" count="10" sync="no"/>
|
|
<request op="write" vba="10244" count="40" sync="no"/>
|
|
<request op="write" vba="00203" count="80" sync="no"/>
|
|
<request op="write" vba="03617" count="30" sync="no"/>
|
|
<request op="write" vba="23610" count="30" sync="no"/>
|
|
<request op="write" vba="11220" count="10" sync="no"/>
|
|
<request op="write" vba="11690" count="10" sync="no"/>
|
|
<request op="write" vba="01980" count="10" sync="no"/>
|
|
<request op="write" vba="02907" count="20" sync="no"/>
|
|
<request op="write" vba="07009" count="70" sync="no"/>
|
|
<request op="write" vba="03559" count="30" sync="no"/>
|
|
<request op="write" vba="11250" count="10" sync="no"/>
|
|
<request op="write" vba="20253" count="20" sync="no"/>
|
|
<request op="write" vba="07533" count="70" sync="no"/>
|
|
<request op="write" vba="11155" count="10" sync="no"/>
|
|
<request op="write" vba="04347" count="40" sync="no"/>
|
|
<request op="write" vba="00355" count="40" sync="no"/>
|
|
<request op="write" vba="04705" count="40" sync="no"/>
|
|
<request op="write" vba="09712" count="90" sync="no"/>
|
|
<request op="write" vba="16214" count="60" sync="no"/>
|
|
<request op="write" vba="19232" count="90" sync="no"/>
|
|
<request op="write" vba="11030" count="10" sync="no"/>
|
|
<request op="write" vba="00102" count="90" sync="no"/>
|
|
<request op="write" vba="21101" count="10" sync="no"/>
|
|
<request op="write" vba="01425" count="10" sync="no"/>
|
|
<request op="write" vba="14743" count="40" sync="no"/>
|
|
<request op="write" vba="02904" count="20" sync="no"/>
|
|
<request op="write" vba="01009" count="10" sync="no"/>
|
|
<request op="write" vba="21031" count="10" sync="no"/>
|
|
<request op="write" vba="25207" count="50" sync="no"/>
|
|
<request op="write" vba="03218" count="30" sync="no"/>
|
|
<request op="write" vba="13822" count="30" sync="no"/>
|
|
<request op="write" vba="00200" count="50" sync="no"/>
|
|
<request op="write" vba="04213" count="40" sync="no"/>
|
|
<request op="write" vba="10479" count="70" sync="no"/>
|
|
<request op="write" vba="10999" count="20" sync="no"/>
|
|
<request op="write" vba="00129" count="30" sync="no"/>
|
|
<request op="write" vba="01402" count="10" sync="no"/>
|
|
<request op="write" vba="11412" count="10" sync="no"/>
|
|
<request op="write" vba="01428" count="50" sync="no"/>
|
|
<request op="write" vba="21437" count="10" sync="no"/>
|
|
<request op="write" vba="24219" count="40" sync="no"/>
|
|
<request op="write" vba="02201" count="20" sync="no"/>
|
|
<request op="write" vba="12440" count="20" sync="no"/>
|
|
<request op="write" vba="01210" count="10" sync="no"/>
|
|
<request op="write" vba="20907" count="30" sync="no"/>
|
|
<request op="write" vba="17737" count="70" sync="no"/>
|
|
|
|
<benchmark op="stop"/>
|
|
<check/>
|
|
}
|
|
|
|
} else {
|
|
|
|
append config {
|
|
|
|
<log string="Step 17: skip because benchmarks are disabled for this platform"/>
|
|
}
|
|
}
|
|
append config {
|
|
|
|
<log string="Step 18: test list-snapshots command"/>
|
|
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="write" vba="17737" count="70" sync="no" salt="8924"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
<request op="write" vba="00129" count="30" sync="no" salt="9471"/>
|
|
<request op="create_snapshot" sync="no"/>
|
|
|
|
<list-snapshots/>
|
|
|
|
</commands>
|
|
|
|
</config>
|
|
|
|
<route>
|
|
<service name="File_system" label_last="trust_anchor"> <child name="trust_anchor_fs"/> </service>
|
|
<service name="File_system"> <child name="block_io_fs"/> </service>
|
|
<service name="Terminal"> <child name="log_terminal"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
|
|
</start>
|
|
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
if {[have_board linux]} {
|
|
|
|
exec rm -rf [lx_local_tresor_image]
|
|
if { [get_cmd_switch --autopilot] } {
|
|
|
|
exec rm -rf [lx_autopilot_tresor_image]
|
|
catch { exec $dd if=/dev/urandom of=[lx_autopilot_tresor_image] bs=1M count=[lx_tresor_image_size_mb] }
|
|
exec ln -sf -T [lx_autopilot_tresor_image] [lx_local_tresor_image]
|
|
|
|
} else {
|
|
|
|
catch { exec $dd if=/dev/urandom of=[lx_local_tresor_image] bs=1M count=[lx_tresor_image_size_mb] }
|
|
}
|
|
}
|
|
|
|
append boot_modules {
|
|
core
|
|
init
|
|
timer
|
|
tresor_tester
|
|
ld.lib.so
|
|
log_terminal
|
|
report_rom
|
|
vfs
|
|
libc.lib.so
|
|
libcrypto.lib.so
|
|
vfs.lib.so
|
|
vfs_tresor_trust_anchor.lib.so
|
|
vfs_tresor_crypto_aes_cbc.lib.so
|
|
vfs_import.lib.so
|
|
}
|
|
|
|
append_if [jent_avail] boot_modules { vfs_jitterentropy.lib.so }
|
|
|
|
append_if [have_board linux] boot_modules { lx_fs }
|
|
append_if [have_board linux] boot_modules [tresor_image_name]
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -nographic "
|
|
|
|
set test_timeout 100
|
|
if {[benchmark_blk_count] > 0} {
|
|
set test_timeout 300
|
|
}
|
|
run_genode_until "child \"test\" exited with exit value.*\n" $test_timeout
|
|
|
|
if {[have_board linux]} {
|
|
|
|
if { [get_cmd_switch --autopilot] } {
|
|
|
|
exec rm -rf [lx_local_tresor_image]
|
|
exec rm -rf [lx_autopilot_tresor_image]
|
|
}
|
|
}
|
|
|
|
grep_output {\[init\] child "test" exited with exit value}
|
|
compare_output_to {[init] child "test" exited with exit value 0}
|