Annotation of embedaddon/php/README.TESTING2, revision 1.1.1.1

1.1       misho       1: [IMPORTANT NOTICE]
                      2: ------------------
                      3: This is an addendum to README.TESTING with additional information 
                      4: specific to server-tests.php.
                      5: 
                      6: server-tests.php is backward compatible with tests developed for
                      7: the original run-tests.php script.  server-tests is *not* used by
                      8: 'make test'.  server-tests was developed to provide support for
                      9: testing PHP under it's primary environment, HTTP, and can run the
                     10: PHP tests under any of the SAPI modules that are direct executables, 
                     11: or are accessable via HTTP.
                     12: 
                     13: [New features]
                     14: ----------------
                     15: * Command line interface:
                     16:   You can run 'php server-tests.php -h' to get all the possible options.
                     17: * Configuration file:
                     18:   the -c argument will allow you to use a configuration file.  This is
                     19:   handy if you are testing multiple environments and need various options
                     20:   depending on the environment.
                     21:   see server-tests-config.php for details.
                     22: * CGI Emulation:
                     23:   Will emulate a CGI environment when testing with the cgi sapi executable.
                     24: * HTTP testing:
                     25:   can be configured to run test scripts through an HTTP server running
                     26:   on localhost.  localhost is required since either the web server must
                     27:   alias a directory to the php source directory, or the test scripts
                     28:   must be copied to a directory under the web server 
                     29:   (see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
                     30: * New sections supported for test files (see below)
                     31: 
                     32: When running tests over http, tests that require ini settings different that what
                     33: the web server runs under will be skipped.  Since the test harness defines a number
                     34: of ini settings by default, the web server may require special configuration to
                     35: make testing work.
                     36: 
                     37: [Example Usage]
                     38: ----------------
                     39: Some (but not all!) examples of usage:
                     40: 
                     41: 1. run tests from the php source directory
                     42:     php server-tests.php -p /path/to/php-cli
                     43: 
                     44: 2. run tests using cgi emulation
                     45:     php server-tests.php -p /path/to/php-cgi
                     46: 
                     47: 3. run tests over http, copying test files into document root
                     48:     php server-tests.php -w -u http://localhost/test -m /path/to/htdocs/test
                     49: 
                     50: 4. run tests over http, php sources have been aliased in web server
                     51:     php server-tests.php -w -u http://localhost/test
                     52:     
                     53: 5. run tests using configuration file
                     54:     php server-tests.php -c /path/to/server-tests-config.php
                     55: 
                     56: 6. run tests using configuration file, but overriding some settings:
                     57:    (config file must be first)
                     58:     php server-tests.php -c /path/to/server-tests-config.php -w -t 3 -d /path/to/testdir
                     59: 
                     60: NOTE: configuration as described in README.TESTING still works.
                     61: 
                     62: [New Test Sections] 
                     63: ----------------
                     64: In addition to the traditional test sections 
                     65: (see http://qa.php.net/write-test.php), several new sections are available 
                     66: under server-tests.
                     67: 
                     68: --POST--
                     69: This is not a new section, but not multipart posts are supported for testing
                     70: file uploads, or other types of POST data.
                     71: 
                     72: --CGI--
                     73: This section takes no value.  It merely provides a simple marker for tests
                     74: that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
                     75: in the test file.
                     76: 
                     77: --DESCRIPTION--
                     78: Not used for anything, just a section for documenting the test
                     79: 
                     80: --ENV--
                     81: This section get's eval()'d to help build an environment for the 
                     82: execution of the test.  This can be used to change environment
                     83: vars that are used for CGI emulation, or simply to set env vars
                     84: for cli testing.  A full example looks like:
                     85: 
                     86:   --ENV--
                     87:   return <<<END
                     88:   PATH_TRANSLATED=$filename
                     89:   PATH_INFO=$scriptname
                     90:   SCRIPT_NAME=$scriptname
                     91:   END;
                     92: 
                     93: Some variables are made easily available for use in this section, they
                     94: include:
                     95:   $filename     full native path to file, will become PATH_TRANSLATED
                     96:   $filepath     =dirname($filename)
                     97:   $scriptname   this is what will become SCRIPT_NAME unless you override it
                     98:   $docroot      the equivelant of DOCUMENT_ROOT under Apache
                     99:   $cwd          the directory that the test is being initiated from
                    100:   $this->conf   all server-tests configuration vars
                    101:   $this->env    all environment variables that will get passed to the test
                    102: 
                    103: 
                    104: --REQUEST--
                    105: This section is also eval'd, and is similar in nature to --ENV--.  However,
                    106: this section is used to build the url used in an HTTP request.  Valid values
                    107: to set in this section would include:
                    108:   SCRIPT_NAME   The inital part of the request url
                    109:   PATH_INFO     The pathinfo part of a request url
                    110:   FRAGMENT      The fragment section of a url (after #)
                    111:   QUERY_STRING  The query part of a url (after ?)
                    112: 
                    113:   --REQUEST--
                    114:   return <<<END
                    115:   PATH_INFO=/path/info
                    116:   END;
                    117: 
                    118: --HEADERS--
                    119: This section is also eval'd.  It is used to provide additional headers sent
                    120: in an HTTP request, such as content type for multipart posts, cookies, etc.
                    121: 
                    122:   --HEADERS--
                    123:   return <<<END
                    124:   Content-Type=multipart/form-data; boundary=---------------------------240723202011929
                    125:   Content-Length=100
                    126:   END;
                    127: 
                    128: --EXPECTHEADERS--
                    129: This section can be used to define what headers are required to be
                    130: received back from a request, and is checked in addition to the
                    131: regular expect sections.  For example:
                    132: 
                    133:   --EXPECTHEADERS--
                    134:   Status: 404
                    135: 
                    136: 
                    137: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>