|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2414 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 2414.
Report 2414 Actions
Problem Report Number 2414 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1250 Raised 2004-08-20 04:34 Updated 2004-08-26 20:54 Published 2004-08-26 20:54 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSX4 version 4.5.4 Test Identification /tset/ANSI.os/streamio/printf/T.*printf 56, 74, 75,
/tset/ANSI.os/streamio/printf/T.*printf_X 57Specification Base Definitions Issue 6 Location in Spec SUSv3 TC2 Line 13601 Problem Summary Tests do not specify output precision Problem Text The printf() statements for the tests are
test 56
printf( "%La %La %LA %LA %LF %LF", -22.625, 12.625, -22.625, 12.625,
-22.625, 12.625)
test 74
printf( "%a %a", -12.3, 321.765432) failed
test 75
printf( "%A %A", -12.3, 321.765432) failed
_X test 57
printf( "%2$La %1$La %2$LA %1$LA %2$LF %1$LF", 12.625, -22.625)
SUSv3 TC2 states:
if the precision is missing and FLT_RADIX is a power of 2, then the
precision shall be sufficient for an exact representation of the value;
if the precision is missing and FLT_RADIX is not a power of 2, then the
precision shall be sufficient to distinguish values of type double,
except that trailing zeros may be omitted;
We set FLT_RADIX to 2, so the precision should be sufficient for an
exact representation of the value. In this case, we don't believe the
extra zeros in the expected output are required.
The full set of test affected is:
/tset/ANSI.os/streamio/printf/T.fprintf 56
/tset/ANSI.os/streamio/printf/T.fprintf 74
/tset/ANSI.os/streamio/printf/T.fprintf 75
/tset/ANSI.os/streamio/printf/T.printf 56
/tset/ANSI.os/streamio/printf/T.printf 74
/tset/ANSI.os/streamio/printf/T.printf 75
/tset/ANSI.os/streamio/printf/T.snprintf 56
/tset/ANSI.os/streamio/printf/T.snprintf 74
/tset/ANSI.os/streamio/printf/T.snprintf 75
/tset/ANSI.os/streamio/printf/T.sprintf 56
/tset/ANSI.os/streamio/printf/T.sprintf 74
/tset/ANSI.os/streamio/printf/T.sprintf 75
/tset/ANSI.os/streamio/printf_X/T.fprintf_X 57
/tset/ANSI.os/streamio/printf_X/T.printf_X 57
/tset/ANSI.os/streamio/printf_X/T.snprintf_X 57
/tset/ANSI.os/streamio/printf_X/T.sprintf_X 57
/tset/ANSI.os/streamio/vprintf/T.vfprintf 56
/tset/ANSI.os/streamio/vprintf/T.vfprintf 74
/tset/ANSI.os/streamio/vprintf/T.vfprintf 75
/tset/ANSI.os/streamio/vprintf/T.vprintf 56
/tset/ANSI.os/streamio/vprintf/T.vprintf 74
/tset/ANSI.os/streamio/vprintf/T.vprintf 75
/tset/ANSI.os/streamio/vprintf/T.vsnprintf 56
/tset/ANSI.os/streamio/vprintf/T.vsnprintf 74
/tset/ANSI.os/streamio/vprintf/T.vsnprintf 75
/tset/ANSI.os/streamio/vprintf/T.vsprintf 56
/tset/ANSI.os/streamio/vprintf/T.vsprintf 74
/tset/ANSI.os/streamio/vprintf/T.vsprintf 75
/tset/ANSI.os/streamio/vprintf_X/T.vfprintf_X 57
/tset/ANSI.os/streamio/vprintf_X/T.vprintf_X 57
/tset/ANSI.os/streamio/vprintf_X/T.vsnprintf_X 57
/tset/ANSI.os/streamio/vprintf_X/T.vsprintf_X 57
Test Output ************************************************************************
/tset/ANSI.os/streamio/printf/T.printf 56 Failed
Test Description:
For the XNFS specification:
Not in use.
For the XSH specification:
When format contains %L?, where ? is one of the type conversion
characters a, f, e, g, A, F, E or G, and the long double
type is
supported, then the corresponding argument is taken to be a
long
double and converted accordingly.
The a, A and F directives are only tested in UNIX03 and POSIX01
modes.
Test Strategy:
IF the long double type is supported
CREATE child process
SETUP pipe for writing to parent
PERFORM output using printf()
VERIFY that the expected formatted output was produced
Test Information:
printf( "%La %La %LA %LA %LF %LF
", -22.625, 12.625, -22.625,
12.625, -22.625, 12.625) failed
(L) format modifier specifies argument is long double
Observed output: "-0x1.6ap+4 0x1.94p+3 -0X1.6AP+4 0X1.94P+3
-22.625000
12.625000
"
Expected output to match one of the following patterns:
"-0xb.5000*p+1 0xc.a000*p+0 -0XB.5000*P+1 0XC.A000*P+0
-22.625000 12.625000
"
"-0x5.a800*p+2 0x6.5000*p+1 -0X5.A800*P+2 0X6.5000*P+1
-22.625000 12.625000
"
"-0x2.d400*p+3 0x3.2800*p+2 -0X2.D400*P+3 0X3.2800*P+2
-22.625000 12.625000
"
"-0x1.6a00*p+4 0x1.9400*p+3 -0X1.6A00*P+4 0X1.9400*P+3
-22.625000 12.625000
"
************************************************************************
************************************************************************
/tset/ANSI.os/streamio/printf/T.printf 74 Failed
Test Description:
When format contains %a, then the float or double specified by the
corresponding argument is converted to a hexadecimal notation
character string of the form "[-]0xh.hhhp_d" where, by default,
there
is one digit before the radix character, at least one digit in the
exponent, and sufficient digits after the radix character:
a. for an exact representation of the value, in the case that
FLT_RADIX is a power of 2;
b. to distinguish values of type double, in the case that
FLT_RADIX is
not a power of 2.
Note: This test is only executed in POSIX01 and UNIX03 modes.
Test Strategy:
For POSIX01 and UNIX03 modes:
CREATE child process
SETUP pipe for writing to parent
PEFRORM output using printf()
VERIFY that the expected formatted output was produced and that
the correct number of bits are printed.
Test Information:
printf( "%a %a
", -12.3, 321.765432) failed
(a) format converts float or double to [-]0xh.hhhp[+-]d format
Observed output: "-0x1.899999999999ap+3 0x1.41c3f35baccfp+8
"
Expected output: "-0x1.899999999999ap+3 0x1.41c3f35baccf0p+8
"
printf( "%a %a
", -12.3, 321.765432) failed
(a) format converts float or double to [-]0xh.hhhp[+-]d format
%n 49 bits printed, expected at least 53
************************************************************************
************************************************************************
/tset/ANSI.os/streamio/printf/T.printf 75 Failed
Test Description:
When format contains %A, then the float or double specified by the
corresponding argument is converted to a hexadecimal notation
character string of the form "[-]0Xh.hhhP_d" where, by default,
there
is one digit before the radix character, at least one digit in the
exponent, and sufficient digits after the radix character:
a. for an exact representation of the value, in the case that
FLT_RADIX is a power of 2;
b. to distinguish values of type double, in the case that
FLT_RADIX is
not a power of 2.
Note: This test is only executed in POSIX01 and UNIX03 modes.
Test Strategy:
For POSIX01 and UNIX03 modes:
CREATE child process
SETUP pipe for writing to parent
PEFRORM output using printf()
VERIFY that the expected formatted output was produced and that
the correct number of bits are printed.
Test Information:
printf( "%A %A
", -12.3, 321.765432) failed
(A) format converts float or double to [-]0XH.HHHP[+-]d format
Observed output: "-0X1.899999999999AP+3 0X1.41C3F35BACCFP+8
"
Expected output: "-0X1.899999999999AP+3 0X1.41C3F35BACCF0P+8
"
printf( "%A %A
", -12.3, 321.765432) failed
(A) format converts float or double to [-]0XH.HHHP[+-]d format
%n 49 bits printed, expected at least 53
************************************************************************
************************************************************************
/tset/ANSI.os/streamio/printf_X/T.printf_X 57 Failed
Test Description:
For the XNFS specification:
Not in use.
For the XSH specification:
When format contains %k$L?, where k is a positive integer,
arg is
the kth argument and ? is one of the type conversion
characters a,
f, e, g, A, F, g, E or G, and the long double type is
supported,
then arg is taken to be a long double and converted
accordingly.
The a, A and F directives are only tested in UNIX03 mode.
Test Strategy:
CREATE child process
SETUP pipe for writing to parent
PERFORM output using printf()
VERIFY that the %k$L modifier operates with the specifiers a, f,
e, E,
g, G
Test Information:
printf( "%2$La %1$La %2$LA %1$LA %2$LF %1$LF
", 12.625, -22.625)
failed
(L) format modifier specifies argument is long double
Observed output: "-0x1.6ap+4 0x1.94p+3 -0X1.6AP+4 0X1.94P+3
-22.625000
12.625000
"
Expected output to match one of the following patterns:
"-0xb.5000*p+1 0xc.a000*p+0 -0XB.5000*P+1 0XC.A000*P+0
-22.625000 12.625000
"
"-0x5.a800*p+2 0x6.5000*p+1 -0X5.A800*P+2 0X6.5000*P+1
-22.625000 12.625000
"
"-0x2.d400*p+3 0x3.2800*p+2 -0X2.D400*P+3 0X3.2800*P+2
-22.625000 12.625000
"
"-0x1.6a00*p+4 0x1.9400*p+3 -0X1.6A00*P+4 0X1.9400*P+3
-22.625000 12.625000
"
************************************************************************
Review Information
Review Type TSMA Review Start Date 2004-08-20 04:34 Last Updated 2004-08-26 20:10 Completed 2004-08-26 20:10 Status Complete Review Recommendation Test Suite Deficiency (TSD) Review Response A test suite deficiency is recommended since the tests should allow for
output that does not have trailing zeros as permitted by
the specification.
Review Type SA Review Start Date 2004-08-26 19:10 Last Updated 2004-08-26 20:53 Completed 2004-08-26 20:53 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion A test suite deficiency is granted.
Problem Reporting System Options:
- View Report 2414
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority