# All files will be found by recursive descent of directories, and each found
# file will be assigned the default labels. This is then overriden by matching
# each file against each line in this file, in order. The pattern is specified
# as a regex, but ! is used as a regex delimiter, so you can safely use / in
# the patterns. 
#
# Be aware that all files in a directory are specfied use 'dir/.*', not 'dir/*'.
#
# Possible labels:
#	- non-interpretable or interpretable (interpretable means executable). The
#	    default is to run a purity test to check if they are interpretable
#	- long (default) or short
#	- size-neutral (default) or size-dependent
#	- non-includable (default) or includable
#	- no-test_regex_expr (don't run with any test matching test_regex_expr)
#
# A common pattern would be to override some tests by adding, for example, the
# following to the bottom of the file:
#	.*				non-interpretable
#	codegen/.*	interpretable

# Counter-intuitive: Invalid tests which accidentally pass are only caught when
# they dont run by the fact that they fail when we interpret them. However,
# they will be skipped if BasicParseTest finds the error, so its safe to label
# them as interpreted.
.*											short interpretable
inline-c/.*								non-interpretable
unsupported/.*							non-interpretable no-Annotated_test # skip the first test, and all the others will automatically be skipped.
3rdparty/.*								long

# use limited tests on dataflow branch.
#.*											long
codegen/bench_.*						short
optimization/.*						short
codegen/\d.*							short
reduced/.*								short

# Bugs/features we want to ignore for the optimizer
bugs/bug0008.php								no-Opt # clone
codegen/006b.php								no-Opt # eval
codegen/006c.php								no-Opt # eval
codegen/006.php								no-Opt # eval
codegen/019a.php								no-Opt # eval
codegen/019c.php								no-Opt # eval
codegen/bailout_die.php						no-Opt # set_error_handler
codegen/call_evaled_fn.php					no-Opt # eval
codegen/foreach_object.php					no-Opt # containts a fatal error
codegen/same_parameters.php				no-Opt # bizarre edge case, where i'm not sure why PHP does what it does.
dynamic/.*										no-Opt # we dont support dynamic classes yet
errors/.*										no-Opt
inline-c/.*										no-Opt
optimization/indirect_string.php			no-Opt # reading from a string by reference gives an error
optimization/object_casting.php			no-Opt # error
optimization/reference2.php				no-Opt # accessing an object as an array.
optimization/unknown_everything.php		no-Opt # eval
parsing/brackets.php							no-Opt # includes non-existent files
parsing/empty.php								no-Opt # empty takes a NULL value
parsing/for.php								no-Opt # exit isnt reachable due to infinite-loop, so it segfaults.
parsing/functions.php						no-Opt # multiple function declaration
parsing/included_cc2.php					no-Opt # class error
parsing/listassignment.php					no-Opt # breaks the rules for list-assignments by using arrays which are indexed by a string key.
reduced/0001.php								no-Opt # eval
reduced/0002.php								no-Opt # debug_zval_dump
reduced/0004.php								no-Opt # eval
reduced/0005.php								no-Opt # debug_zval_dump
reduced/0010.php								no-Opt # eval
reduced/0011.php								no-Opt # eval
reduced/0012.php								no-Opt # eval
reduced/0013.php								no-Opt # eval
reduced/0019.php								no-Opt # eval
reduced/0052.php								no-Opt # __destruct
reduced/0053.php								no-Opt # class error
reduced/0054.php								no-Opt # class error
reduced/0054.php								no-Opt # class error
unsupported/.*									no-Opt
warnings/.*										no-Opt




# TODO: size-dependent isnt relevent anymore
bugs/bug0011.php						size-dependent

# These tests all cause infinite loops
parsing/binops\d+.php				long no-Generate_C no-Refcounts no-CompiledVsInterpreted

# gcc takes 44 seconds to compile this test. The generate C test is also very long
parsing/allchars_inline.php		no-Generate_C no-Refcounts no-CompiledVsInterpreted

# The refcounts test is a little buggy. If there is code both before and after a function def, it will print out different results.
codegen/shutdown_on_.*.php			no-Refcounts 
codegen/nested_statements.php		no-Refcounts
codegen/print.php						no-Refcounts
codegen/bench_.*.php					no-Refcounts # these take ages

parsing/for.php						non-interpretable # infinite loops
parsing/for_cond_with_comma.php	non-interpretable # infinite loops
codegen/for_varying_cond.php		non-interpretable # infinite loops

parsing/instring.php					non-interpretable # php's parser doesnt like this

# declare doesn't make sense after the ast
parsing/comments_declare.php		no-cb_AST-to-HIR
parsing/capital_ticks.php			no-cb_AST-to-HIR
parsing/layout5_declare.php		no-cb_AST-to-HIR

# Reports the contents of GLOBALS, which only differ because of temps
codegen/str_vs_int_index.php		no-cb_AST-to-HIR

# Doesn't print the hash-bang, which fails, but its expected.
parsing/hash_bang1.php				no-InterpretIncludes

#benchmarks/.*							long no-Refcounts

#benchmarks/shootout/.*											interpretable
#benchmarks/shootout/knucleotide.php							non-interpretable # uses stdin
#benchmarks/shootout/moments.php								non-interpretable # uses stdin
#benchmarks/shootout/regexdna.php-2.php						non-interpretable # uses stdin
#benchmarks/shootout/regexmatch.php							non-interpretable # uses stdin
#benchmarks/shootout/revcomp.php								non-interpretable # uses stdin
#benchmarks/shootout/reversefile.php							non-interpretable # uses stdin
#benchmarks/shootout/spellcheck.php							non-interpretable # uses stdin
#benchmarks/shootout/sumcol.php								non-interpretable # uses stdin
#benchmarks/shootout/wc.php										non-interpretable # uses stdin
#benchmarks/shootout/wordfreq.php								non-interpretable # uses stdin


#benchmarks/RUBBoS/.*												non-interpretable # uses a DB

#benchmarks/roadsend/benchmarks/tests/.*					interpretable
#benchmarks/roadsend/benchmarks/tests/julia-ppm.php		non-interpretable # writes a file
#benchmarks/roadsend/benchmarks/tests/mysql.*				non-interpretable # uses a DB
#benchmarks/roadsend/benchmarks/regression/.*				non-interpretable # reads /etc/passwd
#benchmarks/roadsend/benchmarks/data/include/.*			non-interpretable # generated code TODO remove

# These tests print out timing results, which wont be identical in interpretable tests
#benchmarks/phpbench-0.8.1/.*									non-interpretable
#benchmarks/php_bs/.*												non-interpretable
#benchmarks/zend/.*												non-interpretable

# Uses the GLOBALS array
optimization/global_references.php							no-RaisedCompileOptimized


# The outputs here differ, but the difference is irrelevant
bugs/bug0026.php													non-interpretable 
bugs/bug0028.php													non-interpretable
codegen/global_param.php										non-interpretable
codegen/target_rhs.php											non-interpretable
codegen/infinite_lists.php										non-interpretable
parsing/functions.php											non-interpretable
optimization/may_defs.php										non-interpretable
