skia2/tests/sksl/errors
John Stiles f94348fdd5 Detect and report numeric overflows in the SkSL parser.
Previously, some types of overflow were detected, but most would assert
or silently generate invalid code. Now, the parser will properly report
an error if it encounters any integer that exceeds UINT_MAX or any float
that exceeds FLT_MAX.

This fixes test OverflowUintLiteral.sksl. Added a test for floats as
well, OverflowFloatLiteral.sksl.

OverflowIntLiteral.sksl does not fail yet, because its values are larger
than INT_MAX, not UINT_MAX. These are legal from the perspective of the
parser. This must be caught later at IR generation time.

Change-Id: Ia5a904d01427cdc9f2ab5f4174154418737835e6
Bug: skia:10932
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/347176
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-12-28 16:39:19 +00:00
..
golden Detect and report numeric overflows in the SkSL parser. 2020-12-28 16:39:19 +00:00
ArgumentCountMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ArgumentMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ArgumentModifiers.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ArrayIndexOutOfRange.sksl Check array bounds when a constant array index is used. 2020-12-07 18:17:30 +00:00
ArrayReturnTypes.sksl Remove multi-dimensional array support from the parser. 2020-12-03 20:24:38 +00:00
ArrayTooManyDimensions.sksl Disallow multi-dimensional arrays in SkSL. 2020-12-03 16:28:19 +00:00
ArrayUnspecifiedDimensions.sksl SkSL: Remove "null" as a type and literal value. 2020-12-23 16:21:57 +00:00
AssignmentTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BadCaps.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BadFieldAccess.sksl Add unit tests for assignment and invalid field access. 2020-09-25 21:42:22 +00:00
BadIndex.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BadModifiers.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BinaryInvalidType.sksl fixed SkSL crash when performing binary operations on invalid types 2020-12-11 17:29:10 +00:00
BinaryTypeCoercion.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BinaryTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
BitShiftFloat.sksl SkSL: Only allow bitwise ops on integral types 2020-09-17 18:12:34 +00:00
BitShiftFloatMatrix.sksl SkSL: Only allow bitwise ops on integral types 2020-09-17 18:12:34 +00:00
BitShiftFloatVector.sksl SkSL: Only allow bitwise ops on integral types 2020-09-17 18:12:34 +00:00
BooleanArithmetic.sksl Disallow unary minus on boolean vectors. 2020-11-25 17:02:27 +00:00
BreakOutsideLoop.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
CallNonFunction.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
CanExitWithoutReturningValue.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ConstructorArgumentCount.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ConstructorTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ContinueOutsideLoop.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
Discard.rte Add .rte -> .skvm unit test framework 2020-12-22 17:59:42 +00:00
DivideByZero.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
DoTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
DuplicateFunction.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
DuplicateOutput.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
DuplicateSymbol.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
EnumValueMustBeConstInt.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ErrorsInDeadCode.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
FieldAfterRuntimeArray.sksl Disallow unsized array dimensions on size fields past the frontmost. 2020-11-17 16:44:13 +00:00
FloatRemainder.sksl SkSL: Disallow '%' and '%=' on non-integral types 2020-12-10 22:19:49 +00:00
ForTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
GenericArgumentMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
GrBadIn.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrMainParameterWrongType.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrMainTooManyParameters.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrNoFragmentProcessorConstruction.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrNoFragmentProcessorExpressions.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrNoFragmentProcessorLocals.fp Remove sk_OutColor built-in variable. 2020-12-15 17:03:12 +00:00
GrNoFragmentProcessorParams.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrNoFragmentProcessorReturn.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
GrRecursion.fp Remove sk_OutColor usage from .fp unit tests. 2020-12-15 16:06:13 +00:00
IfTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
InterfaceBlockScope.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
InterfaceBlockStorageModifiers.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
InterfaceBlockWithNoMembers.sksl Migrate CrbugOssfuzz21688 to a golden-output test. 2020-11-04 22:34:13 +00:00
InvalidAssignment.sksl Disallow assignment to unfoldable ternaries in SkSL. 2020-09-25 21:26:40 +00:00
InvalidOutParams.sksl Add new unit tests for SkSL. 2020-09-23 20:30:47 +00:00
InvalidUnary.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
InVarWithInitializerExpression.sksl Add unit test for fuzzer-detected error with in vars. 2020-11-09 18:14:56 +00:00
ModifiersInStruct.sksl Reject struct vardecls with modifiers. 2020-10-09 22:34:23 +00:00
OpaqueTypeAssignment.sksl Enforce additional restrictions on opaque types. 2020-12-22 22:24:24 +00:00
OpaqueTypeConstruction.sksl Enforce additional restrictions on opaque types. 2020-12-22 22:24:24 +00:00
OpaqueTypeInArray.sksl Disallow global variables containing arrays of opaque types. 2020-12-01 20:04:14 +00:00
OpaqueTypeInInterfaceBlock.sksl Disallow opaque types in structs and interface blocks. 2020-11-17 15:25:43 +00:00
OpaqueTypeInStruct.sksl Disallow opaque types in structs and interface blocks. 2020-11-17 15:25:43 +00:00
OpenArray.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
Ossfuzz26700.sksl Fix unknown-identifier issue discovered by fuzzer. 2020-10-30 19:11:31 +00:00
Ossfuzz26759.sksl Add unit test for error discovered by fuzzer. 2020-10-30 18:18:31 +00:00
Ossfuzz27650.sksl Fix fuzzer crash when casting between int and float. 2020-11-20 14:07:03 +00:00
Ossfuzz27663.sksl Fix double-negation of constant-value construcors. 2020-11-23 17:02:21 +00:00
OverflowFloatLiteral.sksl Detect and report numeric overflows in the SkSL parser. 2020-12-28 16:39:19 +00:00
OverflowIntLiteral.sksl Add unit tests for overflowing int and uint literal limits. 2020-11-11 16:11:15 +00:00
OverflowParamArraySize.sksl Detect and report numeric overflows in the SkSL parser. 2020-12-28 16:39:19 +00:00
OverflowUintLiteral.sksl Add unit tests for overflowing int and uint literal limits. 2020-11-11 16:11:15 +00:00
PrivateTypes.sksl SkSL: Remove all $gsamplerFoo types 2020-12-23 16:57:07 +00:00
RedeclareBasicType.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareEnum.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareSamplerType.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareStruct.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareStructTypeWithName.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareUserType.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
RedeclareVariable.sksl Disallow identifier names that overlap existing types. 2020-12-04 16:52:01 +00:00
ReturnDifferentType.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ReturnFromVoid.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ReturnMissingValue.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
ReturnTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SelfReferentialInitializerExpression.sksl Add unit test for self-referential initializer expressions. 2020-10-23 14:36:05 +00:00
SpuriousFloat.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
StaticIfTest.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
StaticSwitchConditionalBreak.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
StaticSwitchTest.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
StructTooDeeplyNested.sksl Limit struct nesting depth to a maximum of eight levels. 2020-11-10 16:58:37 +00:00
SwitchDuplicateCase.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwitchTypes.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwizzleConstantOutput.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwizzleMatrix.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwizzleOnlyLiterals.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwizzleOutOfBounds.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
SwizzleTooManyComponents.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
TernaryMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UndeclaredFunction.sksl Add test cases to function-prototype golden outputs. 2020-11-02 17:17:23 +00:00
UndefinedFunction.sksl Add test cases to function-prototype golden outputs. 2020-11-02 17:17:23 +00:00
UndefinedSymbol.sksl Support testing error cases in our SkSL unit test goldens. 2020-09-14 21:23:07 +00:00
Unreachable.sksl Revert "Fix incorrect 'unreachable code' error in SkSL" 2020-12-16 18:21:17 +00:00
UnsupportedGLSLIdentifiers.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UnsupportedTypeSampler.rte Add .rte -> .skvm unit test framework 2020-12-22 17:59:42 +00:00
UnsupportedTypeTexture.rte Add .rte -> .skvm unit test framework 2020-12-22 17:59:42 +00:00
UseWithoutInitializeArrayIndex.sksl Disallow multi-dimensional arrays in SkSL. 2020-12-03 16:28:19 +00:00
UseWithoutInitializeBinaryExpr.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UseWithoutInitializeDeadIf.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UseWithoutInitializeDeadSwitch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UseWithoutInitializeReturnValue.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UseWithoutInitializeVarDecl.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
UsingInvalidValue.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00
WhileTypeMismatch.sksl Migrate SkSL error tests to golden outputs. 2020-09-18 13:46:17 +00:00