Age | Commit message (Collapse) | Author | Files | Lines |
|
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
Previously the filename was the full path to the test. This would
break if the filename was serialized and installed to a different
location.
The code is based on what is done for ASMParserTest. However I have a
suspicion that this won’t work for running generated tests from an
out-of-tree build. In that case the path no longer contains the path
to the build directory. If this really is a problem it will need to be
fixed for ASMParserTest too so it could be done in a separate patch.
In the meantime there aren’t any generated VkRunner tests yet so it’s
not really a problem.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
This will be retrieved when generating the XML profile for the
VkRunner tests.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
I went with `# coding=utf-8` as it was the most common format in the
existing code:
24 # coding=utf-8
21 ## coding=utf-8
19 # encoding=utf-8
9 ## encoding=utf-8
6 # -*- coding: utf-8 -*-
I added it as the first line after the shebang, if any.
Suggested-by: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
The non-ascii char broke the python2 CI:
https://travis-ci.org/mesa3d/piglit/jobs/452170869
Fixes: 221d924689e3bb2796ce "framework: Add a vulkan tests profile"
Cc: Neil Roberts <nroberts@igalia.com>
Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
This searches for files named *.vk_shader_test in the tests/vulkan
directory and runs them with VkRunner. VkRunner is executed as an
external dependency. It is found either with the vkrunner:bin config
option, by setting the PIGLIT_VKRUNNER_BINARY environment variable, or
just in the search path.
v2: Move VkShaderTest to piglit_test.py and rename to VkRunnerTest.
Add future imports. Remove unused import.
v3: Support the PIGLIT_VKRUNNER_BINARY variable to specify the
location of VkRunner.
v4: Add documentation to the README. Add an option in piglit.conf to
set the binary location. (Suggested by Samuel Iglesias)
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
This is the old interface which is now not depended on by any tests.
v2: - remove shader_test interfaces as well
|
|
This converts the two test types that use the fast-skipping mechanism
(glsl parser and shader) to use the new interfaces. This has been
verified by running with PIGLIT_NO_FAST_SKIP=1 and without, and sans 1
test (that is fixed later in the series) the results are the same.
|
|
Currently fast skipping is implemented such that it assumes there's a
single version of ES, a single version of desktop, and all extensions
are shared between them. This has basically worked because 1) there are
basically no gles1 tests, and 2) piglit didn't have compat profile. But
worked and correct are two different things.
With the addition of compat profiles it's time to re-evaluate how fast
skipping works. Namely we need to have different attributes for ES1,
ES1+, core, compat, and I've added on for "legacy" (pre-profile), since
waffle supports that.
This maintains legacy interfaces so that existing code continues to
work.
v2: - Fix versions < 3.1 on implementations without core profile
|
|
So don't treat it like one. Stops one test from being fast-skipped that
shouldn't be.
|
|
|
|
So when executing shader tests, they will be executed with -glsl. This
is the force GLSL mode, that is only relevant if the shader test
includes SPIR-V shaders.
So for example:
./piglit run tests/shader.py -t ARB_gl_spirv --glsl results/results
Will try to run all the shader tests for ARB_gl_spirv using GLSL
instead of the default (for that extension) SPIR-V.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
|
|
As python 3.3 is deprecated and no longer supported by piglit, remove redundant workaround
for lack of readlines() support with mock in python 3.3.
Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
So that random keys show up somewhat nicely.
|
|
And into a generic sub element in the output. This makes information
like glxinfo and clinfo not a hard requirement and will allow any sort
of system information to be encoded.
|
|
This avoids modifications in the original filters object.
Detected through Travis CI.
Fixed also a couple of typos.
Fixes: 1f0f2ad25 ("framework: Add filters class")
Cc: Dylan Baker <dylanx.c.baker@intel.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Rhys Kidd <rhyskidd@gmail.com>
|
|
This just adds a helpful message about what directory the conflicting
shaders are in.
|
|
This allows an timeout (in integers) to be set for each test. If the
tests run over this alotted time they'll be killed and the status will
be set to timeout. This only work on Unix-like machines running with
python 3.x or with 2.7 and subprocess32 installed.
It can be made to work for windows, either by bumping the python version
or by writing some windows specific code for killing processes.
v2: - Add the word "Default" to help message.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
|
|
The runner will assertion fail if it can't create an appropriate
context, so just force the version so that we can get our testlists
generated.
Acked-by: Dylan Baker <dylan@pnwbakers.com>
|
|
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
The default remains the same: number of CPUs. But on systems with lots of
cores but comparatively little (V)RAM it can make sense to reduce the
number of jobs to avoid random failures caused by out-of-memory conditions.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
v2: check ENAMETOOLONG
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
|
|
This adds a new name.no_process.xml (or .meta.xml) file that is loaded
when --process-isolation=false is used.
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
This class works like a list, but with an extra method that allows it to
"reset" a filter. This will allow class based filters that need to be
reset to have deterministic behavior to do so.
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
This is a bug that has existed for a long time, and I'm not really sure
how we haven't hit this before honestly, I think that the reason this
has worked is that we've always provided a concrete type to to
pool.imap.
The problem is that pool.imap is an iterator. If you don't walk the
results then the program might exit before finishing. This seems to be
especially true when running without -c or -1. Instead we'll write the
loop, using pool.apply_async does basically the same thing (without the
ability to use chunks), but with out exiting early.
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
test_list is an iterator, you can't walk an iterator more than once. To
solve this we use itertools.tee, which creates a shared buffer for the
iterators to draw from. This fixes errors like:
[000/480]
Traceback (most recent call last):
File "./piglit", line 178, in <module>
main()
File "./piglit", line 174, in main
sys.exit(runner(args))
File "/home/user/piglit/framework/exceptions.py", line 51, in _inner
func(*args, **kwargs)
File "/home/user/piglit/framework/programs/run.py", line 370, in run
backend.finalize({'time_elapsed': time_elapsed.to_json()})
File "/home/user/piglit/framework/backends/json.py", line 163, in finalize
assert data['tests']
AssertionError
Thanks Tomi for figuring out what was wrong with the original patch!
CC: Tomi Sarvela <tomi.p.sarvela@intel.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
|
|
This happens due to LLVM printing colored text into stdout/stderr on error.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
|
This results in substantially smaller profiles and doesn't seem to
affect runtime.
v2: - install xml and xml.gz files. This is needed so that meta profiles
will be installed.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Currently is_skip() relies on runtime detection of which glslparsertest
binaries are built, but we can't assume that at build time. Instead
always assign the appropriate binary, and then check for the existence
of that binary at run time.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
MetaProfiles are a single profile composed of more than one profile.
This is designed to allow the old all-inclusive names to continue to
exist without having to keep duplicates of each profile around. A
metaprofile simply declares that it needs profiles a, b, and c and then
runs those.
This allows an "all" meta profile to include opengl, shader, and
glslparser, for example.
A metaprofile is allowed to include XML or python based profiles.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
This will be used during build time to allow profiles that modify other
profiles to load XML instead of rebuilding.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Which includes de-serialization on demand. This will vastly reduce the
amount of resident memory that is necessary to hold the tests since test
instances are made on demand, and can be garbage collected as soon as
the run in complete.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Because they need to be relative at build time for serialization.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
These tests need some special handling for serializing, since they take
file paths as arguments.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Just a nice cleanup.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
Since the serialized tests wont need this path, build a generic
constructor that this special constructor can leverage.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
This has the same problem as asmparser tests.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
This is going to make serialization easier, since asmparser tests take a
file argument, which must be relative at build time, but absolute at run
time.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
This exposes a standard interface for getting the number of tests in a
profile, which is itself nice. It will also allow us to encapsulate the
differences between the various profiles added in this series.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|
|
These need to be exposed for serialization.
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
|