poky: subtree update:a015ed7704..797916f93a

Adrian Bunk (4):
      poky-tiny.conf: Remove the removed irda feature from a comment
      musl: Add TEMP_FAILURE_RETRY from glibc
      systemd: Disable idn properly for musl instead of NI_IDN workarounds
      ofono: upgrade 1.25 -> 1.29

Alexander Kanavin (2):
      packagegroup-cross-canadian: repackage when TUNE_ARCH changes
      qemux86: use a Core 2 Duo CPU instead of the original circa-1993 Pentium

Fabio Berton (1):
      mesa: Convert recipe to use meson build system

Haiqing Bai (1):
      sysstat: Add PACKAGECONFIG[cron] for '--enable-install-cron' option

Khem Raj (2):
      mmc-utils: Fix build with clang
      epiphany: Do not bypass initialization of variable with __attribute__((cleanup))

Liwei Song (1):
      mdadm: install the systemd service through Makefile

Marco Felsch (1):
      mesa: fix imx gallium driver PACKAGECONFIG option

Mark Hatle (1):
      bitbake: gitsm: Fix a bug where the wrong path was used for the submodule init

Martin Jansa (2):
      grub-efi-cfg, systemd-boot-cfg: use MACHINE_ARCH
      tcmode-default.inc: use the same TUNE_PKGARCH variable as PN set in go-cross

Ming Liu (2):
      kernel.bbclass: adjust a condition checking
      dhcp: fix a NSUPDATE compiling issue

Richard Purdie (2):
      gettext/flex/m4/bzip2/gzip/parted/slang/attr: Add make to -ptest packages
      apr/apr-util: Add ptest dependency on libgcc

Ross Burton (1):
      glib-2.0: add missing libgcc dependency to glib-2.0-ptest

Tim Orling (1):
      libtest-needs-perl: upgrade 0.002005 -> 0.002006

Zang Ruochen (1):
      libinput: Upgrade 1.13.1 -> 1.13.2

Change-Id: Ic565210b5ca776c937445934910f602f424ecce1
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 97656df..6bdf041 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -964,6 +964,33 @@
         self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/googletest/config')), msg='Missing submodule config "third_party/googletest/config"')
         self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/HdrHistogram_c/config')), msg='Missing submodule config "third_party/HdrHistogram_c/config"')
 
+    def test_git_submodule_iotedge(self):
+        """ Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
+
+        # This repository also has submodules where the module (name), path and url do not align
+        url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699"
+        fetcher = bb.fetch.Fetch([url], self.d)
+        fetcher.download()
+        # Previous cwd has been deleted
+        os.chdir(os.path.dirname(self.unpackdir))
+        fetcher.unpack(self.unpackdir)
+
+        repo_path = os.path.join(self.tempdir, 'unpacked', 'git')
+
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/ctest/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/testrunner/readme.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/readme.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/ctest/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/testrunner/readme.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/readme.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout')
+        self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout')
+
 class TrustedNetworksTest(FetcherTest):
     def test_trusted_network(self):
         # Ensure trusted_network returns False when the host IS in the list.