[Piglit] [PATCH 1/2] glslparsertest: Added some few more struct construction tests

Andres Gomez agomez at igalia.com
Thu Aug 11 16:16:10 UTC 2016


On Tue, 2016-08-09 at 13:14 +1000, Timothy Arceri wrote:
> On Fri, 2016-08-05 at 17:43 +0300, Andres Gomez wrote:
> > This set focus on checking invalid structs construction.
> > Specifically,
> > adds a test to check that only implicit conversions are perform and
> > vector conversions of the type vec3 to vec2 through dropping the z
> > component are not allowed.
> 
> 
> IMO we should try to avoid adding more tests to these directories.
> 
> I would much rather these be added to tests/spec/glsl-
> 1.20/compiler/constructor/
> 
> I would then name them struct-1.vert .. struct-N.vert

Let's do that, then.

> It's up to you if you want to move/rename the existing contructor tests
> but eventually I think this is something we should do.

I'll note it down in my TODO for later. I'd rather push this now as it
is.

> With the above and my comment below addressed you can add to this
> patch:
> 
> Acked-by: Timothy Arceri <timothy.arceri at collabora.com>

Thanks!

> > ---
> >  tests/glslparsertest/glsl2/constructor-29.vert | 13 +++++++++++++
> >  tests/glslparsertest/glsl2/constructor-30.vert | 13 +++++++++++++
> >  tests/glslparsertest/glsl2/constructor-31.vert | 15 +++++++++++++++
> >  tests/glslparsertest/glsl2/constructor-32.vert | 15 +++++++++++++++
> >  tests/glslparsertest/glsl2/constructor-33.vert | 15 +++++++++++++++
> >  tests/glslparsertest/glsl2/constructor-34.vert | 15 +++++++++++++++
> >  6 files changed, 86 insertions(+)
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-29.vert
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-30.vert
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-31.vert
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-32.vert
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-33.vert
> >  create mode 100644 tests/glslparsertest/glsl2/constructor-34.vert
> > 
> > diff --git a/tests/glslparsertest/glsl2/constructor-29.vert
> > b/tests/glslparsertest/glsl2/constructor-29.vert
> > new file mode 100644
> > index 0000000..eecab51
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-29.vert
> > @@ -0,0 +1,13 @@
> > +// [config]
> > +// expect_result: fail
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* FAIL */
> > +#version 120
> > +struct s { vec2 f; };
> > +
> > +void main()
> > +{
> > +    s t = s(vec3(1.0, 3.0, 0.0)); // Only Section 4.1.10 “Implicit
> > Conversions.” are allowed
> > +}
> > diff --git a/tests/glslparsertest/glsl2/constructor-30.vert
> > b/tests/glslparsertest/glsl2/constructor-30.vert
> > new file mode 100644
> > index 0000000..eecab51
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-30.vert
> > @@ -0,0 +1,13 @@
> > +// [config]
> > +// expect_result: fail
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* FAIL */
> > +#version 120
> > +struct s { vec2 f; };
> > +
> > +void main()
> > +{
> > +    s t = s(vec3(1.0, 3.0, 0.0)); // Only Section 4.1.10 “Implicit
> > Conversions.” are allowed
> > +}
> > diff --git a/tests/glslparsertest/glsl2/constructor-31.vert
> > b/tests/glslparsertest/glsl2/constructor-31.vert
> > new file mode 100644
> > index 0000000..fafaf85
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-31.vert
> > @@ -0,0 +1,15 @@
> > +// [config]
> > +// expect_result: fail
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* FAIL */
> > +#version 120
> > +struct s1 { float f; };
> > +
> > +struct s2 { s1 g; };
> > +
> > +void main()
> > +{
> > +    s2 t = s2(1); // Only Section 4.1.10 “Implicit Conversions.” are
> > allowed
> > +}
> > diff --git a/tests/glslparsertest/glsl2/constructor-32.vert
> > b/tests/glslparsertest/glsl2/constructor-32.vert
> > new file mode 100644
> > index 0000000..b27dcac
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-32.vert
> > @@ -0,0 +1,15 @@
> > +// [config]
> > +// expect_result: fail
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* FAIL */
> > +#version 120
> > +struct s1 { float f; };
> > +
> > +struct s2 { s1 g; };
> 
> 
> Please remove s2
> 
> 
> > +
> > +void main()
> > +{
> > +    s1 t = s1(s1(1)); // Only Section 4.1.10 “Implicit Conversions.”
> > are allowed
> > +}
> > diff --git a/tests/glslparsertest/glsl2/constructor-33.vert
> > b/tests/glslparsertest/glsl2/constructor-33.vert
> > new file mode 100644
> > index 0000000..46add14
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-33.vert
> > @@ -0,0 +1,15 @@
> > +// [config]
> > +// expect_result: fail
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* FAIL */
> > +#version 120
> > +struct s1 { float f; };
> > +
> > +struct s2 { s1 g; };
> > +
> > +void main()
> > +{
> > +    s2 t = s2(s2(s1(1))); // Only Section 4.1.10 “Implicit
> > Conversions.” are allowed
> > +}
> > diff --git a/tests/glslparsertest/glsl2/constructor-34.vert
> > b/tests/glslparsertest/glsl2/constructor-34.vert
> > new file mode 100644
> > index 0000000..46f1c27
> > --- /dev/null
> > +++ b/tests/glslparsertest/glsl2/constructor-34.vert
> > @@ -0,0 +1,15 @@
> > +// [config]
> > +// expect_result: pass
> > +// glsl_version: 1.20
> > +// [end config]
> > +
> > +/* PASS */
> > +#version 120
> > +struct s1 { float f; };
> > +
> > +struct s2 { s1 g; };
> > +
> > +void main()
> > +{
> > +    s2 t = s2(s1(1)); // an implicit conversion should happen here
> > +}
> 
-- 

Andres Gomez
Computer Science Engineer
mailto:agomez at igalia.com
http://blogs.igalia.com/agomez/category/igaliacom/
IGALIA, S.L. http://www.igalia.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20160811/d6ac3af2/attachment-0001.sig>


More information about the Piglit mailing list