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 <[email protected]> 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:[email protected] http://blogs.igalia.com/agomez/category/igaliacom/ IGALIA, S.L. http://www.igalia.com
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
