@@ -347,6 +347,47 @@ void _shaderTests() {
347347 ),
348348 isNotNull);
349349 });
350+
351+ test ('RuntimeEffect' , () {
352+ // TODO(hterkelsen): Remove this check when local CanvasKit is default.
353+ if (isRuntimeEffectAvailable) {
354+ const String kSkSlProgram = r'''
355+ half4 main(vec2 fragCoord) {
356+ return vec4(1.0, 0.0, 0.0, 1.0);
357+ }
358+ ''' ;
359+
360+ final SkRuntimeEffect ? effect = MakeRuntimeEffect (kSkSlProgram);
361+ expect (effect, isNotNull);
362+
363+ const String kInvalidSkSlProgram = '' ;
364+
365+ // Invalid SkSL returns null.
366+ final SkRuntimeEffect ? invalidEffect = MakeRuntimeEffect (kInvalidSkSlProgram);
367+ expect (invalidEffect, isNull);
368+
369+ final SkShader ? shader = effect! .makeShader (< double > []);
370+ expect (shader, isNotNull);
371+
372+ // mismatched uniforms returns null.
373+ final SkShader ? invalidShader = effect.makeShader (< double > [1 ]);
374+
375+ expect (invalidShader, isNull);
376+
377+ const String kSkSlProgramWithUniforms = r'''
378+ uniform vec4 u_color;
379+
380+ half4 main(vec2 fragCoord) {
381+ return u_color;
382+ }
383+ ''' ;
384+
385+ final SkShader ? shaderWithUniform = MakeRuntimeEffect (kSkSlProgramWithUniforms)
386+ ! .makeShader (< double > [1.0 , 0.0 , 0.0 , 1.0 ]);
387+
388+ expect (shaderWithUniform, isNotNull);
389+ }
390+ });
350391}
351392
352393SkShader _makeTestShader () {
@@ -1707,46 +1748,4 @@ void _paragraphTests() {
17071748 canvasKit.TextHeightBehavior .DisableAll ,
17081749 );
17091750 });
1710-
1711- test ('RuntimeEffect' , () {
1712- // Is supported..
1713- expect (isRuntimeEffectAvailable, isTrue);
1714-
1715- const String kSkSlProgram = r'''
1716- half4 main(vec2 fragCoord) {
1717- return vec4(1.0, 0.0, 0.0, 1.0);
1718- }
1719- ''' ;
1720-
1721- final SkRuntimeEffect ? effect = MakeRuntimeEffect (kSkSlProgram);
1722- expect (effect, isNotNull);
1723-
1724- const String kInvalidSkSlProgram = '' ;
1725-
1726- // Invalid SkSL returns null.
1727- final SkRuntimeEffect ? invalidEffect = MakeRuntimeEffect (kInvalidSkSlProgram);
1728- expect (invalidEffect, isNull);
1729-
1730- final SkShader ? shader = effect! .makeShader (< double > []);
1731- expect (shader, isNotNull);
1732-
1733- // mismatched uniforms returns null.
1734- final SkShader ? invalidShader = effect.makeShader (< double > [1 ]);
1735-
1736- expect (invalidShader, isNull);
1737-
1738- const String kSkSlProgramWithUniforms = r'''
1739- uniform vec4 u_color;
1740-
1741- half4 main(vec2 fragCoord) {
1742- return u_color;
1743- }
1744- ''' ;
1745-
1746- final SkShader ? shaderWithUniform = MakeRuntimeEffect (kSkSlProgramWithUniforms)
1747- ! .makeShader (< double > [1.0 , 0.0 , 0.0 , 1.0 ]);
1748-
1749- expect (shaderWithUniform, isNotNull);
1750- // TODO(hterkelsen): https://github.com/flutter/flutter/issues/115327
1751- }, skip: true );
17521751}
0 commit comments