exfatprogs: add ptest support

It takes about a second to execute the suite.

Sample output (the "ERRORs" are coming from negative tests):

root@qemux86-64:~# ptest-runner
START: ptest-runner
2025-12-26T20:19
BEGIN: /usr/lib/exfatprogs/ptest
Running ./bad_file_size
-----------------------------------
exfatprogs version : 1.2.6
ERROR: /dir_01/bad_child_01: less clusters are allocated. truncates to 8192 bytes at 0x206060. Truncate (y/N)? y
ERROR: /dir_02/bad_child_02: more clusters are allocated. truncate to 8192 bytes at 0x209060. Truncate (y/N)? y
exfat.img: clean. directories 3, files 9
exfat.img: files corrupted 0, files fixed 1

exfatprogs version : 1.2.6
exfat.img: clean. directories 4, files 10

PASS: ./bad_file_size
[...many lines...]
PASS: ./bad_num_chain
Running ./loop_chain
-----------------------------------
exfatprogs version : 1.2.6
ERROR: /dir_01/bad_child_01: more clusters are allocated. truncate to 16384 bytes at 0x206060. Truncate (y/N)? y
ERROR: /dir_02/bad_child_02: cluster is already allocated for the other file. truncated to 8192 bytes at 0x209060. Truncate (y/N)? y
exfat.img: clean. directories 3, files 9
exfat.img: files corrupted 0, files fixed 1

exfatprogs version : 1.2.6
exfat.img: clean. directories 4, files 10

PASS: ./loop_chain

PASS: 17 of 17
DURATION: 1
END: /usr/lib/exfatprogs/ptest
2025-12-26T20:21
STOP: ptest-runner
TOTAL: 1 FAIL: 0

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Gyorgy Sarvari 2025-12-27 07:56:32 +01:00 committed by Khem Raj
parent 36ae7ed7d0
commit db15c84a06
No known key found for this signature in database
GPG Key ID: BB053355919D3314
3 changed files with 14 additions and 2 deletions

View File

@ -8,6 +8,7 @@
PTESTS_FAST_META_FILESYSTEMS = "\
e2tools \
exfatprogs \
unionfs-fuse \
"

View File

@ -0,0 +1,3 @@
#!/bin/sh
cd tests
./test_fsck.sh

View File

@ -11,14 +11,22 @@ SECTION = "universe/otherosfs"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
file://run-ptest"
SRC_URI[sha256sum] = "89d05b7a9537f2413079b724ec8d02d7a2e291c29c52e7256303e9456200fb0f"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
inherit autotools
inherit autotools ptest
RPROVIDES:${PN} = "exfat-utils"
RCONFLICTS:${PN} = "exfat-utils"
RREPLACES:${PN} = "exfat-utils"
RDEPENDS:${PN}-ptest += "bash xz"
do_install_ptest(){
cp -r ${S}/tests ${D}${PTEST_PATH}
sed -i "s,Passed,PASS:," ${D}${PTEST_PATH}/tests/test_fsck.sh
sed -i "s,Failed,FAIL:," ${D}${PTEST_PATH}/tests/test_fsck.sh
}