Polishing Streams, Filtering and nocheck

This is the weekly report about the development of the GNU PDF project.

Fixes in the Stream Module

This week we did a lot of work on the stream module. Juan Pedro Bolivar discovered a really bad bug in the stream module code that led to the rewrite of some parts of pdf-stm.

We wrote or adapted several filters: the ASCII hex encoder and decoder, the Run Length encoder and decoder and the Flate encoder and decoder.

Super Powered pdf-filter

We have extended the pdf-filter utility. Now it is possible to use a reading stream or a writing stream and to specify the stream cache size using command line parameters.

Of course all the written filters can be used by invoking pdf-filter.

Crypt Unit Tests Passing(now)

A problem with the initialization of the libgcrypt library was the cause of the fail of every unit test for the crypt module. David Vazquez found the error and sent a patch fixing it. Right now all the unit tests of the library are passing.

nocheck and fork-mode

The code of the GNU PDF Library is portable and works in both GNU and Windoze systems. The unit testing framework that we are using, check, makes use of fork to implement a fork-mode: each unit test is executed in a separate process. In that way the test driver is able to properly catch any signal produced by the software under test (such as a segmentation fault) and to detect endless conditions.

A problem with check is that it does not work in Windoze systems since it depends on the availability of the fork system call, so some time ago Aleksander Morgado wrote an alternative library called nocheck. We are using nocheck to pass the unit tests with Wine.

Zac Brown detected a little problem with nocheck: it was not defining some fork-mode specific functions and symbols and thus the unit tests were not compiling at all. He sent a patch fixing this issue, so nocheck is working again.

RSS Problem Fixed

The mediawiki-based rss reader in http://www.gnupdf.org is now working properly. The problem was related with the caching of the RSS made by magiperrs and a misconfiguration in the server.

Still Missing Examples

Unfortunately a lot of existing function entries (more than 90 actually) are lacking a proper usage example. We are looking for a volunteer to take over this task. If you have some spare time that you would want to donate to do this task please write to the development mailing list.

Leave a Reply