Re: [PATCH 1/2] msvcrt/tests: Add scanf tests for leading and trailing dash in scanset.

Will Mainio will.mainio at fastmail.com
Fri Oct 30 12:54:08 CDT 2020


Hi Piotr,

unfortunately I am not very familiar with C so I can't implement that but I can add tests with dashes in various locations.
Should that go into a v3 or into a separate patch?

Cheers

On Fri, Oct 30, 2020, at 1:45 PM, Piotr Caban wrote:
> Hi Will,
> 
> There are more problems with current implementation. The '-' character 
> can be also added to the set if it's not defining a range even if it's 
> not the first or last character. You can see it running following test:
> sscanf("123", "%[1-2-4]s", buf);
> This format will look for 1-2 range, '-' character and '4' (not for 1-2 
> range and 2-4 range).
> 
> Thanks,
> Piotr
> 
> On 10/30/20 1:23 PM, Will Mainio wrote:
> > Hi Gijs,
> > 
> > I will reorder the patches and submit a v2. Thanks for the heads up.
> > 
> > Cheers
> > 
> > On Fri, Oct 30, 2020, at 1:00 PM, Gijs Vermeulen wrote:
> >> Hi Will,
> >>
> >> You will either need to reorder your patches or add todo_wine to the ok()'s that are supposed to fail and remove them in your second patch.
> >>
> >> Kind regards,
> >> Gijs
> >>
> >>
> >> On Fri, Oct 30, 2020, 12:39 Will Mainio <will.mainio at fastmail.com> wrote:
> >>> Signed-off-by: Will Mainio <will.mainio at fastmail.com>
> >>> ---
> >>>   dlls/msvcrt/tests/scanf.c | 8 ++++++++
> >>>   1 file changed, 8 insertions(+)
> >>>
> >>> diff --git a/dlls/msvcrt/tests/scanf.c b/dlls/msvcrt/tests/scanf.c
> >>> index 57d9cc0ba12..4b878e6d64e 100644
> >>> --- a/dlls/msvcrt/tests/scanf.c
> >>> +++ b/dlls/msvcrt/tests/scanf.c
> >>> @@ -186,6 +186,14 @@ static void test_sscanf( void )
> >>>       ok( ret == 1, "Error with format \"%s\"\n","%*[a-cd-dg-e]%c");
> >>>       ok( buffer[0] == 'h', "Error with \"abcefgdh\" \"%c\"\n", buffer[0]);
> >>>
> >>> +    ret = p_sscanf("-123","%[-0-9]s",buffer);
> >>> +    ok( ret == 1, "Error with format \"%s\"\n","%[-0-9]s");
> >>> +    ok( strncmp("-123",buffer,strlen(buffer)) == 0, "Error with \"-123\" \"%s\"\n",buffer);
> >>> +
> >>> +    ret = p_sscanf("-321","%[0-9-]s",buffer);
> >>> +    ok( ret == 1, "Error with format \"%s\"\n","%[0-9-]s");
> >>> +    ok( strncmp("-321",buffer,strlen(buffer)) == 0, "Error with \"-321\" \"%s\"\n",buffer);
> >>> +
> >>>       buffer1[0] = 'b';
> >>>       ret = p_sscanf("a","%s%s", buffer, buffer1);
> >>>       ok( ret == 1, "expected 1, got %u\n", ret);
> >>> -- 
> >>> 2.28.0
> >>>
> >>>
> > 
> 
>



More information about the wine-devel mailing list