All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/3] tests: py: dfu: Provide functionality to set test and dummy files alt settings
Date: Wed, 20 Apr 2016 09:55:53 -0600	[thread overview]
Message-ID: <5717A689.5040805@wwwdotorg.org> (raw)
In-Reply-To: <20160420114017.3d1df243@amdc2363>

On 04/20/2016 03:40 AM, Lukasz Majewski wrote:
> Hi Stephen,
>
>> On 04/19/2016 09:51 AM, Lukasz Majewski wrote:
>>> 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.
>>
>>> @@ -122,6 +139,8 @@ def test_dfu(u_boot_console, env__usb_dev_port,
>>> env__dfu_config): Returns:
>>>                Nothing.
>>>            """
>>> +        global alt_setting_test_file
>>> +        global alt_setting_dummy_file
>>
>> There should be a blank line after the """ line. Although per the
>> comments below, you can simply drop this part of the diff completely.
>>
>>> @@ -132,6 +151,9 @@ def test_dfu(u_boot_console, env__usb_dev_port,
>>> env__dfu_config): u_boot_console.log.action(
>>>                'Starting long-running U-Boot dfu shell command')
>>>
>>> +        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')
>>
>> This always over-writes alt_setting_test_file, and changes the type
>> from integer (as specified by the current global assignment added in
>> patch 1) to string. You may as well simply remove the "global" lines
>> added in this patch, and the global assignment, since this patch
>> always assigns a value to those variables.
>>
>> Since the variable always contains a string now, you can remove the
>> str() call from run_dfu_util()'s assignment to cmd[].
>
> Frankly I'm a bit confused now.
> I'm not the python expert, but v2 design seems logical to me:
>
>
> test_dfu.py Python module (outermost scope):
>
> alt_setting_test_file = 0
> alt_setting_dummy_file = 1
>
> def test_dfu:
> 	
> 	def start_dfu():
> 		global alt_setting_test_file
> 		global alt_setting_dummy_file
>
> 		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')
>
> 	def dfu_write_read_check():
> 		...
> 		dfu_write(alt_setting_test_file, test_f.abs_fn)
> 		...
> 		dfu_write(alt_setting_dummy_file, dummy_f.abs_fn)
> 		...
> 		dfu_write(alt_setting_test_file, dummy_f.abs_fn)
>
>
> So I'm setting up alt_setting_{test|dummy}_file global variables at
> start_dfu() function. Afterwards, I reuse them at
> dfu_write_read_check().
>
> Such approach is similar to one used for "first_usb_dev_port" global
> variable in the same file.

first_usb_dev_port is a different case; it's explicitly data that needs 
to be saved from one invocation of the test (on USB port A for example) 
to another (on USB port B). The alt setting data should only be used 
within a single test invocation.

> If I remove "global" from alt_setting_{test|dummy}_file declaration
> then I will set them only to be valid at start_dfu() function scope.
> Hence at dfu_write_read_check() I will use those variables set to 0 and
> 1 respectively.
>
> One possible solution that I've found is to use "function attributes":
>
> def test_dfu:
> 	test_dfu.alt_setting_test_file
> 	test_dfu.alt_setting_dummy_file
>
> 	def start_dfu():
> 		test_dfu.alt_setting_test_file=env__dfu_config.get('alt_id_test_file','0')
> 		test_dfu.alt_setting_dummy_file=env__dfu_config.get('alt_id_dummy_file','1')
>
> 	def dfu_write_read_check():
> 		...
> 		dfu_write(test_dfu.alt_setting_test_file, test_f.abs_fn)
> 		...	
>
> Stephen, is the above solution acceptable for you?

I would expect the top-level test_dfu() function to read the 
configuration values. start_dfu() and dfu_write_read_check() can simply 
read them. That way, you wouldn't need the references to be 
"test_dfu.xxx" just "xxx". Se how dummy_f is assigned within the outer 
function, and the nested functions read that value.

  reply	other threads:[~2016-04-20 15:55 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-08 15:44 [U-Boot] [PATCH 1/3] tests: py: dfu: Add global variables to store dfu alt numbers for test and dummy files Lukasz Majewski
2016-04-08 15:44 ` [U-Boot] [PATCH 2/3] tests: py: dfu: Add functionality to set different u-boot's dfu env variable Lukasz Majewski
2016-04-08 16:28   ` Stephen Warren
2016-04-08 20:10     ` Lukasz Majewski
2016-04-08 16:29   ` Stephen Warren
2016-04-08 20:11     ` Lukasz Majewski
2016-04-08 15:44 ` [U-Boot] [PATCH 3/3] tests: py: dfu: Provide functionality to set test and dummy files alt settings Lukasz Majewski
2016-04-08 16:34   ` Stephen Warren
2016-04-11  8:42     ` Lukasz Majewski
2016-04-11 17:05       ` Stephen Warren
2016-04-12  8:33         ` Lukasz Majewski
2016-04-19 15:51 ` [U-Boot] [PATCH v2 1/3] tests: py: dfu: Add global variables to store dfu alt numbers for test and dummy files Lukasz Majewski
2016-04-19 15:51   ` [U-Boot] [PATCH v2 2/3] tests: py: dfu: Add functionality to set different u-boot's dfu env variable Lukasz Majewski
2016-04-19 15:51   ` [U-Boot] [PATCH v2 3/3] tests: py: dfu: Provide functionality to set test and dummy files alt settings Lukasz Majewski
2016-04-19 16:25     ` Stephen Warren
2016-04-20  9:40       ` Lukasz Majewski
2016-04-20 15:55         ` Stephen Warren [this message]
2016-04-19 16:22   ` [U-Boot] [PATCH v2 1/3] tests: py: dfu: Add global variables to store dfu alt numbers for test and dummy files Stephen Warren
2016-04-19 16:30     ` Lukasz Majewski
2016-04-21 15:40 ` [U-Boot] [PATCH v3 1/3] tests: py: dfu: Add " Lukasz Majewski
2016-04-21 15:40   ` [U-Boot] [PATCH v3 2/3] tests: py: dfu: Add functionality to set different u-boot's dfu env variable Lukasz Majewski
2016-04-21 15:40   ` [U-Boot] [PATCH v3 3/3] tests: py: dfu: Provide functionality to set test and dummy files alt settings Lukasz Majewski
2016-04-21 16:10   ` [U-Boot] [PATCH v3 1/3] tests: py: dfu: Add variables to store dfu alt numbers for test and dummy files Stephen Warren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5717A689.5040805@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.