Subject: bug#70982: test suite failures on OpenBSD

From: Ileana Dumitrescu <[email-masked]>
Date: Fri, 8 Nov 2024 17:24:01 +0200

On 07/11/2024 21:49, Bruno Haible wrote:
> Hi Ileana,

Hi Bruno,

> Ileana Dumitrescu wrote:
>> Tests 34 and 81 have been fixed [1] with these commits [2][3] in
>> OpenBSD, and an additional test, 173, for using local versions of shared
>> libraries is fixed by utilizing functionality added in this commit [4].
>> The entire OpenBSD testsuite should be fixed in development now!
>>
>> [1] https://github.com/gnu-libtool/ci-check/actions/runs/11726885546
>> [2]
>> https://git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=7c310c9b0439a020add4c23d84ab33eeb486bd75
>> [3]
>> https://git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=c7bfd6884ceae4e792b17c9ea89097e8d00dbe2b
>> [4]
>> https://git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=3996b1fddcaa543c8bf349314cac3ab4b07b4d1d
> 
> Thanks for working on this!

Thank you for submitting the issue and logs!

> However, there are two things that I don't understand:
> 
> * Why two options, --test and --check, that do the same thing?
>    In my understanding, "check" means doing a "test" with the a certain
>    expectation, whereas "test" is unbiased.

I have seen check and test used interchangeably for executing a
testsuite. I thought users would appreciate the ability to choose
whichever term they generally use, but if one option seems sufficient,
I can remove the other.

> * In which situations is the user expected to pass one of these options?
>    - Is it only for libtool's own test suite?

No, but I can see where I may have created that confusion. I can update
the documentation to make this more clear.

>    - Is it also for the test suite of a package (like GNU gettext)?

Yes? Depending on what a package's testsuite looks like, it should
ensure that local changes to a shared library (that has previously been
installed) will be utilized when linking to an executable, instead of an
old installed version.

>      If yes, does this mean that instead of executing a program through
>        ../src/prog <some_arguments>
>      the package's test suite needs to run
>        ../libtool --mode=execute --test ../src/prog <some_arguments>  ?

No, this should be specific to "--mode=finish" and "--mode=install" for
shared libraries where the shared library cache may be updated by
finish_cmds. The command(s) should not have any effect on other libtool
modes. For libtool's testsuite, I have been utilizing:

   make check LIBTOOLFLAGS=--test

For packages using libtool, a package testsuite could be built, and
then, the shared libraries within could be changed and rebuilt without
the need to install those changes.

>      And what about interactive invocations of src/prog then?

Interactive invocations of src/prog should operate as expected for the
shared libraries it has been linked to. I think --test and --check
should only be useful for checking and testing of local changes to
shared libraries, without the need to install the updated shared
library. I have only seen this as an issue with ldconfig on OpenBSD 7.5.
Other versions of ldconfig do not seem to update the shared library
cache for these local libraries during testing, but I have not put much
time into understanding the differences.

-- 
Ileana Dumitrescu

GPG Public Key: FA26 CA78 4BE1 8892 7F22 B99F 6570 EA01 146F 7354