tests: py: dfu: Provide functionality to set test and dummy files alt settings
After concatenation of "dfu_alt_info" variable from "dfu_alt_boot" and
"dfu_alt_system" it may happen that test and dummy files alt settings
are different than default 0 and 1.
This patch provides the ability to set different values for them.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---
Changes for v3:
- replace variables declarations with ones read from configuration file
- remove not necessary str() conversion at DFU host command generation
Changes for v2:
- generate "alt_info" automatically
- use file names as alt settings instead of numerical values
- extend in-code documentation
diff --git a/test/py/tests/test_dfu.py b/test/py/tests/test_dfu.py
index 0442af8..8649d87 100644
--- a/test/py/tests/test_dfu.py
+++ b/test/py/tests/test_dfu.py
@@ -30,6 +30,13 @@
},
)
+# Optional entries (required only when "alt_id_test_file" and
+# "alt_id_dummy_file" are specified).
+test_file_name = "/dfu_test.bin"
+dummy_file_name = "/dfu_dummy.bin"
+# Above files are used to generate proper "alt_info" entry
+"alt_info": "/%s ext4 0 2;/%s ext4 0 2" % (test_file_name, dummy_file_name),
+
env__dfu_configs = (
# eMMC, partition 1
{
@@ -52,6 +59,16 @@
# $dfu_alt_info, each time the dfu command is run, by concatenating
# $dfu_alt_boot and $dfu_alt_system.
"alt_info_env_name": "dfu_alt_system",
+ # This value is optional.
+ # For boards which require the "test file" alt setting number other than
+ # default (0) it is possible to specify exact file name to be used as
+ # this parameter.
+ "alt_id_test_file": test_file_name,
+ # This value is optional.
+ # For boards which require the "dummy file" alt setting number other
+ # than default (1) it is possible to specify exact file name to be used
+ # as this parameter.
+ "alt_id_dummy_file": dummy_file_name,
},
)
@@ -107,10 +124,6 @@
Nothing.
"""
- # Default alt settings for test and dummy files
- alt_setting_test_file = 0
- alt_setting_dummy_file = 1
-
def start_dfu():
"""Start U-Boot's dfu shell command.
@@ -188,7 +201,7 @@
Nothing.
"""
- cmd = ['dfu-util', '-a', str(alt_setting), up_dn_load_arg, fn]
+ cmd = ['dfu-util', '-a', alt_setting, up_dn_load_arg, fn]
if 'host_usb_port_path' in env__usb_dev_port:
cmd += ['-p', env__usb_dev_port['host_usb_port_path']]
u_boot_utils.run_and_log(u_boot_console, cmd)
@@ -276,6 +289,9 @@
dummy_f = u_boot_utils.PersistentRandomFile(u_boot_console,
'dfu_dummy.bin', 1024)
+ alt_setting_test_file = env__dfu_config.get('alt_id_test_file', '0')
+ alt_setting_dummy_file = env__dfu_config.get('alt_id_dummy_file', '1')
+
ignore_cleanup_errors = True
try:
start_dfu()