diff mbox series

[v2] dosfstools: Add ptests

Message ID 20250711165344.15438-1-mark.jonas@de.bosch.com
State New
Headers show
Series [v2] dosfstools: Add ptests | expand

Commit Message

Jonas Mark (BT-FS/ENG1-Mue) July 11, 2025, 4:53 p.m. UTC
From: Ricardo Simoes <ricardo.simoes@pt.bosch.com>

Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
---
v1 -> v2:
  - Add missing RDEPENDS of ptest
  - Link tools to /usr/sbin instead of /sbin 

 .../distro/include/ptest-packagelists.inc     |  1 +
 .../dosfstools/dosfstools_4.2.bb              | 30 ++++++++++++++++++-
 .../dosfstools/files/run-ptest                |  5 ++++
 3 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/dosfstools/files/run-ptest

Comments

Khem Raj July 11, 2025, 5:04 p.m. UTC | #1
A small nit
There are some tabs vs spaces discrepancies

On Fri, Jul 11, 2025 at 9:54 AM <mark.jonas@de.bosch.com> wrote:

> From: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
>
> Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
> ---
> v1 -> v2:
>   - Add missing RDEPENDS of ptest
>   - Link tools to /usr/sbin instead of /sbin
>
>  .../distro/include/ptest-packagelists.inc     |  1 +
>  .../dosfstools/dosfstools_4.2.bb              | 30 ++++++++++++++++++-
>  .../dosfstools/files/run-ptest                |  5 ++++
>  3 files changed, 35 insertions(+), 1 deletion(-)
>  create mode 100644 meta/recipes-devtools/dosfstools/files/run-ptest
>
> diff --git a/meta/conf/distro/include/ptest-packagelists.inc
> b/meta/conf/distro/include/ptest-packagelists.inc
> index 4253c7b062..46c8945eb4 100644
> --- a/meta/conf/distro/include/ptest-packagelists.inc
> +++ b/meta/conf/distro/include/ptest-packagelists.inc
> @@ -99,6 +99,7 @@ PTESTS_SLOW = "\
>      coreutils \
>      curl \
>      dbus \
> +    dosfstools \
>      e2fsprogs \
>      elfutils \
>      gettext \
> diff --git a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
> b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
> index 86fb68f664..0772f39381 100644
> --- a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
> +++ b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
> @@ -10,18 +10,46 @@ LICENSE = "GPL-3.0-only"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
>
>  SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
> +           file://run-ptest \
>             file://source-date-epoch.patch \
>             file://0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch \
>             file://0002-manpages-Document-fsck.fat-new-exit-codes.patch \
>             "
>  SRC_URI[sha256sum] =
> "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527"
>
> -inherit autotools gettext pkgconfig update-alternatives github-releases
> +inherit autotools gettext pkgconfig ptest update-alternatives
> github-releases
>
>  EXTRA_OECONF = "--enable-compat-symlinks --without-iconv"
>
>  CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
>
> +do_install_ptest () {
> +    mkdir -p ${D}${PTEST_PATH}/tests
> +    install -m 0744 ${S}/tests/* ${D}${PTEST_PATH}/tests/
> +    install -m 0744 ${S}/test-driver ${D}${PTEST_PATH}/tests/
> +
> +    mkdir -p ${D}${PTEST_PATH}/src
> +    ln -sf /usr/sbin/mkfs.fat ${D}${PTEST_PATH}/src/mkfs.fat
> +    ln -sf /usr/sbin/fsck.fat ${D}${PTEST_PATH}/src/fsck.fat
> +    ln -sf /usr/sbin/fatlabel ${D}${PTEST_PATH}/src/fatlabel
> +
> +    # dosfstools tests depends on variables defined in the tests/Makefile.
> +    # To run the tests, we need to modify the following:
> +    # - srcdir: used to find the test scripts for each dosfstools tools
> +    # - top_srcdir: used to find the test-driver script
> +    # - Makefile: originally used to recreate build rules when needed.
> They're not needed here
> +    #             because we only want to run the tests.
> +    # - XXD_FOUND: Always satisfied by RDEPENDS of ptest package
> +    sed \
> +        -e 's/^srcdir = ..*/srcdir = \./'         \
> +        -e 's/^top_srcdir = ..*/top_srcdir = \./' \
> +        -e 's/^Makefile: ..*/Makefile: /'         \
> +        -e 's/XXD_FOUND=/XXD_FOUND=yes/'          \
> +        ${B}/tests/Makefile > ${D}${PTEST_PATH}/tests/Makefile
> +}
> +
> +RDEPENDS:${PN}-ptest += "bash diffutils gawk make xxd"
> +
>  BBCLASSEXTEND = "native nativesdk"
>
>  ALTERNATIVE_PRIORITY = "100"
> diff --git a/meta/recipes-devtools/dosfstools/files/run-ptest
> b/meta/recipes-devtools/dosfstools/files/run-ptest
> new file mode 100644
> index 0000000000..4f6e349a23
> --- /dev/null
> +++ b/meta/recipes-devtools/dosfstools/files/run-ptest
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +
> +cd tests
> +
> +make check
> --
> 2.34.1
>
>
diff mbox series

