[poky,master,2/2] test_buildhistory: Add test to verify that LICENSE is added

Message ID 20220209080906.20759-2-sanakazisk19@gmail.com
State New
Headers show
Series [poky,master,1/2] buildhistory.bbclass: Enable exporting more recipe and package data | expand

Commit Message

Sana Kazi Feb. 9, 2022, 8:09 a.m. UTC
Added test case which uses BUILDHISTORY_EXPORT_RECIPE_VARIABLES
and BUILDHISTORY_EXPORT_PACKAGE_VARIABLES to add LICENSE for glibc as a
sample recipe to buildhistory and the test verifies that expected
license value is written in latest file.

Signed-off-by: Sana Kazi <Sana.Kazi@kpit.com>
Signed-off-by: Sana Kazi <sanakazisk19@gmail.com>
---
 .../recipes-test/glibc/glibc_%.bbappend       |  2 +
 .../oeqa/selftest/cases/test_buildhistory.py  | 50 +++++++++++++++++++
 2 files changed, 52 insertions(+)
 create mode 100644 meta-selftest/recipes-test/glibc/glibc_%.bbappend
 create mode 100644 meta/lib/oeqa/selftest/cases/test_buildhistory.py

Patch

diff --git a/meta-selftest/recipes-test/glibc/glibc_%.bbappend b/meta-selftest/recipes-test/glibc/glibc_%.bbappend
new file mode 100644
index 0000000000..205720982c
--- /dev/null
+++ b/meta-selftest/recipes-test/glibc/glibc_%.bbappend
@@ -0,0 +1,2 @@ 
+# This bbappend is used to alter the recipe using the test_recipe.inc file created by tests.
+include test_recipe.inc
diff --git a/meta/lib/oeqa/selftest/cases/test_buildhistory.py b/meta/lib/oeqa/selftest/cases/test_buildhistory.py
new file mode 100644
index 0000000000..5b0ce4be24
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/test_buildhistory.py
@@ -0,0 +1,50 @@ 
+import unittest
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.selftest.cases.buildhistory import BuildhistoryBase
+from oeqa.utils.commands import bitbake, get_bb_var
+
+class BuildhistoryTests(BuildhistoryBase):
+
+    def test_write_license_to_latest_recipe(self):
+        target = 'glibc'
+        recipe_variables = []
+        self.write_recipeinc(target, 'BUILDHISTORY_EXPORT_RECIPE_VARIABLES += \"LICENSE\"')
+        self.run_buildhistory_operation(target)
+        add_buildhistory_config = 'PACKAGE_CLASSES = \"package_ipk\"'
+        self.append_config(add_buildhistory_config)
+        self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.")
+        pkghistdir = get_bb_var('BUILDHISTORY_DIR')
+        PACKAGE_ARCH = get_bb_var('MULTIMACH_TARGET_SYS')
+        bitbake('-c package_write_ipk -f %s' % target)
+        infofile = "{}/packages/{}/{}/latest".format(pkghistdir, PACKAGE_ARCH, target)
+        expected = "LICENSE = GPLv2 & LGPLv2.1"
+        result = False
+        with open(infofile, "r") as f:
+            for line in f:
+                if line.strip() == expected:
+                    result = True
+                    break
+        if not result:
+            raise AssertionError("Expected License not found")
+
+    def test_write_license_to_latest_package(self):
+        target = 'glibc'
+        recipe_variables = []
+        self.write_recipeinc(target, 'BUILDHISTORY_EXPORT_PACKAGE_VARIABLES += \"LICENSE\"')
+        self.run_buildhistory_operation(target)
+        add_buildhistory_config = 'PACKAGE_CLASSES = \"package_ipk\"'
+        self.append_config(add_buildhistory_config)
+        self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.")
+        bitbake('-c package_write_ipk -f %s' % target)
+        pkghistdir = get_bb_var('BUILDHISTORY_DIR')
+        PACKAGE_ARCH = get_bb_var('MULTIMACH_TARGET_SYS')
+        infofile = "{}/packages/{}/{}/{}-dbg/latest".format(pkghistdir, PACKAGE_ARCH, target, target)
+        expected = "LICENSE = GPLv2 & LGPLv2.1"
+        result = False
+        with open(infofile, "r") as f:
+            for line in f:
+                if line.strip() == expected:
+                    result = True
+                    break
+        if not result:
+            raise AssertionError("Expected License not found")