diff --git a/tests/SkRuntimeEffectTest.cpp b/tests/SkRuntimeEffectTest.cpp
index 8525e7e..46f4836 100644
--- a/tests/SkRuntimeEffectTest.cpp
+++ b/tests/SkRuntimeEffectTest.cpp
@@ -442,3 +442,23 @@
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SkRuntimeStructNameReuse_GPU, r, ctxInfo) {
     test_RuntimeEffectStructNameReuse(r, ctxInfo.directContext());
 }
+
+DEF_TEST(SkRuntimeColorFilterFlags, r) {
+    {   // Here's a non-trivial filter that doesn't change alpha.
+        auto [effect, err] = SkRuntimeEffect::Make(SkString{
+                "uniform shader input; half4 main() { return sample(input) + half4(1,1,1,0); }"});
+        REPORTER_ASSERT(r, effect && err.isEmpty());
+        sk_sp<SkColorFilter> input = nullptr,
+                            filter = effect->makeColorFilter(SkData::MakeEmpty(), &input, 1);
+        REPORTER_ASSERT(r, filter && filter->isAlphaUnchanged());
+    }
+
+    {  // Here's one that definitely changes alpha.
+        auto [effect, err] = SkRuntimeEffect::Make(SkString{
+                "uniform shader input; half4 main() { return sample(input) + half4(0,0,0,4); }"});
+        REPORTER_ASSERT(r, effect && err.isEmpty());
+        sk_sp<SkColorFilter> input = nullptr,
+                            filter = effect->makeColorFilter(SkData::MakeEmpty(), &input, 1);
+        REPORTER_ASSERT(r, filter && !filter->isAlphaUnchanged());
+    }
+}
