glsl-resource-not-bound: test rendering with unbound resources

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
arb_clear_buffer_object: Test multiple formats.

Use glClearBufferData to clear a buffer with all supported internal formats.
arb_clear_buffer_object: Negative test unsupported formats.

Try to clear buffers using unsupported internal formats and check for the
expected errors.
arb_clear_buffer_object: Negative test buffer alignment.

The spec requires the buffer size to be a multiple of the size of the internal
format used for clearing.

Violate this and check for expected errors.
arb_clear_buffer_object: Try to clear a mapped buffer.

This is a negative test.
Try to clear entire buffer while it is entirely mapped.
Check for expected errors.
arb_clear_buffer_object: Negative test without bound buffer.

Try to clear a buffer binding point while no buffer ist bound to it.
Check for expected errors.
arb_clear_buffer_object: Pass NULL as data.

If NULL is passed as the data pointer to glClearBufferData the buffer should be
cleared to all zeros.
arb_clear_buffer_object: Negative test offset and size.

The offset and size parameters of glClearBufferSubData have to oblige to some
restrictions. Violate these and check for errors.
arb_clear_buffer_object: Clear partially mapped buffer.

From the spec:
    "An INVALID_OPERATION error is generated if any part of the specified
     range of the buffer bound to <target> is currently mapped."

This allows to clear a range of a buffer even if another, non-overlapping range
of that buffer is currently mapped.
arb_clear_buffer_object: Clear overlapping ranges.

Consecutively clear multiple, overlapping ranges of a buffer and check the
result.
arb_clear_buffer_object: Clear range of buffer.

Simple test to clear a buffer only partially.
Check that only the desired range was altered.
arb_clear_buffer_object: Clear a 0-length range.

Check that clearing of 0-length ranges is a no-op that doesn't generate any
errors.
arb_gpu_shader5: Add shader tests to verify 'invocations' layout qualifier

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
arb_gpu_shader5: Add compiler tests to verify 'invocations' layout qualifier

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
arb_clear_buffer_object: Avoid void pointer arithmetic.

MSVC does not allow arithmetic on void pointers.
Use char pointers instead.
python: Convert from print statement to function

One of the biggest changes between python2 and python3 is that print
changed from a statement to a function. This change was backported to
python2 in the __future__ module, and this patch makes that conversation
to ease the transition from python2 to python3.

This patch does add a dictionary comprehension to
Summary.generate_text(), which are not available in python2 < 2.7, but
are available from at latest python 3.2 (the oldest supported version of
python3). Since a later patch in this series converts to python3, I
didn't feel it was a big deal to add this 2.7 dependency.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
tests: replace tabs with spaces

This is achieved with the following command:
find tests -name '*.py' | xargs sed -i -e 's!\t!        !g'

In python2 its a warning to mix spaces and tabs, in python3 it's a
runtime error. So no more tabs in python files, just spaces.
Convert from python2 to python3

This is one big ugly patch, but I don't really see a way to make a
working transition without this ugliness, since any splitting of these
changes would cause the framework to raise a runtime exception.

This is the output of the 2to3 tool provided by python, with a few
manual edits for style and to replace list(iterator) with plain
iterators, which are fine for our use

It also does the following:
- replace #!/usr/bin/python with #!/usr/bin/python3
- Fix changes to hanging indents
- fix slots operator in status.py:
  - In python3 __slots__ behaves slightly differently than in python2,
    in that a class attribute does not fulfill a slot, but actually
    conflicts with it. For more information see:
    http://bugs.python.org/issue12766
- Fix bytes, strings and unicode
  - In python2 regex strings are usually of the raw type: r'(foo|bar)',
    but in python3 they need to be of the same type as the strings they
    are to be applied to. In dmesg this is bytes, so b'(foo|bar)'
  - One of the huge advantages to moving to python3 is that there is no
    ambiguity between unicode and byte strings. Bytes are explicitly
    marked as such and everything else is unicode.
- Fix functions that have moved from modules or been renamed
  - A number of types have been moved into the global namespace in
    python3, among them types.IntType and types.LongType have been
    replaced with int and types.FloatType have been replaced with float.

What it doesn't fix:
- junit
generated_tests: Convert to python3

This uses python3 for generating tests. This was generated by the 2to3
tool, with a few hand tuned changes, mainly around print statements that
already used grouping parens.
CMakeLists: Change python 2 dependency to python 3