Skip to content

Latest commit

 

History

History

subjects

A quick description of the purpose of each directory. Note that in general,
test cases should be short, and in the case of long tests, errors should be
moved to a separate short test.

	3rdparty/
		Within the testing framework, 3rdparty/ is a special directory. It uses
		its own label file, 3rdparty/labels/, and tests in this directory are
		normally considered 'long' (i.e. you need -l to run them). We generally put
		applications in here to test them.
	
	bugs/
		Test cases from bug reports that were sent to us. Named in the order
		they were filed.

	codegen/
		If there is something special to be done for a particular feature when
		generating code, there should be a test case in here. 

	dynamic/
		Tests dealing with dynamic features (typing probably not included, unless
		its interesting) should go in here.

	errors/
		PHP run-time errors (and some warnings) which we have moved to
		compile-time errors. There's a fine line between errors/ and invalid/,
		sometimes.

	horrible/
		A list of difficult parsing problems.

	inline-c/
		We allow inlined C to test certain features in codegen. This is for
		testing only, and should certainly not be used by anybody.

	parsing/
		Tests to hit every bit of the parser. General tests are also put in here.

	phc/ 
		Test features of phc, such as command-line options, as opposed to
		supported PHP features.

	php_bugs/
		Test cases from bug reports submitted to PHP bugzilla. There help us with
		corner cases when something is being implemented.

	reduced/
		When we reduce test cases to isolate a problem, we copy the reduced case
		here. Normally, we'd add a comment indicating its origin. These are named
		in the order they are created.

	unsupported/
		Some things are a combination of silly, not widely used, unsafe, dont
		make sense for a compiler, or most importantly, very difficult to
		support.

	warnings/
		Currently, the difference between errors and warnings (and sometimes
		invalid) is a little bit vague. Supposedly tests which cause warnings
		should be in here, but occasionally, they're in errors/ instead.