zephyr/samples/subsys/zbus/benchmark/benchmark_256KB.robot

99 lines
3.0 KiB
Plaintext

*** Settings ***
Library Process
Library String
Library SerialLibrary
Library CSVLibrary
Suite Teardown Terminate All Processes kill=True
*** Variables ***
${csv_file} zbus_dyn_benchmark_256kb.csv
${board} hifive1@B
${serial_port} /dev/ttyACM0
*** Tasks ***
Clear Old CSV File
Empty Csv File ${csv_file}
Zbus Benchmark
FOR ${obs_type} IN 0 1 2
FOR ${consumers} IN 1 4 8
FOR ${msg_size} IN 2 8 32 128 512
Benchmark Report For
... message_size=${msg_size}
... one_to=${consumers}
... observer_type=${obs_type}
END
END
END
*** Keywords ***
Run Memory Report
[Arguments] ${type}
${result} Run Process west build -t ${type}_report shell=True
Should Be Equal As Integers ${result.rc} 0
${mem} Get Substring ${result.stdout} -20
${mem} Strip String ${mem}
${mem} Convert To Integer ${mem}
RETURN ${mem}
Measure Results
${total} Set Variable 0
Add Port ${serial_port} timeout=120 baudrate=115200
Set Encoding ascii
FOR ${count} IN RANGE 3
${result} Run Process west flash shell=True
Should Be Equal As Integers ${result.rc} 0
${val} Read Until expected=@ encoding=ascii
${val} Read Until encoding=ascii
${val} Strip String ${val}
${val} Convert To Integer ${val}
${total} Evaluate ${total}+${val}
END
${duration} Evaluate ${total}/3.0
RETURN ${duration}
[Teardown] Delete All Ports
Benchmark
[Arguments] ${message_size}=256 ${one_to}=1 ${observer_type}=LISTENERS
${result} Run Process
... west build -b ${board} -p always -- -DCONFIG_BM_MESSAGE_SIZE\=${message_size} -DCONFIG_BM_ONE_TO\=${one_to} -DCONFIG_BM_${observer_type}\=y
... shell=True
Should Be Equal As Integers ${result.rc} 0
${duration} Measure Results
RETURN ${duration}
Benchmark Report For
[Arguments] ${message_size}=256 ${one_to}=1 ${observer_type}=0
${obs_type_str} Set Variable LISTENERS
IF ${observer_type} == 1
${obs_type_str} Set Variable SUBSCRIBERS
ELSE IF ${observer_type} == 2
${obs_type_str} Set Variable MSG_SUBSCRIBERS
END
${duration} Benchmark
... message_size=${message_size}
... one_to=${one_to}
... observer_type=${obs_type_str}
${ram_amount} Run Memory Report ram
${rom_amount} Run Memory Report rom
@{results} Create List
... ${obs_type_str}
... ${one_to}
... ${message_size}
... ${duration}
... ${ram_amount}
... ${rom_amount}
Log To Console \n${results}
Append To Csv File ${csv_file} ${results}