Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Apr 2003 06:51:24 -0500
From:      David Leimbach <leimy2k@mac.com>
To:        Tim Robbins <tjr@FreeBSD.ORG>
Cc:        freebsd-standards@FreeBSD.ORG
Subject:   Re: test-strerror regression test
Message-ID:  <938EF288-73EF-11D7-98DE-0003937E39E0@mac.com>
In-Reply-To: <20030421173354.A41423@dilbert.robbins.dropbear.id.au>

next in thread | previous in thread | raw e-mail | index | archive | help

On Monday, April 21, 2003, at 02:33 AM, Tim Robbins wrote:

> On Sun, Apr 20, 2003 at 09:10:26PM -0500, David Leimbach wrote:
>
>> In /usr/src/tools/regression/lib/libc/string there is a test
>> "test-strerror.c" which attempts to verify a correct value for
>> strerror(0);
>>
>> This is probably a bogus value for strerror even though the posix
>> standard
>> does say it returns a string for any int.  Unless the locales for the
>> area are
>> all predefined somewhere we probably don't need this regression test
>> as it tests for the validity of the strings.
>>
>> In fact this test fails due to it not asserting the correct string.
>>
>> errno = 0;
>> sret = strerror(0);
>> assert(strcmp(sret, "Unknown Error: 0") == 0);
>> assert(errno == EINVAL);
>>
>>
>> I don't think this code has been tested in a long time...  The string
>> should be "Undefined error: 0" and why would 0 errno be EINVAL?
>>
>> If we are going to have a test suite it should at least be correct and
>> documented don't you think?
>
> The regression tests are regression tests, and not conformance tests 
> for any
> particular standard. FreeBSD prints "Unknown error: x", not "No error"
> like MSVC, and not "Error x" like Solaris. FreeBSD 4.8-RELEASE and 
> 5.0-CURRENT
> pass the tests.
>

I guess my point was I didn't know how to make these "conform" when I 
looked
at the POSIX standard for SUS.  All it said about strerror is that any 
int should
work and return a string per the locale that is currently set.


> $ uname -srm
> FreeBSD 5.0-CURRENT i386
> $ make
> cc -O -pipe -mcpu=pentiumpro  test-strerror.c  -o test-strerror
> cc -O -pipe -mcpu=pentiumpro  test-wcschr.c  -o test-wcschr
> cc -O -pipe -mcpu=pentiumpro  test-wcscmp.c  -o test-wcscmp
> cc -O -pipe -mcpu=pentiumpro  test-wcslen.c  -o test-wcslen
> cc -O -pipe -mcpu=pentiumpro  test-wmemchr.c  -o test-wmemchr
> cc -O -pipe -mcpu=pentiumpro  test-wmemset.c  -o test-wmemset
> for p in test-strerror   test-wcschr     test-wcscmp     test-wcslen 
> test-wmemchr    test-wmemset; do 
> /home/tim/p4/wchar/src/tools/regression/lib/libc/string/$p; done
> PASS strerror()

Failed for me due to failing assertions.

> PASS strerror_r()
> PASS wcschr()
> PASS wcscmp()
> PASS wcslen()
> PASS wmemchr()
> PASS wmemset()
>
>
> Tim



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?938EF288-73EF-11D7-98DE-0003937E39E0>