[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [pdf-devel] Task 75: pdf_text_get_unicode tests, factored out
From: |
jemarch |
Subject: |
Re: [pdf-devel] Task 75: pdf_text_get_unicode tests, factored out |
Date: |
Mon, 02 Feb 2009 10:32:39 +0100 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/23.0.60 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) |
Hi Sylvain.
I'm working on task 75 to complete the pdf_get_unicode testsuite.
The task asks to take the previous 54 tests and modify them to support
the PDF_TEXT_UNICODE_WITH_NUL_SUFFIX flag, to create 54 new tests.
The tests follow a pattern: exhaustively combine the function
parameters and flags. This means lots of the tests are copy/pasted
version of earlier tests.
To write the tests I tried to factor out the existing ones, eventually
defining each test by the parameters it tests:
struct test_params /* No Encoding BOM Empty Lang
Country NUL PDF_OK? */
tests_params[] = {{ 1, PDF_TEXT_UTF8, 0, 0, 0, 0,
0, 1 },
{ 2, PDF_TEXT_UTF8, 1, 0, 0, 0,
0, 1 }};
The tests call a generic function with the array index:
START_TEST(pdf_text_get_unicode_001) { mytest( 1); } END_TEST
START_TEST(pdf_text_get_unicode_002) { mytest( 2); } END_TEST
I'm not sure this is the Right Way to define tests. Pushed to its
limit, this model means providing an alternate implementation of the
tested function ;)
I think that it is reasonable.
An alternative would be to generate pdf-text-get-unicode.c using some
script and/or the C pre-processor.
I finished implementing this idea, and I attach a patch. Since this is
essentially rewriting the C source, I also attach it as a separate
plain file.
What's lacking is documenting each test. Since this would be as
tedious as writing the tests themselves (i.e. it would require
copy/pasting and adapting the existing tests' descriptions), I'm
looking for alternatives :)
It may be clearer to document the general pattern of the tests rather
than each tests separately. It actually took me a while to figure out
what the existing tests exactly did for that reason: there was lots of
specific information for each test, but little information about the
global test pattern (what parameters varied, what general combinations
produced !PDF_OK, etc.).
Hopefully the big tests_params array makes this more
straightforward now :)
I talked with Aleksander on #pdf and he's OK with the changes, but
suggested this was brought to the list too.
Regarding the documentation of the tests, I would write down a single
test documentation block documenting all tests, like:
/*
* Test: pdf_text_get_unicode_001-061
* Description:
* Blah blah
* Success conditions:
* Blah blah
*/
The patch is ok for me. I will install it as soon your papers are ok.
--
Jose E. Marchesi <address@hidden>
http://www.jemarch.net
GNU Project http://www.gnu.org
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [pdf-devel] Task 75: pdf_text_get_unicode tests, factored out,
jemarch <=