skia2/tests/sksl/runtime_errors
John Stiles 6a10556775 Reject equality operators on opaque types.
ES2 disallows opaque types in expressions (other than passing them to
their associated builtin functions). We now enforce a similar
restriction on SkSL opaque types.

While I was there, I added several other cases to the invalid-shader
test to make sure that they were all caught.

I needed to reorder some code to make sure that ternary expression error
messages didn't change. Ternary expressions now check for opaque types
before checking that the left-side type and right-side type are
compatible. This is because we check for "compatible" ternary
expressions by checking if `leftSide == rightSide` would be accepted.
`shader1 == shader2` used to be considered a valid expression for the
purposes of this test, but not anymore.

Change-Id: I62a0a31feca9dadd428da7d1b48d7693c4b6434d
Bug: skia:13026
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516802
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-07 15:19:46 +00:00
..
DerivativesES2.skvm Allow derivatives in Runtime Effects when ES3 restrictions are off. 2021-08-13 16:45:17 +00:00
ES3Types.skvm Replace illegal DSLTypes with Poison types. 2021-10-06 00:12:07 +00:00
FirstClassArrays.skvm Update comments in FirstClassArrays test. 2022-01-06 18:53:34 +00:00
IllegalArrayOps.skvm Runtime Effects: Disallow all operators on arrays or arrays-in-structs 2021-02-17 18:05:04 +00:00
IllegalIndexing.skvm Add SkSL error tests for runtime_errors directory. 2022-02-10 14:24:39 +00:00
IllegalOperators.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
IllegalPrecisionQualifiers.skvm Honor lowp/mediump/highp precision qualifiers in IRGenerator. 2021-08-04 21:29:10 +00:00
IllegalRecursionComplex.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalRecursionMutual.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalRecursionSimple.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalShaderSampling.skvm Fix fuzzer-discovered error with child calls. 2021-11-17 15:44:21 +00:00
IllegalShaderUse.skvm Reject equality operators on opaque types. 2022-03-07 15:19:46 +00:00
IllegalStatements.skvm Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
InvalidBlendMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
InvalidColorFilterFeatures.skvm Remove layout(marker) from runtime effect SkSL 2021-04-19 18:48:45 +00:00
InvalidColorFilterMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
InvalidShaderMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
LoopConditionErrors.skvm Fix line numbers of several DSLParser errors 2021-09-03 22:12:22 +00:00
LoopExpressionErrors.skvm Fix line numbers of several DSLParser errors 2021-09-03 22:12:22 +00:00
LoopInitializerErrors.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
LoopStructureErrors.skvm Increase GetLoopUnrollInfo loop-count limit to 100,000. 2021-09-07 19:28:08 +00:00
Ossfuzz36655.skvm Improve parser behavior with invalid statements inside a Block. 2022-02-10 14:22:38 +00:00
Ossfuzz38131.skvm Fixed illegal interface block reporting 2021-09-07 20:18:00 +00:00
Ossfuzz45279.skvm Reject operators =, ==, and != on void types. 2022-03-07 14:10:29 +00:00
ProgramTooLarge_BlocklessLoops.skvm Fix size calculation of blockless for-loops. 2021-09-15 14:29:45 +00:00
ProgramTooLarge_Extreme.skvm Improve overflow checks in CheckProgramUnrolledSize. 2021-09-15 16:42:45 +00:00
ProgramTooLarge_FlatLoop.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_Functions.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_NestedLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_SplitLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_StackDepth.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
ReservedNameISampler2D.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSampler1D.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSampler2D.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSampler2DRect.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSampler3D.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSampler.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSamplerExternalOES.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSubpassInput.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameSubpassInputMS.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
ReservedNameTexture2D.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
TypeAliases.skvm Made SkSL type aliases into first-class objects 2022-01-05 16:20:19 +00:00
UnsupportedExtension.skvm Reject #extension in runtime-effect mode 2022-01-04 16:12:50 +00:00
UnsupportedTypeFragmentProcessor.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
UnsupportedTypeSampler.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00
UnsupportedTypeTexture.skvm Mark private types as invalid in the public symbol table. 2021-10-13 20:41:09 +00:00