| 2a981dc2 | 29-Feb-2016 |
Simon Glass <sjg@chromium.org> |
dm: block: Adjust device calls to go through helpers function
To ease conversion to driver model, add helper functions which deal with calling each block device method. With driver model we can reim
dm: block: Adjust device calls to go through helpers function
To ease conversion to driver model, add helper functions which deal with calling each block device method. With driver model we can reimplement these functions with the same arguments.
Use inline functions to avoid increasing code size on some boards.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| ebac37cf | 29-Feb-2016 |
Simon Glass <sjg@chromium.org> |
dm: blk: Rename get_device() to blk_get_device_by_str()
The current name is too generic. The function returns a block device based on a provided string. Rename it to aid searching and make its purpo
dm: blk: Rename get_device() to blk_get_device_by_str()
The current name is too generic. The function returns a block device based on a provided string. Rename it to aid searching and make its purpose clearer. Also add a few comments.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| 4101f687 | 29-Feb-2016 |
Simon Glass <sjg@chromium.org> |
dm: Drop the block_dev_desc_t typedef
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long and causes 80-column violations, rename it to struct blk_desc.
Signed-off-by: Simo
dm: Drop the block_dev_desc_t typedef
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long and causes 80-column violations, rename it to struct blk_desc.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| f8025b58 | 24-Feb-2016 |
Simon Glass <sjg@chromium.org> |
spi: Re-enable the SPI flash tests
These are working correctly again, so re-enable them.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jagan Teki <jteki@openedev.com> Tested-by: Jagan
spi: Re-enable the SPI flash tests
These are working correctly again, so re-enable them.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jagan Teki <jteki@openedev.com> Tested-by: Jagan Teki <jteki@openedev.com>
show more ...
|
| f91281b1 | 24-Feb-2016 |
Simon Glass <sjg@chromium.org> |
trace: Improve the trace test number recognition
The awk tool can be confused by return character (ASCII 13) in its input since it thinks there is a separate field. These can appear if the terminal
trace: Improve the trace test number recognition
The awk tool can be confused by return character (ASCII 13) in its input since it thinks there is a separate field. These can appear if the terminal is in raw mode, perhaps due to a previous U-Boot crash with sandbox. This is very confusing. Remove these so that the trace test passes.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 0edd82e2 | 24-Feb-2016 |
Simon Glass <sjg@chromium.org> |
image: Fix FIT and vboot tests to exit sandbox correctly
When used with a device tree, sandbox now requires a 'reset' controller. Add this to the device trees so that reset works and the tests can c
image: Fix FIT and vboot tests to exit sandbox correctly
When used with a device tree, sandbox now requires a 'reset' controller. Add this to the device trees so that reset works and the tests can complete.
Signed-off-by: Simon Glass <sjg@chromium.org> Fixes: 5010d98f (sandbox: Use the reset driver to handle reset)
show more ...
|
| 24862c64 | 16-Feb-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
test/py: skip tests that require large CONFIG_SYS_MAXARGS
test_hush_if_test.py executes commands that require large values of CONFIG_SYS_MAXARGS. Detect cases where the configured value is too low a
test/py: skip tests that require large CONFIG_SYS_MAXARGS
test_hush_if_test.py executes commands that require large values of CONFIG_SYS_MAXARGS. Detect cases where the configured value is too low and skip those tests.
Ideally, this would be implemented inside console.run_command(). However, the command passed to that function is already a completely formed string, and determining its argument count usage would require splitting commands at ;, handling quoting to deal with arguments containing spaces, etc. Even passing the command as a list wouldn't solve all these issues, since we'd still need to split commands on ; and deal with cases like "if test ..." which consumes 0 of the argument count.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 38831ca3 | 16-Feb-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
test/py: use space to interrupt autoboot
Sending CTRL-C to QEMU's stdin aborts the process, even if stdin is being used as a serial port (at least in the raspi2 machine with "qemu -serial stdin"). A
test/py: use space to interrupt autoboot
Sending CTRL-C to QEMU's stdin aborts the process, even if stdin is being used as a serial port (at least in the raspi2 machine with "qemu -serial stdin"). Avoid sending CTRL-C to U-Boot to prevent it exiting.
I'd originally used CTRL-C to make sure that if the character used to abort autoboot ended up being treated as part of a command as well, it'd abort command entry and return the prompt to a known state. However, this is not needed, since aborting the autoboot eats the character used to do that.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 299e5bb7 | 25-Feb-2016 |
Michal Simek <michal.simek@xilinx.com> |
test/py: Add option to skip SPL signature checking
Provide user option to skip SPL signature verification for cases where u-boot is build with SPL support but full U-Boot is also verified without SP
test/py: Add option to skip SPL signature checking
Provide user option to skip SPL signature verification for cases where u-boot is build with SPL support but full U-Boot is also verified without SPL.
If you want to support this feature please add env__spl_skipped = True to your boardenv configuration file.
For example Xilinx Zynq is using this feature where the same U-Boot binary is checked with SPL and without SPL(with FSBL).
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
show more ...
|
| b1309a23 | 17-Feb-2016 |
Heiko Schocher <hs@denx.de> |
test/py: only check for SPL signature if SPL uses serial output
check for U-Boot SPL signature only if SPL really has a serial output. So check if CONFIG_SPL_SERIAL_SUPPORT is active in board config
test/py: only check for SPL signature if SPL uses serial output
check for U-Boot SPL signature only if SPL really has a serial output. So check if CONFIG_SPL_SERIAL_SUPPORT is active in board config.
Signed-off-by: Heiko Schocher <hs@denx.de> Tested-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| 97255438 | 11-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: put "Starting U-Boot" into separate log section
The initial boot of U-Boot happens within the context of the first test that needs to access the U-Boot console when there is no existing con
test/py: put "Starting U-Boot" into separate log section
The initial boot of U-Boot happens within the context of the first test that needs to access the U-Boot console when there is no existing connection. This keeps all activity nestled within test execution, which fits well into the pytest model. However, this mingles the U-Boot startup logs with the execution of some test(s), which hides find the boundary between the two.
To solve this, wrap the "Starting U-Boot" logic into a separate log section. If the user wishes, they can simply collapse this log section when viewing the HTML log, to concentrate purely on the test's own interaction.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 93134e18 | 10-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: handle exceptions in console creation
u_boot_console.exec_attach.get_spawn() performs two steps: 1) Spawn a process to communicate with the serial console. 2) Reset the board so that U-Boot
test/py: handle exceptions in console creation
u_boot_console.exec_attach.get_spawn() performs two steps: 1) Spawn a process to communicate with the serial console. 2) Reset the board so that U-Boot starts running from scratch.
Currently, if an exception happens in step (2), no cleanup is performed on the process created in step (1). That process stays running and may e.g. hold serial port locks, or simply continue to read data from the serial port, thus preventing it from reaching any other process that attempts to read from the same serial port later. While there is error cleanup code in u_boot_console_base.ensure_spawned(), this is not triggered since the exception prevents assignment to self.p there, and hence the exception handler has no object to operate upon in cleanup_spawn().
Solve this by enhancing u_boot_console.exec_attach.get_spawn() to clean up any objects it has created.
In theory, u_boot_spawn.Spawn's constructor has a similar issue, so fix this too.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 1326022c | 10-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: print summary in test order
Use lists rather than sets to record the status of tests. This causes the test summary in the HTML file to be generated in the same order as the tests are (or wo
test/py: print summary in test order
Use lists rather than sets to record the status of tests. This causes the test summary in the HTML file to be generated in the same order as the tests are (or would have been) run. This makes it easier to locate the first failed test. The log for this test might have interesting first clues re: interaction with the environment (e.g. hardware flashing, serial console, ...) and may help tracking down external issues.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 1235c791 | 10-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: fix CONFIG_SPL test
The Python ini file parser that's used to parse .config converts all keys to lower-case. Hence, all queries against the results must use lower-case. Fix u_boot_console.e
test/py: fix CONFIG_SPL test
The Python ini file parser that's used to parse .config converts all keys to lower-case. Hence, all queries against the results must use lower-case. Fix u_boot_console.ensure_spawned() to test CONFIG_SPL correctly, or the connection will fail for boards that have SPL.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 06088b04 | 09-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: don't import pexpect
The code replaced pexpect with custom code long ago. Don't import the unused module so it doesn't need to be installed.
Signed-off-by: Stephen Warren <swarren@nvidia.c
test/py: don't import pexpect
The code replaced pexpect with custom code long ago. Don't import the unused module so it doesn't need to be installed.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| d70facf8 | 08-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: add docs for gdbserver and pytest options
Add documentation describing the new --gdbserver feature, and some common pytest options.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked
test/py: add docs for gdbserver and pytest options
Add documentation describing the new --gdbserver feature, and some common pytest options.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 1cd85f57 | 08-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: run all "ut" subtests
Invoke each "ut"-based unit test as a separate pytest.
Now that the DM unit test runs under test/py, remove the manual shell script that invokes it.
Signed-off-by: S
test/py: run all "ut" subtests
Invoke each "ut"-based unit test as a separate pytest.
Now that the DM unit test runs under test/py, remove the manual shell script that invokes it.
Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org> # v2, on sandbox
show more ...
|
| c82ce04a | 06-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: capture the entire U-Boot version at boot
The existing regex simply ensures that the captured version string doesn't go past the end of a line. We really want to grab as much as possible. D
test/py: capture the entire U-Boot version at boot
The existing regex simply ensures that the captured version string doesn't go past the end of a line. We really want to grab as much as possible. Do this by explicitly including a ) character at the end of the regex to match the last character of the version test.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| d8926811 | 06-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: fix off-by-one error in spawn matching code
A regex match object's .end() value is already the index after the match, not the index of the last character in the match, so there's no need to
test/py: fix off-by-one error in spawn matching code
A regex match object's .end() value is already the index after the match, not the index of the last character in the match, so there's no need to add 1 to point past the match.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| 83357fd5 | 03-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: HTML awesome!
Implement three improvements to the HTML log file: - Ability to expand/contract sections. All passing sections are contracted at file load time so the user can concentrate o
test/py: HTML awesome!
Implement three improvements to the HTML log file: - Ability to expand/contract sections. All passing sections are contracted at file load time so the user can concentrate on issues requiring action. - The overall status report is copied to the top of the log for easy access. - Add links from the status report to the test logs, for easy navigation.
This all relies on Javascript and the jquery library. If the user doesn't have Javascript enabled, or jquery can't be downloaded, the log should look and behave identically to how it did before this patch.
A few notes on the diff:
- A few more 'with log.section("xxx")' were added, so that all stream blocks are kept within a section block for consistent HTML entity nesting structure. This changed indentation in a few places, making the diff look slightly larger. - HTML entity IDs are cleaned up. We assign simple incrementing integer IDs now, rather than using mangled test names which were possibly invalid. - Sections and streams now use common CSS class names (in addition to the current separate class names) to more easily share the new behaviour. This also reduces the CSS file size since rules don't need to be duplicated. - An "OK" status is logged after some external command executions so that make and flash steps are auto-contracted at log file load time, assuming they passed.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| ac99831b | 03-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: exit(1) if there are problems running py.test
The test/py/test.py wrapper script catches exceptions thrown when exec()ing py.test in order to print a helpful error message. However, the exc
test/py: exit(1) if there are problems running py.test
The test/py/test.py wrapper script catches exceptions thrown when exec()ing py.test in order to print a helpful error message. However, the exception handling code squashes the exception and so the script exits with a non-zero exit code, leading callers to believe that it passed. Fix this.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| 89ab8410 | 04-Feb-2016 |
Stephen Warren <swarren@nvidia.com> |
test/py: support running sandbox under gdbserver
Implement command--line option --gdbserver COMM, which does two things:
a) Run the sandbox process under gdbserver, using COMM as gdbserver's com
test/py: support running sandbox under gdbserver
Implement command--line option --gdbserver COMM, which does two things:
a) Run the sandbox process under gdbserver, using COMM as gdbserver's communication channel.
b) Disables all timeouts, so that if U-Boot is halted under the debugger, tests don't fail. If the user gives up in the middle of a debugging session, they can simply CTRL-C the test script to abort it.
This allows easy debugging of test failures without having to manually re-create the failure conditions. Usage is:
Window 1: ./test/py/test.py --bd sandbox --gdbserver localhost:1234
Window 2: gdb ./build-sandbox/u-boot -ex 'target remote localhost:1234'
When using this option, it likely makes sense to use pytest's -k option to limit the set of tests that are executed.
Simply running U-Boot directly under gdb (rather than gdbserver) was also considered. However, this was rejected because:
a) gdb's output would then be processed by the test script, and likely confuse it causing false failures.
b) pytest by default hides stdout from tests, which would prevent the user from interacting with gdb.
While gdb can be told to redirect the debugee's stdio to a separate PTY, this would appear to leave gdb's stdio directed at the test scripts and the debugee's stdio directed elsewhere, which is the opposite of the desired effect. Perhaps some complicated PTY muxing and process hierarchy could invert this. However, the current scheme is simple to implement and use, so it doesn't seem worth complicating matters.
c) Using gdbserver allows arbitrary debuggers to be used, even those with a GUI. If the test scripts invoked the debugger themselves, they'd have to know how to execute arbitary applications. While the user could hide this all in a wrapper script, this feels like extra complication.
An interesting future idea might be a --gdb-screen option, which could spawn both U-Boot and gdb separately, and spawn the screen into a newly created window under screen. Similar options could be envisaged for creating a new xterm/... too.
--gdbserver currently only supports sandbox, and not real hardware. That's primarily because the test hooks are responsible for all aspects of hardware control, so there's nothing for the test scripts themselves can do to enable gdbserver on real hardware. We might consider introducing a separate --disable-timeouts option to support use of debuggers on real hardware, and having --gdbserver imply that option.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
show more ...
|
| a108082d | 30-Jan-2016 |
Simon Glass <sjg@chromium.org> |
video: test: Adjust order of file closure
Close the file earlier to hopefully fix a Coverity error.
Reported-by: Coverity (CID: 134901)
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: T
video: test: Adjust order of file closure
Close the file earlier to hopefully fix a Coverity error.
Reported-by: Coverity (CID: 134901)
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
| 5674ead7 | 15-Jan-2016 |
Simon Glass <sjg@chromium.org> |
video: test: Add console tests for truetype
This adds tests for the different character types, line wrap, scrolling and backspace.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 8df8dad5 | 15-Jan-2016 |
Simon Glass <sjg@chromium.org> |
video: sandbox: Enable truetype fonts for sandbox
Enable this feature so that truetype fonts can be used on the sandbox console. Update the tests to select the normal/rotated console when needed.
S
video: sandbox: Enable truetype fonts for sandbox
Enable this feature so that truetype fonts can be used on the sandbox console. Update the tests to select the normal/rotated console when needed.
Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Anatolij Gustschin <agust@denx.de>
show more ...
|