diff --git a/buildroot/bin/ci_src_filter b/buildroot/bin/ci_src_filter
new file mode 100755
index 00000000000..928f492e69f
--- /dev/null
+++ b/buildroot/bin/ci_src_filter
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+# exit on first failure
+set -e
+
+SED=$(which gsed sed | head -n1)
+FN="platformio.ini"
+
+if [[ $1 == "-n" ]]; then
+  "${SED}" -i "s/default_src_filter/org_src_filter/" $FN
+  "${SED}" -i "/org_src_filter/ s/^/default_src_filter = +<src\/*>\n/" $FN
+else
+  git checkout $FN 2>/dev/null
+fi
diff --git a/buildroot/tests/mega2560 b/buildroot/tests/mega2560
index fc24cf21250..6871ce4a0ce 100755
--- a/buildroot/tests/mega2560
+++ b/buildroot/tests/mega2560
@@ -12,6 +12,14 @@ set -e
 #restore_configs
 #exec_test $1 $2 "Default Configuration" "$3"
 
+#
+# Build with no source filers
+#
+restore_configs
+ci_src_filter -n
+exec_test $1 $2 "Default Configuration | no source filtering" "$3"
+ci_src_filter -y
+
 #
 # Test a probeless build of AUTO_BED_LEVELING_UBL, with lots of extruders
 #