| Message ID | 20260921123123.28135-1-pratik.farkase@est.tech |
|---|---|
| State | New |
| Headers | show |
| Series | [v3] psmisc: add ptest support | expand |
Thank you for your submission. Patchtest identified one or more issues with the patch. Please see the log below for more information: --- Testing patch /home/patchtest/share/mboxes/v3-psmisc-add-ptest-support.patch FAIL: test mbox format: Series has malformed diff lines. Create the series again using git-format-patch and ensure it applies using git am (test_mbox.TestMbox.test_mbox_format) PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence) PASS: test auh changelog truncation notice (test_mbox.TestMbox.test_auh_changelog_truncation_notice) PASS: test author valid (test_mbox.TestMbox.test_author_valid) PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence) PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags) PASS: test max line length (test_metadata.TestMetadata.test_max_line_length) PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade) PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format) PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length) PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list) SKIP: pretest pylint: Python-unidiff parse error (test_python_pylint.PyLint.pretest_pylint) SKIP: pretest src uri left files: Patch cannot be merged (test_metadata.TestMetadata.pretest_src_uri_left_files) SKIP: test CVE check ignore: No modified recipes or older target branch, skipping test (test_metadata.TestMetadata.test_cve_check_ignore) SKIP: test CVE tag format: Parse error Hunk is longer than expected (test_patch.TestPatch.test_cve_tag_format) SKIP: test Signed-off-by presence: Parse error Hunk is longer than expected (test_patch.TestPatch.test_signed_off_by_presence) SKIP: test Upstream-Status presence: Parse error Hunk is longer than expected (test_patch.TestPatch.test_upstream_status_presence_format) SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format) SKIP: test lic files chksum modified not mentioned: No modified recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned) SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence) SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence) SKIP: test pylint: Python-unidiff parse error (test_python_pylint.PyLint.test_pylint) SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head) SKIP: test src uri left files: Patch cannot be merged (test_metadata.TestMetadata.test_src_uri_left_files) SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence) --- Please address the issues identified and submit a new revision of the patch, or alternatively, reply to this email with an explanation of why the patch should be accepted. If you believe these results are due to an error in patchtest, please submit a bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category under 'Yocto Project Subprojects'). For more information on specific failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank you!
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 4012be5f49..f01abc4a57 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -68,6 +68,7 @@ PTESTS_FAST = "\ opkg \ popt \ procps \ + psmisc \ python3-atomicwrites \ python3-attrs \ python3-bcrypt \ diff --git a/meta/recipes-extended/psmisc/psmisc/run-ptest b/meta/recipes-extended/psmisc/psmisc/run-ptest new file mode 100644 index 0000000000..53f7521ac1 --- /dev/null +++ b/meta/recipes-extended/psmisc/psmisc/run-ptest @@ -0,0 +1,13 @@ +#!/bin/sh + +cd ./testsuite + +tmpdir="$(pwd)/tmp" +mkdir -p "$tmpdir" +TMPDIR="$(cd "$tmpdir" && pwd -P)" +export TMPDIR + +for tool in @DEJATOOL@; do + runtest -a --tool $tool --outdir ../log +done +cd - diff --git a/meta/recipes-extended/psmisc/psmisc_23.7.bb b/meta/recipes-extended/psmisc/psmisc_23.7.bb index ad57c49ffe..f9c6d13ac3 100644 --- a/meta/recipes-extended/psmisc/psmisc_23.7.bb +++ b/meta/recipes-extended/psmisc/psmisc_23.7.bb @@ -13,10 +13,11 @@ LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https;branch=master;tag=v${PV} \ + file://run-ptest \ " SRCREV = "9091d6dbcce3d8fb87adf9249a2eb346d25a562c" -inherit autotools gettext +inherit autotools gettext ptest # Upstream has a custom autogen.sh which invokes po/update-potfiles as they # don't ship a po/POTFILES.in (which is silly). Without that file gettext @@ -25,6 +26,65 @@ do_configure:prepend() { ( cd ${S} && po/update-potfiles ) } +do_compile_ptest() { + for p in $(makefile-getvar ${B}/Makefile check_PROGRAMS); do + oe_runmake $p + done + oe_runmake -C testsuite site.exp +} + +# DejaGnu tools to exclude from the ptest run on specific C libraries. +PTEST_DEJATOOL_SKIP = "" +PTEST_DEJATOOL_SKIP:libc-musl = "killall" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/testsuite + install -d ${D}${PTEST_PATH}/src + install -d ${D}${PTEST_PATH}/log + + cp -r ${S}/testsuite/* ${D}${PTEST_PATH}/testsuite/ + install -m 0644 ${B}/testsuite/site.exp ${D}${PTEST_PATH}/testsuite/ + + # Tools exercised by the .exp scripts. + for p in killall pslog prtstat fuser; do + if [ -x ${B}/src/$p ]; then + install -m 0755 ${B}/src/$p ${D}${PTEST_PATH}/src/ + fi + done + + # Helper programs (check_PROGRAMS) used by the fuser tests. + for p in $(makefile-getvar ${B}/Makefile check_PROGRAMS); do + install -m 0755 ${B}/$p ${D}${PTEST_PATH}/src/ + done + + dejatool="" + for t in $(makefile-getvar ${B}/testsuite/Makefile DEJATOOL); do + skip=0 + for s in ${PTEST_DEJATOOL_SKIP}; do + [ "$t" = "$s" ] && skip=1 + done + [ $skip -eq 0 ] && dejatool="$dejatool $t" + done + sed -i -e "s#@DEJATOOL@#$(echo $dejatool)#" \ + ${D}${PTEST_PATH}/run-ptest + + sed -i -e "/set srcdir/c\\set srcdir ${PTEST_PATH}/testsuite" \ + -e "/set objdir/c\\set objdir ${PTEST_PATH}/testsuite" \ + ${D}${PTEST_PATH}/testsuite/site.exp +} + +do_install_ptest_base:append() { + sed -i -e 's/^set \([a-zA-Z_]*\)$/set \1 ""/' \ + ${D}${PTEST_PATH}/testsuite/site.exp +} + +RDEPENDS:${PN}-ptest += "dejagnu" + PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" -- 2.43.0
Add ptest support using psmisc's upstream DejaGnu testsuite, which exercises killall, pslog and fuser via their .exp scripts. The tools and the testsuite helper programs (socket_test, test-listen) are installed under a src/ layout so the scripts' ${topdir}src/<tool> paths resolve on target. Tested on qemux86-64 with ptest-runner: glibc killall 66, pslog 2, fuser 9; musl pslog 2, fuser 9; all pass. Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> --- Changes in v3: - Skip the killall DejaGnu tool on musl. killall's "-SIGNAME" shorthand depends on glibc getopt_long_only() error-recovery semantics that musl lacks, so the killall.exp signal-name loop failed on the qemux86-64 and arm64 musl autobuilders. pslog and fuser still run on musl. Changes in v2: - Point mktemp at a private, symlink-resolved TMPDIR in run-ptest so the fuser -a/-av/-va tests do not fail intermittently on the autobuilder when /tmp is a symlink or on a different mount. .../distro/include/ptest-packagelists.inc | 1 + meta/recipes-extended/psmisc/psmisc/run-ptest | 13 ++++ meta/recipes-extended/psmisc/psmisc_23.7.bb | 62 ++++++++++++++++++- 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-extended/psmisc/psmisc/run-ptest