diff mbox series

[1/4] patchtest: apply patch in repo root

Message ID 20250915090208.2007216-1-skandigraun@gmail.com
State New
Headers show
Series [1/4] patchtest: apply patch in repo root | expand

Commit Message

Gyorgy Sarvari Sept. 15, 2025, 9:02 a.m. UTC
Patchtest tries to apply the received patch on the repository, without
specifying the directory, which means that the CWD is used. In case the
patch modifies a content in a different folder (e.g. the script is running
in ./meta, but the patch modifies ./meta-selftest), the patch will be skipped,
but git still returns 0, instead of complaining.

To avoid such false positives, specify the working directory for applying the
patch - the top of the repodir.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 meta/lib/patchtest/repo.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/meta/lib/patchtest/repo.py b/meta/lib/patchtest/repo.py
index 8ec8f68a0b..2cdd6736e4 100644
--- a/meta/lib/patchtest/repo.py
+++ b/meta/lib/patchtest/repo.py
@@ -52,7 +52,7 @@  class PatchTestRepo(object):
         self._patchcanbemerged = True
         try:
             # Make sure to get the absolute path of the file
-            self.repo.git.execute(['git', 'apply', '--check', os.path.abspath(self.patch.path)], with_exceptions=True)
+            self.repo.git.execute(['git', '-C', self.repodir, 'apply', '--check', os.path.abspath(self.patch.path)], with_exceptions=True)
         except git.exc.GitCommandError as ce:
             self._patchcanbemerged = False
 
@@ -76,7 +76,7 @@  class PatchTestRepo(object):
 
     def merge(self):
         if self._patchcanbemerged:
-            self.repo.git.execute(['git', 'am', '--keep-cr', os.path.abspath(self.patch.path)])
+            self.repo.git.execute(['git', '-C', self.repodir, 'am', '--keep-cr', os.path.abspath(self.patch.path)])
             self._patchmerged = True
 
     def clean(self):