In order for the testChkpii automated test to run you must have
the correct version of the internal IBM chkpii tools on your
path and the file must be called chkpw1402.exe

Also, in Unix system chkpii chokes if you have errors 127 and 128
in your ignoreErrors.txt file

Also, you must use the correct platform file seperator in the
ignoreFiles.txt.