CPAN Testers is only made possible with the support of our sponsors.
For more information on sponsoring, please visit the I CPAN Testers website.

Upgrade Notice

The CPAN Testers Blog site has been upgraded since you last accessed the site. Please press the F5 key or CTRL-R to refresh your browser cache to use the latest javascript and CSS files.

News & Views

Below is a post to the CPAN Testers mailing list by Mark Overmeer. Mark asked me earlier in the week about promoting under-tested OSes, which has been something I've been meaning to do for awhile. Alhough, I planned to write a blog post, however as Mark's post to the list covers it all so well, with Mark's permission I am posting it in full. If you have an under-CPAN tested OS, please consider running a smoke tester to help both Mark and CPAN testers. Over to you Mark ....

 

Dear testers,

CPAN Testers is a unique infrastructure.  I (ab)use it to collect platform specific information around POSIX compliancy, which I cannot find anywhere else.  I need more uncommon platforms to run my tests...  Please cpantest my POSIX::1003 module.

* Let me explain.
The POSIX.pm module offers a few extra OS calls, which are not in core (why is getpwnam() still build-in?)  But the POSIX standards are much larger.  See where the 1200+ functions of POSIX* are: Overview - Functions

POSIX::1003 extends POSIX.pm, firstly breaking its exported info into groups with some documentation.  Most importantly, the module autodetects constants and adds more functions.  There are many many more constants than core modules define.

* Approach.
I have manually grabbed constant names from the manual pages of many operating systems.  There are collections of manual pages which are helpful.  I have found close to 1700 constants this way. During installation of the module, XS builds tables with the names which are found.  Those names are also added to the manual pages.  Example: Errno - Constants

I add new functions very fast, but need to see which platforms support which extensions.  Also, I need to spot compilation problems for platforms which I do not have.

Worth to notice: I go to great pain *not* to hide platform differences! People may want to produce abstractions which do hide differences, but to do that correctly, we need the pure native interface first. For instance, I offer a pure getuid() and geteuid() and getreuid() and getresuid() (if platforms offer them), without an attempt to unify them.* New project. Ok, to support my own development, I was looking for the reverse mapping: we do have a "platform to constants" map via manual-pages, but it is not clear when constants and functions got added to some OS. Now, I use cpantesters to get the reverse mapping!  When tests are run on cpantesters, they dump the discovered tables.  It will benefit Perl's connection to the OS, but this data is useful for any OS programmer.

Have a look at posix.cpan6.net what I do with the information collected via cpantesters.  It's a new project, so far from optimal output.  When I get more cpantest results, I will (have to) be smarter with the browsing.

* Please help
Please run tests for POSIX::1003 -- especially when you run something else than Mac, Linux, FreeBSD, Windows.   At least, I would like to get results from aix, hpux, solaris, and openbsd.  Thanks in advance!