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>