]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
libsolv: add ptest support
authorPratik Farkase <pratik.farkase@est.tech>
Mon, 2 Feb 2026 22:36:06 +0000 (23:36 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 9 Feb 2026 17:46:58 +0000 (17:46 +0000)
commitf5432d1c45f9eb47182049c6930cfc6d5b26bc8d
tree7d5800de54e6428956468168f28de962724ac3f3
parentcc90f8c3b9aaa25307959a091076b78cd58ea142
libsolv: add ptest support

Add ptest support to enable automated testing of libsolv
using ptest-runner.

The implementation uses upstream's test infrastructure:
testsolv binary, runtestcases.sh script, and testcase data.
The test suite runs 28 test categories covering solver
functionality, package dependencies, and repository handling.

All 28 upstream tests pass successfully on qemux86-64:
START: ptest-runner
BEGIN: /usr/lib/libsolv/ptest
conflict.t .......................................   Passed
forcebest.t ......................................   Passed
PASS: allowuninstall
job.t ............................................   Passed
learnt.t .........................................   Passed
recommends.t .....................................   Passed
requires.t .......................................   Passed
strongrecommends.t ...............................   Passed
update.t .........................................   Passed
yumobs.t .........................................   Passed
PASS: alternative
ptf.t ............................................   Passed
retracted.t ......................................   Passed
PASS: blacklist
choice1.t ........................................   Passed
choice1b.t .......................................   Passed
choice2.t ........................................   Passed
choice2b.t .......................................   Passed
choice3.t ........................................   Passed
choice3b.t .......................................   Passed
choice4.t ........................................   Passed
choice5.t ........................................   Passed
choice6.t ........................................   Passed
choice7.t ........................................   Passed
PASS: choicerules
default.t ........................................   Passed
enhanced.t .......................................   Passed
oldversion.t .....................................   Passed
suggested.t ......................................   Passed
versioned.t ......................................   Passed
versioned2.t .....................................   Passed
PASS: choose
cleandeps_dup.t ..................................   Passed
cleandeps_in.t ...................................   Passed
cleandeps_up.t ...................................   Passed
cleandeps_up3.t ..................................   Passed
mistake.t ........................................   Passed
PASS: cleandeps
and.t ............................................   Passed
andor.t ..........................................   Passed
if.t .............................................   Passed
ifelse.t .........................................   Passed
ifelse_rec.t .....................................   Passed
or.t .............................................   Passed
orand.t ..........................................   Passed
PASS: cplxdeps
dup_allowuninstall.t .............................   Passed
dup_multiversion1.t ..............................   Passed
dup_multiversion2.t ..............................   Passed
dup_multiversion3.t ..............................   Passed
dup_noarchchange.t ...............................   Passed
dup_orphan1.t ....................................   Passed
dup_orphan2.t ....................................   Passed
dup_orphan3.t ....................................   Passed
PASS: distupgrade
caret.t ..........................................   Passed
testevr.t ........................................   Passed
PASS: evrcmp
excludefromweak-obsoletes.t ......................   Passed
excludefromweak.t ................................   Passed
PASS: excludefromweak
recommends.t .....................................   Passed
recommends2.t ....................................   Passed
requires.t .......................................   Passed
single.t .........................................   Passed
supplements.t ....................................   Passed
PASS: favor
best.t ...........................................   Passed
installed.t ......................................   Passed
new1.t ...........................................   Passed
new2.t ...........................................   Passed
normal.t .........................................   Passed
PASS: focus
forcebest_dup.t ..................................   Passed
forcebest_in.t ...................................   Passed
forcebest_up.t ...................................   Passed
PASS: forcebest
best.t ...........................................   Passed
dup.t ............................................   Passed
PASS: lock
infarch_install_best.t ...........................   Passed
lockstep_install.t ...............................   Passed
lockstep_update.t ................................   Passed
PASS: lockstep
multiversion.t ...................................   Passed
update.t .........................................   Passed
update2.t ........................................   Passed
PASS: multiversion
namespaceprovides.t ..............................   Passed
PASS: namespace
pubg1.t ..........................................   Passed
pubg2.t ..........................................   Passed
PASS: proof
recommended_conflicts.t ..........................   Passed
recommended_multirepo.t ..........................   Passed
recommended_oldversion.t .........................   Passed
recommended_targeted.t ...........................   Passed
recommended_version.t ............................   Passed
suggested_conflicts.t ............................   Passed
suggested_multirepo.t ............................   Passed
suggested_oldversion.t ...........................   Passed
suggested_targeted.t .............................   Passed
suggested_version.t ..............................   Passed
PASS: recommendations
assert.t .........................................   Passed
mm-test.t ........................................   Passed
reuse.t ..........................................   Passed
PASS: sat
disable: unknown package 'E-1-1.src@available'
disable: unknown package 'F-1-1.src@available'
selection_canon_rpm.t ............................   Passed
selection_filelist.t .............................   Passed
selection_matchdeps.t ............................   Passed
selection_matchsolvable.t ........................   Passed
selection_name.t .................................   Passed
selection_provides.t .............................   Passed
PASS: selection
strictrepoprio.t .................................   Passed
PASS: strictrepoprio
break.t ..........................................   Passed
disfavored.t .....................................   Passed
strongr.t ........................................   Passed
PASS: strongrecommends
targeted_color.t .................................   Passed
targeted_dup.t ...................................   Passed
targeted_up.t ....................................   Passed
PASS: targeted
nested.t .........................................   Passed
str2dep.t ........................................   Passed
PASS: testcase
supplements_implicitobsoleteusescolors.t .........   Passed
PASS: weakdeps
dup.t ............................................   Passed
dup2.t ...........................................   Passed
forcebest_in.t ...................................   Passed
forcebest_up.t ...................................   Passed
PASS: whatprovideswithdisabled
split.t ..........................................   Passed
split2.t .........................................   Passed
PASS: yumobs
DURATION: 7
END: /usr/lib/libsolv/ptest
STOP: ptest-runner

Note: runtestcases.sh requires bash as it uses bash-specific features.

Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/distro/include/ptest-packagelists.inc
meta/recipes-extended/libsolv/libsolv/run-ptest [new file with mode: 0755]
meta/recipes-extended/libsolv/libsolv_0.7.35.bb