b4 is a tool for handling email-based patch workflows. It is being
added to help modernize the patchtest tooling, but due to the state of
meta-patchtest and the possibility that others may find it useful, add
it to oe-core instead of that layer.

Signed-off-by: Trevor Gamblin <[email protected]>
---
 meta/conf/distro/include/maintainers.inc      |  1 +
 .../distro/include/ptest-packagelists.inc     |  1 +
 meta/recipes-devtools/b4/b4_0.12.2.bb         | 35 +++++++++++++++++++
 ...skip-tests-requiring-git-filter-repo.patch | 30 ++++++++++++++++
 meta/recipes-devtools/b4/files/run-ptest      |  3 ++
 5 files changed, 70 insertions(+)
 create mode 100644 meta/recipes-devtools/b4/b4_0.12.2.bb
 create mode 100644 
meta/recipes-devtools/b4/files/0001-test_ez-skip-tests-requiring-git-filter-repo.patch
 create mode 100644 meta/recipes-devtools/b4/files/run-ptest

diff --git a/meta/conf/distro/include/maintainers.inc 
b/meta/conf/distro/include/maintainers.inc
index e99fbe4aef..72145a0a38 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -52,6 +52,7 @@ RECIPE_MAINTAINER:pn-autoconf = "Robert Yang 
<[email protected]>"
 RECIPE_MAINTAINER:pn-autoconf-archive = "Robert Yang 
<[email protected]>"
 RECIPE_MAINTAINER:pn-automake = "Robert Yang <[email protected]>"
 RECIPE_MAINTAINER:pn-avahi = "Yi Zhao <[email protected]>"
+RECIPE_MAINTAINER:pn-b4 = "Trevor Gamblin <[email protected]>"
 RECIPE_MAINTAINER:pn-babeltrace = "Alexander Kanavin <[email protected]>"
 RECIPE_MAINTAINER:pn-babeltrace2 = "Alexander Kanavin <[email protected]>"
 RECIPE_MAINTAINER:pn-baremetal-helloworld = "Alejandro Hernandez 
<[email protected]>"
diff --git a/meta/conf/distro/include/ptest-packagelists.inc 
b/meta/conf/distro/include/ptest-packagelists.inc
index da9153b998..2c9fb3433d 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -7,6 +7,7 @@ PTESTS_FAST = "\
     acl \
     apr-util \
     attr \
+    b4 \
     babeltrace \
     babeltrace2 \
     bc \
diff --git a/meta/recipes-devtools/b4/b4_0.12.2.bb 
b/meta/recipes-devtools/b4/b4_0.12.2.bb
new file mode 100644
index 0000000000..f222a8b2e5
--- /dev/null
+++ b/meta/recipes-devtools/b4/b4_0.12.2.bb
@@ -0,0 +1,35 @@
+SUMMARY = "B4 workflow tools"
+DESCRIPTION = "A tool to work with public-inbox and patch archives"
+HOMEPAGE = "https://git.kernel.org/pub/scm/utils/b4/b4.git/";
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI[sha256sum] = 
"b6f4afd78bf78a28055b389f0909792b1c7805fb3557f5d71efbda3682aabe6e"
+
+inherit python_setuptools_build_meta ptest
+
+SRC_URI += 
"git://git.kernel.org/pub/scm/utils/b4/b4.git;branch=stable-0.12.y;protocol=https
 \
+            file://run-ptest \
+            file://0001-test_ez-skip-tests-requiring-git-filter-repo.patch \
+"
+
+SRCREV = "0529d7ae380c46f8006892d8fffb563326e2d131"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-mailbox \
+        ${PYTHON_PN}-requests \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        git \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-unittest-automake-output \
+"
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+      install -d ${D}${PTEST_PATH}/tests
+      cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git 
a/meta/recipes-devtools/b4/files/0001-test_ez-skip-tests-requiring-git-filter-repo.patch
 
b/meta/recipes-devtools/b4/files/0001-test_ez-skip-tests-requiring-git-filter-repo.patch
new file mode 100644
index 0000000000..579c31d090
--- /dev/null
+++ 
b/meta/recipes-devtools/b4/files/0001-test_ez-skip-tests-requiring-git-filter-repo.patch
@@ -0,0 +1,30 @@
+From 5b77018e0d5648f519345a682752df91d99a6a09 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <[email protected]>
+Date: Tue, 23 May 2023 11:09:07 -0400
+Subject: [PATCH] test_ez: skip tests requiring git-filter-repo
+
+git-filter-repo isn't available and is difficult to properly add as a
+recipe, so skip b4 ptests that require it to be installed.
+
+Upstream-Status: Inappropriate (oe-specific)
+
+Signed-off-by: Trevor Gamblin <[email protected]>
+---
+ tests/test_ez.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/test_ez.py b/tests/test_ez.py
+index 1b02e7b..059c84c 100644
+--- a/tests/test_ez.py
++++ b/tests/test_ez.py
+@@ -32,6 +32,7 @@ def prepdir(gitdir):
+      ['log', '--format=%ae%n%s%n%b---', 'HEAD~4..'], 
'trailers-thread-with-followups-and-tripledash',
+      None),
+ ])
[email protected](reason="no git-filter-repo")
+ def test_trailers(sampledir, prepdir, mboxf, bundlef, rep, trargs, 
compareargs, compareout, b4cfg):
+     if b4cfg:
+         b4.MAIN_CONFIG.update(b4cfg)
+-- 
+2.40.1
+
diff --git a/meta/recipes-devtools/b4/files/run-ptest 
b/meta/recipes-devtools/b4/files/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta/recipes-devtools/b4/files/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 
's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if 
($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || 
$NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" 
|| $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print 
$0}else{print}}'
-- 
2.40.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#181652): 
https://lists.openembedded.org/g/openembedded-core/message/181652
Mute This Topic: https://lists.openembedded.org/mt/99091467/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to