Patch

diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 4253c7b062..46c8945eb4 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -99,6 +99,7 @@  PTESTS_SLOW = "\
     coreutils \
     curl \
     dbus \
+    dosfstools \
     e2fsprogs \
     elfutils \
     gettext \
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
index 86fb68f664..0772f39381 100644
--- a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
+++ b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb
@@ -10,18 +10,46 @@  LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
+           file://run-ptest \
            file://source-date-epoch.patch \
            file://0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch \
            file://0002-manpages-Document-fsck.fat-new-exit-codes.patch \
            "
 SRC_URI[sha256sum] = "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527"
 
-inherit autotools gettext pkgconfig update-alternatives github-releases
+inherit autotools gettext pkgconfig ptest update-alternatives github-releases
 
 EXTRA_OECONF = "--enable-compat-symlinks --without-iconv"
 
 CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
 
+do_install_ptest () {
+    mkdir -p ${D}${PTEST_PATH}/tests
+    install -m 0744 ${S}/tests/* ${D}${PTEST_PATH}/tests/
+    install -m 0744 ${S}/test-driver ${D}${PTEST_PATH}/tests/
+
+    mkdir -p ${D}${PTEST_PATH}/src
+    ln -sf /usr/sbin/mkfs.fat ${D}${PTEST_PATH}/src/mkfs.fat
+    ln -sf /usr/sbin/fsck.fat ${D}${PTEST_PATH}/src/fsck.fat
+    ln -sf /usr/sbin/fatlabel ${D}${PTEST_PATH}/src/fatlabel
+
+    # dosfstools tests depends on variables defined in the tests/Makefile.
+    # To run the tests, we need to modify the following:
+    # - srcdir: used to find the test scripts for each dosfstools tools
+    # - top_srcdir: used to find the test-driver script
+    # - Makefile: originally used to recreate build rules when needed. They're not needed here
+    #             because we only want to run the tests.
+    # - XXD_FOUND: Always satisfied by RDEPENDS of ptest package
+    sed \
+        -e 's/^srcdir = ..*/srcdir = \./'         \
+        -e 's/^top_srcdir = ..*/top_srcdir = \./' \
+        -e 's/^Makefile: ..*/Makefile: /'         \
+        -e 's/XXD_FOUND=/XXD_FOUND=yes/'          \
+        ${B}/tests/Makefile > ${D}${PTEST_PATH}/tests/Makefile
+}
+
+RDEPENDS:${PN}-ptest += "bash diffutils gawk make xxd"
+
 BBCLASSEXTEND = "native nativesdk"
 
 ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-devtools/dosfstools/files/run-ptest b/meta/recipes-devtools/dosfstools/files/run-ptest
new file mode 100644
index 0000000000..4f6e349a23
--- /dev/null
+++ b/meta/recipes-devtools/dosfstools/files/run-ptest
@@ -0,0 +1,5 @@ 
+#!/bin/sh
+
+cd tests
+
+make check