Thanks for pointing to good examples of custom src_test().

The package is not without some checks.

    >>> Testing iso-codes-4.18.0-1.noarch
    Making check in iso_639-2
    make[1]: Entering directory
'/tmp/ramfs/iso-codes-4.18.0-1.noarch/build/iso_639-2'
    make  check-local
    make[2]: Entering directory
'/tmp/ramfs/iso-codes-4.18.0-1.noarch/build/iso_639-2'
    python3 
/tmp/ramfs/iso-codes-4.18.0-1.noarch/src/iso-codes-v4.18.0/bin/check_valid_utf8.py
...

It prints a lot of things! We are done here, right?

Hold on a minute, what does that check_valid_utf8.py do? Let me
inspect it... Answer: Just what the name implies, with also a check
for header expected in one such file. And it only checks src, not what
was built (which is not a UTF text file, duh). Reasonable step for
upstream prior to packaging and releasing source, but here, it is of
little interest.

I don't know how best to check whether a *.mo file is "ok", but
there's this `msgunfmt` tool. Idea: Apply msgunfmt to each *.mo file
and then apply this check_valid_utf8.py on each such file. That is
what they should have done with their tests.

Was it a silly waste of time? No! Discovered something interesting.
There are some *.po files without any valid translation message (all
"" or fuzzy). We end up with useless *.mo files, and that
check_valid_utf8.py crashes on those after msgunfmt, because after MO
-> PO, those are empty files. And then there are a bunch of
symlinks... pointing to these empty files! Question: Why build empty
files and dump that on the system? Valid QA issue to share with
upstream.

A second set of tests I made involves a small program in C (no
bindings, we are going bare metal) that calls dgettext on selected
entries msg/domain/locale (against prefix ${D}). This checks whether
the returned value is as expected. The saved expected results may need
minor updates in the future. It also confirms at once that a bunch of
bundled locales just work. Sure, it could be done in python with
unittest wrapping it, but I like the idea that this thing will likely
work as is in 10+ years from now.

Log:
https://github.com/cygwin/scallywag/actions/runs/14623256814

Commit:
https://cygwin.com/cgit/cygwin-packages/iso-codes/commit/?id=eaab12dd973e77839b84e92577e40941e6f51799

--
pbl

Reply via email to