[PATCH v7 7/7] test: hush: dollar: fix bagous behavior
Svyatoslav
clamor95 at gmail.com
Tue Jan 9 14:57:57 CET 2024
9 січня 2024 р. 15:54:32 GMT+02:00, Mattijs Korpershoek <mkorpershoek at baylibre.com> написав(-ла):
>Hi Svyatoslav,
>
>Thank you for the patch.
>
>On ven., janv. 05, 2024 at 09:22, Svyatoslav Ryhel <clamor95 at gmail.com> wrote:
>
>> From: Ion Agorria <ion at agorria.com>
>>
>> The dollar test was merged with bagous console behavior, and
>> instead of fixing it, this behavior was just workarounded.
>>
>> It seems like without the fix the ut_assert_skipline(); didn't clear
>> console and running ut_assert_skipline(); many times would give always
>> OK. With
>>
>> lib: membuff: fix readline not returning line in case of overflow
>>
>> the line is cleared correctly and next assert fails because now there
>> is nothing to clean which is correct if we look the this a bit above
>> the failing assert:
>>
>> if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
>> /*
>> * For some strange reasons, the console is not empty after
>> * running above command.
>> * So, we reset it to not have side effects for other tests.
>> */
>> console_record_reset_enable();
>> } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
>> ut_assert_console_end();
>> }
>>
>> Which further confirms that tests workaround the old problem and now
>> that problem is fixed we can remove the whole if blocks and simply
>> place ut_assert_console_end() right after ut_assert_skipline() without
>> any conditional and will pass green.
>>
>> So this part of code goes from:
>> ut_assert_skipline();
>> ut_assert_skipline();
>>
>> if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
>> /* See above comments. */
>> console_record_reset_enable();
>> } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
>> ut_assert_console_end();
>> }
>>
>> to become:
>> ut_assert_skipline();
>> ut_assert_console_end();
>>
>> Same thing should be done with the if block mentioned above that calls
>> console_record_reset_enable().
>>
>> Signed-off-by: Ion Agorria <ion at agorria.com>
>> Signed-off-by: Svyatoslav Ryhel <clamor95 at gmail.com>
>
>I confirm this fixes the problem reported in:
>https://lore.kernel.org/all/87wmspm9e5.fsf@baylibre.com/
>
>Tested-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>
>
>The commit message is a bit long, but I don't mind it staying this way.
>
>Reviewed-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>
>
Thanks! Commit title might have a typo. Not "bagous" but "bugous" should be correct. May you adjust on pick if not too hard?
>> ---
>> test/hush/dollar.c | 23 +++--------------------
>> 1 file changed, 3 insertions(+), 20 deletions(-)
>>
>> diff --git a/test/hush/dollar.c b/test/hush/dollar.c
>> index 4caa07c192..68d0874d90 100644
>> --- a/test/hush/dollar.c
>> +++ b/test/hush/dollar.c
>> @@ -53,29 +53,12 @@ static int hush_test_simple_dollar(struct unit_test_state *uts)
>> ut_asserteq(1, run_command("dollar_foo='bar quux", 0));
>> /* Next line contains error message */
>> ut_assert_skipline();
>> -
>> - if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
>> - /*
>> - * For some strange reasons, the console is not empty after
>> - * running above command.
>> - * So, we reset it to not have side effects for other tests.
>> - */
>> - console_record_reset_enable();
>> - } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
>> - ut_assert_console_end();
>> - }
>> + ut_assert_console_end();
>>
>> ut_asserteq(1, run_command("dollar_foo=bar quux\"", 0));
>> - /* Two next lines contain error message */
>> - ut_assert_skipline();
>> + /* Next line contains error message */
>> ut_assert_skipline();
>> -
>> - if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
>> - /* See above comments. */
>> - console_record_reset_enable();
>> - } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
>> - ut_assert_console_end();
>> - }
>> + ut_assert_console_end();
>>
>> ut_assertok(run_command("dollar_foo='bar \"quux'", 0));
>>
>> --
>> 2.40.1
More information about the U-Boot
mailing list