.nr Hu 1
.SK
.HU "APPENDIX B"
.SP 2P
.ce
.B
\s16\*(Np Configuration Parameters\s0
.R
.sp 0.5i
The following parameters (listed in the order as
specified in \f(CW./include/config\fP)
are used by the \*(Nt to define
the environment of the implementation to be tested.
Each parameter, when appropriate, is provided a reference
to the applicable documentation assertion in \*(S3.
This reference, when used with the \*(Pd for the implementation, should provide
the needed information to properly configure these parameters for the \*(Nt.
.P
The \*(Np and its documentation audit will verify, whenever possible,
the installation parameters specified for the IUT.
.BL 4
.LI PCTS_PATH
.br
Absolute pathname of the target directory where the PCTS
is to reside.
.LI "UID, GID & LOGNAME"
.br
User and group identification numbers and login name associated with
the tester on the target system.
This tester will be the only user who may
run the tests reliably, since certain tests test results against this
value. 
Assign UID and GID with different values.
.LI "ROOT_UID & ROOT_GID"
.br
The user and group identification numbers associated with
the super-user on the target system.
.LI "BIN_UID & BIN_GID"
.br
User and group identification numbers for another user.
This PCTS requires that no other process is running as this user.
.LI ANOTHER_UID
.br
One more user identification number.
This parameter is used exclusively for
.Fn kill
testing.
.LI SUPPLEMENTARY_GROUPS
.br
To validate values of the supplementary groups returned by
.Fn getgroups ,
the PCTS installer is required to provide the values of those group ID
numbers that have been assigned as supplementary group IDs to the test user.
The number of supplementary groups required to be assigned to the
test user (UID) is NGROUPS_MAX.
The value BIN_GID must not be a parameter of SUPPLEMENTARY_GROUPS.
.P
The tester must ensure that the groups specified are defined for the system
being tested.
This groups definition mechanism is implementation specific.
The values of the supplementary groups are specified as a string separated
by a comma.
.LI "UNUSED_UID, UNUSED_GID, UNUSED_LOGNAME, & UNUSED_GROUP_NAME"
.br
User and group identification numbers and login and group names
not associated with any user in the password and group databases.
.LI GDB_ENTRY
.br
An actual entry in the group database.
The format is: ``group_name,group_ID,group_member,group_member,...''.
.LI PDB_ENTRY
.br
An actual entry in the password database.
The format is: ``login_name,user-ID,group_ID,home_directory,default_shell''.
.LI "CHAR_SPECIAL\ \ (2.2.2.9[02])"
.br
If the IUT provides support for character special devices,
then specify \f(CW'\fP1\f(CW'\fP (see \(sc8.1, step <16> for character special
file creation requirement) otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI BLOCK_SPECIAL
.br
If the IUT provides support for block special devices,
then specify \f(CW'\fP1\f(CW'\fP (see \(sc8.1, step <16> for block special
file creation requirement) otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCD_READ_ONLY_FILE_SYSTEM
.br
If the IUT supports read-only file systems,
then specify \f(CW'\fP1\f(CW'\fP (and specify a file system for PCTS_FS)
otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCTS_FS
.br
This parameter specifies the device on which the test suite mounts
and unmounts a file system.
This file system is used to test assertions conditional on read-only file
systems being supported and to test assertions which attempt to write
more data than the file system can accomodate.
.P
When the implementation under
test does not provide another file system to test with, then specify the
parameter for PCTS_FS as
.ce 1
PCTS_FS ""
.br
and the file system used to test the required assertions will be the one
available to the PCTS.
.P
The mounting and unmounting is performed by the implementation 
supplied interface functions
.Fn mtrwfs ,
.Fn mtrofs ,
and
.Fn unmtfs .
The implementation provides these function interfaces.
How it is performed is determined by the implementation.
See the installation manual for documentation on these required
interface functions.
The file system mounted should be configured with 20 - 100 free blocks.
The implementation must support the generation of a signal file with length
corresponding to the number of free blocks on this mounted file system.
This should be a \f2clean\fP spare file system.
.P
The time required to perform the required testing on PCTS_FS may
vary significantly from one implementation to another. Depending on
the procedures required for mounting and unmounting file systems and the
amount of free space provided on PCTS_FS.
.LI TIME_PCTS_FS_TESTING
.br
This parameter specifies the minimum time the PCTS waits for the tests
associated with [EROFS] and [ENOSPC] to complete.
This time is specified in seconds.
.LI UNAME_INFO
.br
The PCTS will test the strings returned by
.Fn uname
against the parameters provided for this item.
Each parameter is specified as one or more characters separated by a comma.
The ordered sequence of the paramters are: 
.BL 4
.BL 1
.LI
SYSNAME \(em name of the implementation being tested
.LI
NODENAME \(em target system node name as returned by
.Fn uname
.LI
RELEASE \(em target operating system release number as returned by
.Fn uname
.LI
VERSION \(em target operating system version as returned by
.Fn uname
.LI
MACHINE \(em target hardware name as returned by
.Fn uname
.LE
.LE
.SP
A \f(CW'\fP,\f(CW'\fP can be included in any parameter by deliminating the \f(CW'\fP,\f(CW'\fP
with two \f(CW'\fP\\\f(CW'\fP characters.
e.g., \f(CWUNAME_INFO NIST-SYS,nemo.ncsl.nist.gov,3\\\\,1,0,ABCD\fP
specifies the expected RELEASE string as \f(CW3,1\fP.
.LI FILENAME_OF_TERMINAL_FILE
.br
The pathname of a terminal file.
.LI "PORT_TTY and PORT_LOOP"
.br
Two general terminal interface asynchronous devices are required to test
most of the assertions associated with the general terminal interface
requirements.
If these devices are not available, then these parameters must be specified as
null strings ("") and asociated assertions will be resolved to UNSUPPORTED
(See Appendix XXX).
Implementations
that do not support these devices can receive an NIST Certificate which
will specify that the POSIX General Terminal Interface was not tested.
.P
PORT_TTY and PORT_LOOP must be connected as specified in this manual.
This connection allows this PCTS to direct output
to one of these ports and read the data generated by reading the
the other port.
Conversely, input on one ports is output on the other port.
This \f1closed-loop\fP connection allows the PCTS to
simulate a keyboard, controlling terminal, and terminal display to test
the general terminal interface assertions.
.LI GTI_MODEM_CONTROL
.br
If the implementations supports modem control on the asynchronous
serial terminal ports PORT_TTY and PORT_LOOP, then specify \f(CW'\fP1\f(CW'\fP
otherwise specify \f(CW'\fP0\f(CW'\fP.
This PCTS assumes that support for modem control implies support for
CLOCAL clear (see POSIX.1, line 416), CLOCAL set,
HUPCL set (see POSIX.1, lines 409-411), and HUPCL clear.
.LI "PCTS_GTI_BUFFERS_OUTPUT\ \ (7.1.1.8[11])
.br
If the implementation provides buffered output for general terminal devices,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "GTI_LOCKS\ \ (6.5.2.2[02])"
.br
If the implementation supports locks on PORT_TTY and PORT_LOOP,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI GTI_BAUD_RATES
.br
This parameter specifies the input/output baud rates that your
implementation will support for the PORT_TTY and PORT_LOOP ports.
Tests are performed to ensure this data is accurate and complete.
.P
Do not specify B0 as a GTI_BAUD_RATES parameter.
.LI TIME_ACQUIRE_XMITTED_DATA
.br
Implementations vary as to the time required for data to arrive at
the input queue via the loop back cable after being transmitted.
This parameter is the delay in tenths of seconds to be used when
needed to ensure the data has arrived.
.LI GTI_LINE_CLOSE_DELAY
.br
Telephone equipment may not immediately terminate a connection
when a hangup occurs.
Implementations may disconnect the TTY line and inhibit another
.Fn open
on that TTY line for an implementation defined period. This period is
made long enough to guarantee that the connection has been terminated
by the telephone switching equipment. If this period is not long enough,
the telephone connection may not be broken and a successive
.Fn open
may complete with the old connection.
.P
The GTI_LINE_CLOSE_DELAY parameter allows an implementation to define
a delay time in seconds that will be honored for those instances in
this PCTS where a
.Fn close
on the GTI line is performed.
.LI "GTI_START_STOP\ \ (7.1.1.9[12])
.br
If the implementation supports changing the START and STOP special
characters on PORT_TTY and PORT_LOOP,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCTS_ECHOE
.br
Control sequence to erase terminal\f(CW'\fPs previous character.
.LI PCTS_ECHOK
.br
Control sequence to erase terminal\f(CW'\fPs current line.
.LI "A_D_TO_P_WHEN_C_P_T \ \ (7.1.1.3[06])"
.br
If after a controlling process terminates, access to the terminal by
processes in the terminated process\f(CW'\fPs session is denied,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "ANOTHER_LOCALE\ \ (8.1.3.2[01])"
.br
To adequately test a number of the assertions for
.Fn setlocale
when an implementation does support additional locales,
another \f2locale\fP is needed other than ``C'' and ``POSIX''.
Subclause 8.1.2.2 of the implementations PCD specifies any additional
locales that are supported.
If no additional locales are supported specify ``'' otherwise specify
the name of one of the additional locales supported.
.LI "APP_ACCESS\ \ (5.6.3.2[01])"
.br
If the implementation provides a method for associating with a process
the appropriate privileges to override the file access control mechanism,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "APP_CHOWN\ \ (5.6.5.2[01])"
.br
If the implementation provides a method for associating with a process
the appropriate privileges to change file owner,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "APP_UTIME\ \ (2.2.2.4[01])"
.br
If the implementation permits appropriate privilege processes to change
file times,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "GROUP_ID_OF_PARENT_DIR\ \ (5.3.1.2[02])"
.br
This parameter informs the PCTS how to test that
the group ID of newly created files and directories are set to
the group owner of its parent directory.
If the implementation requires the S_ISGID mode set on the parent directory,
then specify GROUP_ID_OF_PARENT_DIR as \f(CW'\fP1\f(CW'\fP otherwise specify
as \f(CW'\fP0\f(CW'\fP.
.LI "EINVAL_ACCESS\ \ (5.6.3.4[3])"
.br
If the implementation supports [EINVAL] for
.Fn access ,
then specify the value for the \f2amode\fP argument of
.Fn access
otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI EINVAL_SETPGID
.br
If the implementation supports [EINVAL] for
.Fn setpgid
when the \f2pgid\fP argument is invalid,
then specify a value for the \f2pgid\fP argument
otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI EINVAL_SYSCONF
.br
Specify a value for the \f2name\fP argument to
.Fn sysconf
to generate [EINVAL] when
.Fn sysconf
is called.
.LI EINVAL_WAITPID
.br
Specify the value for the \f2options\fP argument to
.Fn waitpid
to generate [EINVAL] when
.Fn waitpid
is called.
.LI "INVALID_GID_VALUE, INVALID_PID_VALUE,"
.LI "INVALID_PGRP_ID_VALUE, & INVALID_UID_VALUE"
.br
If the implementation supports an invalid value for the process atribute
stated, then specify an invalid value for that process attribute otherwise
specify \f(CW'\fP0\f(CW'\fP.
.LI "EBADF_CLOSEDIR\ \ (5.1.2.4.4[03]),"
.LI "EBADF_READDIR \ \ (5.1.2.2.4[06]),"
.LI "EDEADLK_FCNTL\ \ (6.5.2.4[04]), and"
.LI "EMFILE_OPENDIR \ \ (5.1.2.1.4[02])"
.br
If the implementation supports the detection of the errno (leading part of
parameter's name) for the function (trailing part of parameter's name),
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "PCD_CREAT_LINK_COUNT \ \ (5.1.1[01]),"
.LI "PCD_DIR_TYPE\ \ (5.1.1[01]),"
.LI "PCD_LINK_FILE_SYSTEM\ \ (5.3.4.2[01]),"
.LI "PCD_LINK_TO_DIRECTORY\ \ (5.3.4.2[03]),"
.LI "PCD_NO_LOCK_FILE_TYPE,\ \ (6.5.2.2[02]), and"
.LI "PCD_WRITE_PERM_TO_RENAME\ \ (5.5.3.2[01])"
.br
These items are specified in \*(S3 as PCD.1
determinable conditional features and are required
by \*(Fp (item \f(CW'\fPp\f(CW'\fP) to be documented if supported.
If the PCD.1 documents the conditional feature as supported,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "PCD_UNLINK_DIRECTORY\ \ (5.5.1.2[02])"
.br
If the implementation documents support for unlinking a directory, then
specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI "PCTS_CHMOD_SET_IDS\ \ (5.6.4.2[02])"
.br
If the implementation supports the setting of S_ISUID and S_ISGID by
.Fn chmod ,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCTS_INVALID_OWNER
.br
If the implementation supports an invalid group or owner ID,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCTS_INVALID_SIGNAL
.br
If the implementation supports detection of an invalid or
unsupported signal number,
then specify \f(CW'\fP1\f(CW'\fP otherwise specify \f(CW'\fP0\f(CW'\fP.
.LI PCTS_INVALID_SIGNAL_NUMBER
.br
If the specification for PCTS_INVALID_SIGNAL was \f(CW'\fP1\f(CW'\fP, then specify a value
for an invalid or unsupported signal number.
.LE
