9 січня 2024 р. 15:54:32 GMT+02:00, Mattijs Korpershoek 
<[email protected]> написав(-ла):
>Hi Svyatoslav,
>
>Thank you for the patch.
>
>On ven., janv. 05, 2024 at 09:22, Svyatoslav Ryhel <[email protected]> wrote:
>
>> From: Ion Agorria <[email protected]>
>>
>> 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 <[email protected]>
>> Signed-off-by: Svyatoslav Ryhel <[email protected]>
>
>I confirm this fixes the problem reported in:
>https://lore.kernel.org/all/[email protected]/
>
>Tested-by: Mattijs Korpershoek <[email protected]>
>
>The commit message is a bit long, but I don't mind it staying this way.
>
>Reviewed-by: Mattijs Korpershoek <[email protected]>
>

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

Reply via email to