Skip to contentSkip to conversation

oeqa/bbtests: Fix race over DL_DIR and SSTATE_DIR

PATCH New Richard Purdie 1 participant 1 message Jul 7, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 oeqa/bbtests: Fix race over DL_DIR and SSTATE_DIR

Running "-c cleanall" on shared DL_DIR and SSTATE_DIR is antisocial. It leads to hard to debug races where we wonder why files disappear and reappear from those directories.

Fix this by using a specific set of directories for these tests. This avoids a long standing bug on the autobuilder where aspell and man sources would disappear.

[YOCTO #6276]

meta/lib/oeqa/selftest/bbtests.py +6 -0
index 9bd34ee..ffe0ea5 100644
@@ -98,6 +98,8 @@ class BitbakeTests(oeSelfTest):
     def test_invalid_recipe_src_uri(self):
         data = 'SRC_URI = "file://invalid"'
         self.write_recipeinc('man', data)
+        self.write_config("DL_DIR = \"${TOPDIR}/download-selftest\"")
+        self.write_config("SSTATE_DIR = \"${TOPDIR}/download-selftest\"")
         bitbake('-ccleanall man')
         result = bitbake('-c fetch man', ignore_status=True)
         bitbake('-ccleanall man')
@@ -108,6 +110,8 @@ class BitbakeTests(oeSelfTest):
 
     @testcase(171)
     def test_rename_downloaded_file(self):
+        self.write_config("DL_DIR = \"${TOPDIR}/download-selftest\"")
+        self.write_config("SSTATE_DIR = \"${TOPDIR}/download-selftest\"")
         data = 'SRC_URI_append = ";downloadfilename=test-aspell.tar.gz"'
         self.write_recipeinc('aspell', data)
         bitbake('-ccleanall aspell')
@@ -170,6 +174,8 @@ class BitbakeTests(oeSelfTest):
 
     @testcase(1035)
     def test_continue(self):
+        self.write_config("DL_DIR = \"${TOPDIR}/download-selftest\"")
+        self.write_config("SSTATE_DIR = \"${TOPDIR}/download-selftest\"")
         self.write_recipeinc('man',"\ndo_fail_task () {\nexit 1 \n}\n\naddtask do_fail_task before do_fetch\n" )
         runCmd('bitbake -c cleanall man xcursor-transparent-theme')
         result = runCmd('bitbake man xcursor-transparent-theme -k', ignore_status=True)