lkml.org 
[lkml]   [2019]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/7] selftests: firmware: Test partial file reads of request_firmware_into_buf
    Date
    Add firmware tests for partial file reads of request_firmware_into_buf.

    Signed-off-by: Scott Branden <scott.branden@broadcom.com>
    ---
    .../selftests/firmware/fw_filesystem.sh | 80 +++++++++++++++++++
    1 file changed, 80 insertions(+)

    diff --git a/tools/testing/selftests/firmware/fw_filesystem.sh b/tools/testing/selftests/firmware/fw_filesystem.sh
    index 56894477c8bd..e973c658fe1a 100755
    --- a/tools/testing/selftests/firmware/fw_filesystem.sh
    +++ b/tools/testing/selftests/firmware/fw_filesystem.sh
    @@ -126,6 +126,26 @@ config_unset_into_buf()
    echo 0 > $DIR/config_into_buf
    }

    +config_set_buf_size()
    +{
    + echo $1 > $DIR/config_buf_size
    +}
    +
    +config_set_file_offset()
    +{
    + echo $1 > $DIR/config_file_offset
    +}
    +
    +config_set_partial()
    +{
    + echo 1 > $DIR/config_partial
    +}
    +
    +config_unset_partial()
    +{
    + echo 0 > $DIR/config_partial
    +}
    +
    config_set_sync_direct()
    {
    echo 1 > $DIR/config_sync_direct
    @@ -184,6 +204,35 @@ read_firmwares()
    done
    }

    +read_firmwares_partial()
    +{
    + if [ "$(cat $DIR/config_into_buf)" == "1" ]; then
    + fwfile="${FW_INTO_BUF}"
    + else
    + fwfile="${FW}"
    + fi
    +
    + if [ "$1" = "xzonly" ]; then
    + fwfile="${fwfile}-orig"
    + fi
    +
    + # Strip fwfile down to match partial offset and length
    + partial_data="$(cat $fwfile)"
    + partial_data="${partial_data:$2:$3}"
    +
    + for i in $(seq 0 3); do
    + config_set_read_fw_idx $i
    +
    + read_firmware="$(cat $DIR/read_firmware)"
    +
    + # Verify the contents are what we expect.
    + if [ $read_firmware != $partial_data ]; then
    + echo "request #$i: partial firmware was not loaded" >&2
    + exit 1
    + fi
    + done
    +}
    +
    read_firmwares_expect_nofile()
    {
    for i in $(seq 0 3); do
    @@ -296,6 +345,21 @@ test_batched_request_firmware_into_buf()
    echo "OK"
    }

    +test_batched_request_firmware_into_buf_partial()
    +{
    + echo -n "Batched request_firmware_into_buf_partial() $2 off=$3 size=$4 try #$1: "
    + config_reset
    + config_set_name $TEST_FIRMWARE_INTO_BUF_FILENAME
    + config_set_into_buf
    + config_set_partial
    + config_set_buf_size $4
    + config_set_file_offset $3
    + config_trigger_sync
    + read_firmwares_partial $2 $3 $4
    + release_all_firmware
    + echo "OK"
    +}
    +
    test_batched_request_firmware_direct()
    {
    echo -n "Batched request_firmware_direct() $2 try #$1: "
    @@ -348,6 +412,22 @@ for i in $(seq 1 5); do
    test_batched_request_firmware_into_buf $i normal
    done

    +for i in $(seq 1 5); do
    + test_batched_request_firmware_into_buf_partial $i normal 0 10
    +done
    +
    +for i in $(seq 1 5); do
    + test_batched_request_firmware_into_buf_partial $i normal 0 5
    +done
    +
    +for i in $(seq 1 5); do
    + test_batched_request_firmware_into_buf_partial $i normal 1 6
    +done
    +
    +for i in $(seq 1 5); do
    + test_batched_request_firmware_into_buf_partial $i normal 2 10
    +done
    +
    for i in $(seq 1 5); do
    test_batched_request_firmware_direct $i normal
    done
    --
    2.17.1
    \
     
     \ /
      Last update: 2019-08-22 21:27    [W:3.243 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site