Re: [PATCH 5/5] test: dm: add scmi command test
Hi, On Mon, 13 Nov 2023 at 18:41, AKASHI Takahiro wrote: > > On Mon, Nov 13, 2023 at 11:01:17AM -0700, Simon Glass wrote: > > Hi, > > > > On Sun, 12 Nov 2023 at 18:46, AKASHI Takahiro > > wrote: > > > > > > Hi Tom, > > > > > > On Fri, Nov 10, 2023 at 01:21:37PM -0500, Tom Rini wrote: > > > > On Wed, Oct 25, 2023 at 02:14:27PM +0900, AKASHI Takahiro wrote: > > > > > > > > > In this test, "scmi" command is tested against different sub-commands. > > > > > Please note that scmi command is for debug purpose and is not intended > > > > > in production system. > > > > > > > > > > Signed-off-by: AKASHI Takahiro > > > > > Reviewed-by: Simon Glass > > > > > Reviewed-by: Etienne Carriere > > > > > > > > The test part of this still fails: > > > > https://source.denx.de/u-boot/u-boot/-/jobs/732077 > > > > > > > > I don't know why more output wasn't captured, when I run it locally > > > > instead I get: > > > > == FAILURES > > > > === > > > > ___ test_ut[ut_dm_dm_test_scmi_cmd] > > > > ___ > > > > test/py/u_boot_spawn.py:195: in expect > > > > c = os.read(self.fd, 1024).decode(errors='replace') > > > > E OSError: [Errno 5] Input/output error > > > > > > > > During handling of the above exception, another exception occurred: > > > > test/py/tests/test_ut.py:502: in test_ut > > > > output = u_boot_console.run_command('ut ' + ut_subtest) > > > > test/py/u_boot_console_base.py:266: in run_command > > > > m = self.p.expect([self.prompt_compiled] + self.bad_patterns) > > > > test/py/u_boot_spawn.py:204: in expect > > > > raise ValueError('U-Boot exited with %s' % info) > > > > E ValueError: U-Boot exited with signal 11 (SIGSEGV) > > > > > > > > > The command uses global variables which hold pointers to 'struct udevice' > > > which are to be shared between the main and the sub-commands. > > > Since pytest framework executes ut tests twice, once with a (normal?) > > > device > > > tree and once with a flat tree, udevices will be *voided* between > > > two executions. > > > > Are you able to put the var in the uclass-priv data instead? The state > > should be cleared before running each DM test. > > Well, I don't think we need such a trick. > As you can see, we may simply fetch/find necessary udevices > every time the command is called. > It is enough given that the command is mainly for debug purpose. OK. Let's see how it goes. When you mention global vars I get a bit nervous, but we do have these in some places. Regards, Simon > > -Takahiro Akashi > > > > Regards, > > Simon > > > > > > > > > > I will fix it in v2. > > > > > > Thanks, > > > -Takahiro Akashi > > > > > > > > > > Captured stdout call > > > > - > > > > => ut dm dm_test_scmi_cmd > > > > Test: dm_test_scmi_cmd: scmi.c > > > > SCMI device: scmi > > > > protocol version: 0x2 > > > > # of agents: 2 > > > > 0: platform > > > > > 1: OSPM > > > > # of protocols: 4 > > > > Power domain management > > > > Clock management > > > > Reset domain management > > > > Voltage domain management > > > > vendor: U-Boot > > > > sub vendor: Sandbox > > > > impl version: 0x1 > > > > Denying access to device:0 failed (-13) > > > > Denying access to protocol:0x14 on device:0 failed (-13) > > > > Reset failed (-13) > > > > Test: dm_test_scmi_cmd: scmi.c (flat tree) > > > > SCMI device: Q > > > > === short test summary info > > > > === > > > > FAILED test/py/tests/test_ut.py::test_ut[ut_dm_dm_test_scmi_cmd] - > > > > ValueError: U-Boot exited... > > > > > > > > -- > > > > Tom > > > > > >
Re: [PATCH 5/5] test: dm: add scmi command test
On Mon, Nov 13, 2023 at 11:01:17AM -0700, Simon Glass wrote: > Hi, > > On Sun, 12 Nov 2023 at 18:46, AKASHI Takahiro > wrote: > > > > Hi Tom, > > > > On Fri, Nov 10, 2023 at 01:21:37PM -0500, Tom Rini wrote: > > > On Wed, Oct 25, 2023 at 02:14:27PM +0900, AKASHI Takahiro wrote: > > > > > > > In this test, "scmi" command is tested against different sub-commands. > > > > Please note that scmi command is for debug purpose and is not intended > > > > in production system. > > > > > > > > Signed-off-by: AKASHI Takahiro > > > > Reviewed-by: Simon Glass > > > > Reviewed-by: Etienne Carriere > > > > > > The test part of this still fails: > > > https://source.denx.de/u-boot/u-boot/-/jobs/732077 > > > > > > I don't know why more output wasn't captured, when I run it locally > > > instead I get: > > > == FAILURES > > > === > > > ___ test_ut[ut_dm_dm_test_scmi_cmd] > > > ___ > > > test/py/u_boot_spawn.py:195: in expect > > > c = os.read(self.fd, 1024).decode(errors='replace') > > > E OSError: [Errno 5] Input/output error > > > > > > During handling of the above exception, another exception occurred: > > > test/py/tests/test_ut.py:502: in test_ut > > > output = u_boot_console.run_command('ut ' + ut_subtest) > > > test/py/u_boot_console_base.py:266: in run_command > > > m = self.p.expect([self.prompt_compiled] + self.bad_patterns) > > > test/py/u_boot_spawn.py:204: in expect > > > raise ValueError('U-Boot exited with %s' % info) > > > E ValueError: U-Boot exited with signal 11 (SIGSEGV) > > > > > > The command uses global variables which hold pointers to 'struct udevice' > > which are to be shared between the main and the sub-commands. > > Since pytest framework executes ut tests twice, once with a (normal?) device > > tree and once with a flat tree, udevices will be *voided* between > > two executions. > > Are you able to put the var in the uclass-priv data instead? The state > should be cleared before running each DM test. Well, I don't think we need such a trick. As you can see, we may simply fetch/find necessary udevices every time the command is called. It is enough given that the command is mainly for debug purpose. -Takahiro Akashi > Regards, > Simon > > > > > > I will fix it in v2. > > > > Thanks, > > -Takahiro Akashi > > > > > > > Captured stdout call > > > - > > > => ut dm dm_test_scmi_cmd > > > Test: dm_test_scmi_cmd: scmi.c > > > SCMI device: scmi > > > protocol version: 0x2 > > > # of agents: 2 > > > 0: platform > > > > 1: OSPM > > > # of protocols: 4 > > > Power domain management > > > Clock management > > > Reset domain management > > > Voltage domain management > > > vendor: U-Boot > > > sub vendor: Sandbox > > > impl version: 0x1 > > > Denying access to device:0 failed (-13) > > > Denying access to protocol:0x14 on device:0 failed (-13) > > > Reset failed (-13) > > > Test: dm_test_scmi_cmd: scmi.c (flat tree) > > > SCMI device: Q > > > === short test summary info > > > === > > > FAILED test/py/tests/test_ut.py::test_ut[ut_dm_dm_test_scmi_cmd] - > > > ValueError: U-Boot exited... > > > > > > -- > > > Tom > > > >
Re: [PATCH 5/5] test: dm: add scmi command test
Hi, On Sun, 12 Nov 2023 at 18:46, AKASHI Takahiro wrote: > > Hi Tom, > > On Fri, Nov 10, 2023 at 01:21:37PM -0500, Tom Rini wrote: > > On Wed, Oct 25, 2023 at 02:14:27PM +0900, AKASHI Takahiro wrote: > > > > > In this test, "scmi" command is tested against different sub-commands. > > > Please note that scmi command is for debug purpose and is not intended > > > in production system. > > > > > > Signed-off-by: AKASHI Takahiro > > > Reviewed-by: Simon Glass > > > Reviewed-by: Etienne Carriere > > > > The test part of this still fails: > > https://source.denx.de/u-boot/u-boot/-/jobs/732077 > > > > I don't know why more output wasn't captured, when I run it locally > > instead I get: > > == FAILURES > > === > > ___ test_ut[ut_dm_dm_test_scmi_cmd] > > ___ > > test/py/u_boot_spawn.py:195: in expect > > c = os.read(self.fd, 1024).decode(errors='replace') > > E OSError: [Errno 5] Input/output error > > > > During handling of the above exception, another exception occurred: > > test/py/tests/test_ut.py:502: in test_ut > > output = u_boot_console.run_command('ut ' + ut_subtest) > > test/py/u_boot_console_base.py:266: in run_command > > m = self.p.expect([self.prompt_compiled] + self.bad_patterns) > > test/py/u_boot_spawn.py:204: in expect > > raise ValueError('U-Boot exited with %s' % info) > > E ValueError: U-Boot exited with signal 11 (SIGSEGV) > > > The command uses global variables which hold pointers to 'struct udevice' > which are to be shared between the main and the sub-commands. > Since pytest framework executes ut tests twice, once with a (normal?) device > tree and once with a flat tree, udevices will be *voided* between > two executions. Are you able to put the var in the uclass-priv data instead? The state should be cleared before running each DM test. Regards, Simon > > I will fix it in v2. > > Thanks, > -Takahiro Akashi > > > > Captured stdout call > > - > > => ut dm dm_test_scmi_cmd > > Test: dm_test_scmi_cmd: scmi.c > > SCMI device: scmi > > protocol version: 0x2 > > # of agents: 2 > > 0: platform > > > 1: OSPM > > # of protocols: 4 > > Power domain management > > Clock management > > Reset domain management > > Voltage domain management > > vendor: U-Boot > > sub vendor: Sandbox > > impl version: 0x1 > > Denying access to device:0 failed (-13) > > Denying access to protocol:0x14 on device:0 failed (-13) > > Reset failed (-13) > > Test: dm_test_scmi_cmd: scmi.c (flat tree) > > SCMI device: Q > > === short test summary info > > === > > FAILED test/py/tests/test_ut.py::test_ut[ut_dm_dm_test_scmi_cmd] - > > ValueError: U-Boot exited... > > > > -- > > Tom > >
Re: [PATCH 5/5] test: dm: add scmi command test
Hi Tom, On Fri, Nov 10, 2023 at 01:21:37PM -0500, Tom Rini wrote: > On Wed, Oct 25, 2023 at 02:14:27PM +0900, AKASHI Takahiro wrote: > > > In this test, "scmi" command is tested against different sub-commands. > > Please note that scmi command is for debug purpose and is not intended > > in production system. > > > > Signed-off-by: AKASHI Takahiro > > Reviewed-by: Simon Glass > > Reviewed-by: Etienne Carriere > > The test part of this still fails: > https://source.denx.de/u-boot/u-boot/-/jobs/732077 > > I don't know why more output wasn't captured, when I run it locally > instead I get: > == FAILURES > === > ___ test_ut[ut_dm_dm_test_scmi_cmd] > ___ > test/py/u_boot_spawn.py:195: in expect > c = os.read(self.fd, 1024).decode(errors='replace') > E OSError: [Errno 5] Input/output error > > During handling of the above exception, another exception occurred: > test/py/tests/test_ut.py:502: in test_ut > output = u_boot_console.run_command('ut ' + ut_subtest) > test/py/u_boot_console_base.py:266: in run_command > m = self.p.expect([self.prompt_compiled] + self.bad_patterns) > test/py/u_boot_spawn.py:204: in expect > raise ValueError('U-Boot exited with %s' % info) > E ValueError: U-Boot exited with signal 11 (SIGSEGV) The command uses global variables which hold pointers to 'struct udevice' which are to be shared between the main and the sub-commands. Since pytest framework executes ut tests twice, once with a (normal?) device tree and once with a flat tree, udevices will be *voided* between two executions. I will fix it in v2. Thanks, -Takahiro Akashi > Captured stdout call > - > => ut dm dm_test_scmi_cmd > Test: dm_test_scmi_cmd: scmi.c > SCMI device: scmi > protocol version: 0x2 > # of agents: 2 > 0: platform > > 1: OSPM > # of protocols: 4 > Power domain management > Clock management > Reset domain management > Voltage domain management > vendor: U-Boot > sub vendor: Sandbox > impl version: 0x1 > Denying access to device:0 failed (-13) > Denying access to protocol:0x14 on device:0 failed (-13) > Reset failed (-13) > Test: dm_test_scmi_cmd: scmi.c (flat tree) > SCMI device: Q > === short test summary info > === > FAILED test/py/tests/test_ut.py::test_ut[ut_dm_dm_test_scmi_cmd] - > ValueError: U-Boot exited... > > -- > Tom signature.asc Description: PGP signature
Re: [PATCH 5/5] test: dm: add scmi command test
On Wed, Oct 25, 2023 at 02:14:27PM +0900, AKASHI Takahiro wrote: > In this test, "scmi" command is tested against different sub-commands. > Please note that scmi command is for debug purpose and is not intended > in production system. > > Signed-off-by: AKASHI Takahiro > Reviewed-by: Simon Glass > Reviewed-by: Etienne Carriere The test part of this still fails: https://source.denx.de/u-boot/u-boot/-/jobs/732077 I don't know why more output wasn't captured, when I run it locally instead I get: == FAILURES === ___ test_ut[ut_dm_dm_test_scmi_cmd] ___ test/py/u_boot_spawn.py:195: in expect c = os.read(self.fd, 1024).decode(errors='replace') E OSError: [Errno 5] Input/output error During handling of the above exception, another exception occurred: test/py/tests/test_ut.py:502: in test_ut output = u_boot_console.run_command('ut ' + ut_subtest) test/py/u_boot_console_base.py:266: in run_command m = self.p.expect([self.prompt_compiled] + self.bad_patterns) test/py/u_boot_spawn.py:204: in expect raise ValueError('U-Boot exited with %s' % info) E ValueError: U-Boot exited with signal 11 (SIGSEGV) Captured stdout call - => ut dm dm_test_scmi_cmd Test: dm_test_scmi_cmd: scmi.c SCMI device: scmi protocol version: 0x2 # of agents: 2 0: platform > 1: OSPM # of protocols: 4 Power domain management Clock management Reset domain management Voltage domain management vendor: U-Boot sub vendor: Sandbox impl version: 0x1 Denying access to device:0 failed (-13) Denying access to protocol:0x14 on device:0 failed (-13) Reset failed (-13) Test: dm_test_scmi_cmd: scmi.c (flat tree) SCMI device: Q === short test summary info === FAILED test/py/tests/test_ut.py::test_ut[ut_dm_dm_test_scmi_cmd] - ValueError: U-Boot exited... -- Tom signature.asc Description: PGP signature