diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-09-13 10:29:01 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-09-13 23:03:36 +0100 |
commit | 2d96d3f5ace29bb886d825609bd042310019a620 (patch) | |
tree | 15309efefd7d7181d8344f8eefba3fb7ad7a7720 /meta/classes-recipe | |
parent | 8d5cb0399f255eca906e960ce7fe05c62a24e891 (diff) | |
download | poky-2d96d3f5ace29bb886d825609bd042310019a620.tar.gz |
selftest/qemurunner: Work around possible control character contamination
Using a binary string as the login banner search expression is fraught with
risks. We've seen cases on the autobuilder where "login:" is clearly shown
but the code hasn't triggered. The most likely cause is hidden control characters
in the output causing the search to fail.
Take the opportunity to remove the horrible binary string search, at the expense of
decoding the bootlog multiple times.
Tweak the logging so we can know which log was printed (self.msg or bootlog)
just in case this isn't the issue and we need more information in future.
(From OE-Core rev: 91b9e30e08695e715ef14c3df7471e8c99f9deb5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes-recipe')
-rw-r--r-- | meta/classes-recipe/testimage.bbclass | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/meta/classes-recipe/testimage.bbclass b/meta/classes-recipe/testimage.bbclass index 8d2fab21df..819c7d2bf4 100644 --- a/meta/classes-recipe/testimage.bbclass +++ b/meta/classes-recipe/testimage.bbclass | |||
@@ -189,11 +189,7 @@ def get_testimage_boot_patterns(d): | |||
189 | search_login_succeeded,search_cmd_finished\n Make sure your TESTIMAGE_BOOT_PATTERNS=%s \ | 189 | search_login_succeeded,search_cmd_finished\n Make sure your TESTIMAGE_BOOT_PATTERNS=%s \ |
190 | contains an accepted flag.' % d.getVar('TESTIMAGE_BOOT_PATTERNS')) | 190 | contains an accepted flag.' % d.getVar('TESTIMAGE_BOOT_PATTERNS')) |
191 | return | 191 | return |
192 | # We know boot prompt is searched through in binary format, others might be expressions | 192 | boot_patterns[flag] = flagval.encode().decode('unicode-escape') |
193 | if flag == 'search_reached_prompt': | ||
194 | boot_patterns[flag] = flagval.encode() | ||
195 | else: | ||
196 | boot_patterns[flag] = flagval.encode().decode('unicode-escape') | ||
197 | return boot_patterns | 193 | return boot_patterns |
198 | 194 | ||
199 | 195 | ||