diff --git a/meta-selftest/recipes-test/devtool/devtool-test-multi-destsuffix_git.bb b/meta-selftest/recipes-test/devtool/devtool-test-multi-destsuffix_git.bb
new file mode 100644
index 0000000000..0702b13f3a
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-multi-destsuffix_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Test recipe for multiple git SRC_URI entries with nested destsuffix values"
+LICENSE = "CLOSED"
+
+# Six git entries all nested inside S (${UNPACKDIR}). This exercises the
+# devtool code path that must convert every nested git repo to a standalone
+# clone: the initial fetch uses a shared clone whose alternates point into
+# downloads/git2/; git repack copies those objects locally so the workspace
+# survives 'bitbake -c cleanall'.
+SRC_URI = "git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level1_a;destsuffix=level1_a \
+    git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level1_b;destsuffix=level1_b \
+    git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level2_a;destsuffix=level1/level2_a \
+    git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level2_b;destsuffix=level1/level2_b \
+    git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level3_a;destsuffix=level1/level2/level3_a \
+    git://git.yoctoproject.org/dbus-wait;nobranch=1;protocol=https;name=level3_b;destsuffix=level1/level2/level3_b \
+"
+
+SRCREV_level1_a = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_level1_b = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_level2_a = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_level2_b = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_level3_a = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_level3_b = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
+SRCREV_FORMAT = "level1_a_level1_b_level2_a_level2_b_level3_a_level3_b"
+
+S = "${UNPACKDIR}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_install[noexec] = "1"
