From: Lucas Stach <l.stach@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: [ptxdist] [PATCH 4/4] piglit: new package
Date: Mon, 8 Jun 2015 12:06:00 +0200 [thread overview]
Message-ID: <1433757960-27712-4-git-send-email-l.stach@pengutronix.de> (raw)
In-Reply-To: <1433757960-27712-1-git-send-email-l.stach@pengutronix.de>
Piglit is the opensource OpenGL/OpenCL test suite. Currently
only OpenCL tests are working. OpenGL needs some more work, but this
should be a solid foundation for future work.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
.../0001-refine-dependency-checks.patch | 51 ++++++++++++++++++
...on-t-pass-NULL-ptr-to-initial-strtok-call.patch | 39 ++++++++++++++
patches/piglit-6ed55113338ebebe/series | 5 ++
rules/piglit.in | 43 +++++++++++++++
rules/piglit.make | 63 ++++++++++++++++++++++
5 files changed, 201 insertions(+)
create mode 100644 patches/piglit-6ed55113338ebebe/0001-refine-dependency-checks.patch
create mode 100644 patches/piglit-6ed55113338ebebe/0002-cl-tests-don-t-pass-NULL-ptr-to-initial-strtok-call.patch
create mode 100644 patches/piglit-6ed55113338ebebe/series
create mode 100644 rules/piglit.in
create mode 100644 rules/piglit.make
diff --git a/patches/piglit-6ed55113338ebebe/0001-refine-dependency-checks.patch b/patches/piglit-6ed55113338ebebe/0001-refine-dependency-checks.patch
new file mode 100644
index 000000000000..3ce9e901279c
--- /dev/null
+++ b/patches/piglit-6ed55113338ebebe/0001-refine-dependency-checks.patch
@@ -0,0 +1,51 @@
+From: Lucas Stach <l.stach@pengutronix.de>
+Date: Wed, 3 Jun 2015 16:47:50 +0200
+Subject: [PATCH] refine dependency checks
+
+Allows to build OpenCL tests without the need for python-numpy and
+libwaffle or GLUT.
+
+Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
+---
+ CMakeLists.txt | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2208dc73b46a..1159c4bf28b4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,6 +48,8 @@ else()
+ option(PIGLIT_USE_WAFFLE "Use Waffle in place of GLUT" OFF)
+ endif()
+
++if(PIGLIT_BUILD_GL_TESTS OR PIGLIT_BUILD_GLES1_TESTS OR
++ PIGLIT_BUILD_GLES2_TESTS OR PIGLIT_BUILD_GLES3_TESTS)
+ if(PIGLIT_USE_WAFFLE)
+ if (NOT WIN32)
+ pkg_check_modules(Waffle REQUIRED waffle-1)
+@@ -104,6 +106,8 @@ else()
+ message(FATAL_ERROR "GLUT library not found")
+ endif()
+ endif(PIGLIT_USE_WAFFLE)
++endif(PIGLIT_BUILD_GL_TESTS OR PIGLIT_BUILD_GLES1_TESTS OR
++ PIGLIT_BUILD_GLES2_TESTS OR PIGLIT_BUILD_GLES3_TESTS)
+
+ if(PIGLIT_BUILD_GLES1_TESTS AND NOT PIGLIT_USE_WAFFLE)
+ message(FATAL_ERROR "Option PIGLIT_BUILD_GLES1_TESTS requires PIGLIT_USE_WAFFLE")
+@@ -195,10 +199,15 @@ IF(PIGLIT_BUILD_GLX_TESTS)
+ ENDIF()
+
+ find_package(PythonInterp 2.7 REQUIRED)
+-find_package(PythonNumpy 1.6.2 REQUIRED)
+ find_package(PythonMako 0.8.0 REQUIRED)
+ find_package(PythonSix 1.4.0 REQUIRED)
+
++if(PIGLIT_BUILD_GL_TESTS OR PIGLIT_BUILD_GLES1_TESTS OR
++ PIGLIT_BUILD_GLES2_TESTS OR PIGLIT_BUILD_GLES3_TESTS)
++ find_package(PythonNumpy 1.6.2 REQUIRED)
++endif(PIGLIT_BUILD_GL_TESTS OR PIGLIT_BUILD_GLES1_TESTS OR
++ PIGLIT_BUILD_GLES2_TESTS OR PIGLIT_BUILD_GLES3_TESTS)
++
+ # Default to compiling with debug information (`gcc -g`):
+ if(NOT CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE Debug CACHE STRING
diff --git a/patches/piglit-6ed55113338ebebe/0002-cl-tests-don-t-pass-NULL-ptr-to-initial-strtok-call.patch b/patches/piglit-6ed55113338ebebe/0002-cl-tests-don-t-pass-NULL-ptr-to-initial-strtok-call.patch
new file mode 100644
index 000000000000..6268e445ed6d
--- /dev/null
+++ b/patches/piglit-6ed55113338ebebe/0002-cl-tests-don-t-pass-NULL-ptr-to-initial-strtok-call.patch
@@ -0,0 +1,39 @@
+From: Lucas Stach <l.stach@pengutronix.de>
+Date: Wed, 3 Jun 2015 16:49:07 +0200
+Subject: [PATCH] cl-tests: don't pass NULL ptr to initial strtok call
+
+If the test doesn't require specific extensions a NULL ptr is
+passed to the initial call of strtok(). Apparently this works on
+x86, but crashes on ARM. The documentation does not really say
+what the expected behavior is, but bailing out in this case fixes
+the segfault and allows the tests to run.
+
+Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
+---
+ tests/util/piglit-framework-cl.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/tests/util/piglit-framework-cl.c b/tests/util/piglit-framework-cl.c
+index 9a7efef1d93b..9dc73c7e3508 100644
+--- a/tests/util/piglit-framework-cl.c
++++ b/tests/util/piglit-framework-cl.c
+@@ -86,6 +86,9 @@ bool check_platform_extensions(cl_platform_id platform_id, char* extensions)
+ {
+ char* pch;
+
++ if (!extensions)
++ return true;
++
+ pch = strtok(extensions, " ");
+ while(pch != NULL) {
+ if( strlen(pch) > 0
+@@ -108,6 +111,9 @@ bool check_device_extensions(cl_device_id device_id, char* extensions)
+ {
+ char* pch;
+
++ if (!extensions)
++ return true;
++
+ pch = strtok(extensions, " ");
+ while(pch != NULL) {
+ if( strlen(pch) > 0
diff --git a/patches/piglit-6ed55113338ebebe/series b/patches/piglit-6ed55113338ebebe/series
new file mode 100644
index 000000000000..260ecedb3dcc
--- /dev/null
+++ b/patches/piglit-6ed55113338ebebe/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-refine-dependency-checks.patch
+0002-cl-tests-don-t-pass-NULL-ptr-to-initial-strtok-call.patch
+# 510c99d0cb02d3d3f3c258d3f615804e - git-ptx-patches magic
diff --git a/rules/piglit.in b/rules/piglit.in
new file mode 100644
index 000000000000..70842d68637a
--- /dev/null
+++ b/rules/piglit.in
@@ -0,0 +1,43 @@
+## SECTION=test_suites
+
+menuconfig PIGLIT
+ tristate
+ prompt "piglit"
+ select HOST_CMAKE
+ select HOST_PYTHON
+ select HOST_PYTHON_SIX
+ select HOST_PYTHON_SETUPTOOLS
+ select PYTHON
+ select PYTHON_MAKO
+ help
+ Piglit is the opensource OpenGL/OpenCL test suite.
+
+if PIGLIT
+
+# OpenGL tests need some more dependencies sorted out
+
+config PIGLIT_TESTS_OPENGL
+ bool
+ prompt "build OpenGL tests"
+ depends on BROKEN
+
+config PIGLIT_TESTS_OPENGLES1
+ bool
+ prompt "build OpenGL ES1 tests"
+ depends on BROKEN
+
+config PIGLIT_TESTS_OPENGLES2
+ bool
+ prompt "build OpenGL ES2 tests"
+ depends on BROKEN
+
+config PIGLIT_TESTS_OPENGLES3
+ bool
+ prompt "build OpenGL ES3 tests"
+ depends on BROKEN
+
+config PIGLIT_TESTS_OPENCL
+ bool
+ prompt "build OpenCL tests"
+
+endif
diff --git a/rules/piglit.make b/rules/piglit.make
new file mode 100644
index 000000000000..f522d59da88e
--- /dev/null
+++ b/rules/piglit.make
@@ -0,0 +1,63 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2015 by Lucas Stach <l.stach@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PIGLIT) += piglit
+
+#
+# Paths and names
+#
+PIGLIT_VERSION := 6ed55113338ebebe
+PIGLIT_MD5 := c72ae684ba39f00db039f76818489b48
+PIGLIT := piglit-$(PIGLIT_VERSION)
+PIGLIT_SUFFIX := tar.xz
+PIGLIT_URL := http://anongit.freedesktop.org/git/piglit.git;tag=$(PIGLIT_VERSION)
+PIGLIT_SOURCE := $(SRCDIR)/$(PIGLIT).$(PIGLIT_SUFFIX)
+PIGLIT_DIR := $(BUILDDIR)/$(PIGLIT)
+PIGLIT_LICENSE := unknown
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PIGLIT_BUILD_OOT := NO
+PIGLIT_CONF_TOOL := cmake
+
+PIGLIT_CONF_OPT := $(CROSS_CMAKE_USR) \
+ -DPIGLIT_USE_WAFFLE=0 \
+ -DPIGLIT_BUILD_GL_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGL,1,0) \
+ -DPIGLIT_BUILD_GLES1_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGLES1,1,0) \
+ -DPIGLIT_BUILD_GLES2_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGLES2,1,0) \
+ -DPIGLIT_BUILD_GLES3_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGLES3,1,0) \
+ -DPIGLIT_BUILD_CL_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENCL,1,0)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/piglit.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, piglit)
+ @$(call install_fixup, piglit,PRIORITY,optional)
+ @$(call install_fixup, piglit,SECTION,base)
+ @$(call install_fixup, piglit,AUTHOR,"Lucas Stach <l.stach@pengutronix.de>")
+ @$(call install_fixup, piglit,DESCRIPTION,missing)
+
+ @$(call install_copy, piglit, 0, 0, 755, -, /usr/bin/piglit)
+ @$(call install_tree, piglit, 0, 0, -, /usr/lib/piglit)
+
+ @$(call install_finish, piglit)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.1.4
--
ptxdist mailing list
ptxdist@pengutronix.de
prev parent reply other threads:[~2015-06-08 10:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 10:05 [ptxdist] [PATCH 1/4] python: install python2 symlink Lucas Stach
2015-06-08 10:05 ` [ptxdist] [PATCH 2/4] host-python-six: new package Lucas Stach
2015-06-08 10:05 ` [ptxdist] [PATCH 3/4] python-mako: " Lucas Stach
2015-06-08 10:06 ` Lucas Stach [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1433757960-27712-4-git-send-email-l.stach@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox