]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
oeqa/selftest/recipetool: fix metadata corruption on meta layer
authorJulien Stephan <jstephan@baylibre.com>
Mon, 11 Dec 2023 17:01:38 +0000 (18:01 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 13 Dec 2023 11:34:07 +0000 (11:34 +0000)
[YOCTO #15314]

test_recipetool_appendsrcfile_update_recipe_basic is using base-files as
test recipe but modifies it directly which can corrupt metadata for other
tests relying on this recipe.

So use mtd-utils-selftest as test recipe from meta-selftest to avoid
this kind of issues

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
meta/lib/oeqa/selftest/cases/recipetool.py

index e0e3dff484be46519fff5b5b5409c67c21bd1eb9..a19439d88e354d9af602811978dac38112f28481 100644 (file)
@@ -1267,23 +1267,16 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
         self.test_recipetool_appendsrcfile_existing_in_src_uri_diff_params(machine='mymachine')
 
     def test_recipetool_appendsrcfile_update_recipe_basic(self):
-        testrecipe = "base-files"
+        testrecipe = "mtd-utils-selftest"
         recipefile = get_bb_var('FILE', testrecipe)
-        result = runCmd('bitbake-layers show-layers')
-        layerrecipe = None
-        for line in result.output.splitlines()[3:]:
-            layer = line.split()[1]
-            if layer in recipefile:
-                layerrecipe = layer
-                break
-        self.assertTrue(layerrecipe, 'Unable to find the layer containing %s' % testrecipe)
-        cmd = 'recipetool appendsrcfile -u %s %s %s' % (layerrecipe, testrecipe, self.testfile)
+        self.assertIn('meta-selftest', recipefile, 'This test expect %s recipe to be in meta-selftest')
+        cmd = 'recipetool appendsrcfile -W -u meta-selftest %s %s' % (testrecipe, self.testfile)
         result = runCmd(cmd)
         self.assertNotIn('Traceback', result.output)
         self.add_command_to_tearDown('cd %s; rm -f %s/%s; git checkout .' % (os.path.dirname(recipefile), testrecipe, os.path.basename(self.testfile)))
 
         expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)),
-                           ('??', '.*/%s/%s/%s$' % (testrecipe, testrecipe, os.path.basename(self.testfile)))]
+                           ('??', '.*/%s/%s$' % (testrecipe, os.path.basename(self.testfile)))]
         self._check_repo_status(os.path.dirname(recipefile), expected_status)
         result = runCmd('git diff %s' % os.path.basename(recipefile), cwd=os.path.dirname(recipefile))
         removelines = []