> Date: Mon, 17 Mar 2008 14:44:30 +0100 > From: [EMAIL PROTECTED] > > > > Well, finally I have some simple tests for the List module. > > Notice that I needed to change the List module API too (and gnupdf.texi > accordingly). > > Here are the corresponding patches and the unit tests (holy emacs): > > Thanks Gerel. I will adapt it to work with the inlined implementation > and then install it. > > Done. The new API and the unit tests are now merged in CVS. Please > dont forget to update the TSD with the unit tests information. > >
Ok, Here is the patch for the TSD, I hope it's ok. BTW, the unit test implementations are not in the repository yet. ## Index: doc/gnupdf-tsd.texi =================================================================== RCS file: /sources/pdf/libgnupdf/doc/gnupdf-tsd.texi,v retrieving revision 1.4 diff -u -r1.4 gnupdf-tsd.texi --- doc/gnupdf-tsd.texi 10 Mar 2008 17:50:19 -0000 1.4 +++ doc/gnupdf-tsd.texi 17 Mar 2008 15:58:15 -0000 @@ -71,6 +71,7 @@ * Memory Allocation Module:: * Stream Module:: * Text Module:: +* List Module:: @end menu @node Memory Allocation Module @@ -3049,6 +3050,554 @@ @end deffn [EMAIL PROTECTED] List Module [EMAIL PROTECTED] List Module + [EMAIL PROTECTED] +* pdf_list_add_at:: +* pdf_list_add_first:: +* pdf_list_add_last:: +* pdf_list_create:: +* pdf_list_get_at:: +* pdf_list_indexof_from_to:: +* pdf_list_indexof_from:: +* pdf_list_indexof:: +* pdf_list_iterator_from_to:: +* pdf_list_iterator_next:: +* pdf_list_iterator:: +* pdf_list_next_node:: +* pdf_list_node_value:: +* pdf_list_previous_node:: +* pdf_list_remove_at:: +* pdf_list_remove_node:: +* pdf_list_remove:: +* pdf_list_search_from_to:: +* pdf_list_search_from:: +* pdf_list_search:: +* pdf_list_set_at:: +* pdf_list_size:: [EMAIL PROTECTED] menu + [EMAIL PROTECTED] pdf_list_add_at [EMAIL PROTECTED] pdf_list_add_at + [EMAIL PROTECTED] Test pdf_list_add_at_001 +Try to add a new element at the 0 position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_add_at_002 +Try to add a new element at an invalid position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_add_first [EMAIL PROTECTED] pdf_list_add_first + [EMAIL PROTECTED] Test pdf_list_add_first_001 +Try to add an element at the beginning of the list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +We get the right pdf_list_size(). [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_add_first_002 +Try to add an element at the beginning of the list allowing duplicates. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +We get the right pdf_list_size(). [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_add_last [EMAIL PROTECTED] pdf_list_add_last + [EMAIL PROTECTED] Test pdf_list_add_last_001 +Try to add some elements. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +We get the right pdf_list_size(). [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_create [EMAIL PROTECTED] pdf_list_create + [EMAIL PROTECTED] Test pdf_list_create_001 +Try to create an empty list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_create_002 +Try to create an empty list given a NULL list pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_create_003 +Try to create an empty list allowing duplicates. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_get_at [EMAIL PROTECTED] pdf_list_get_at + [EMAIL PROTECTED] Test pdf_list_get_at_001 +Try to get a node value. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_get_at_002 +Try to get a node value given a NULL value pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_get_at_003 +Try to get a node value at an invalid position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_indexof_from_to [EMAIL PROTECTED] pdf_list_indexof_from_to + [EMAIL PROTECTED] Test pdf_list_indexof_from_to_001 +Try to get the index of a existent element from position '0'. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_to_002 +Try to get the index of a existent element from invalid position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_to_003 +Try to get the index of a existent element given a NULL position pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_to_004 +Try to get the index of a non-existent element. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_indexof_from [EMAIL PROTECTED] pdf_list_indexof_from + + [EMAIL PROTECTED] Test pdf_list_indexof_from_001 +Try to get the index of a existent element from position '0'. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_002 +Try to get the index of a existent element from invalid position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_003 +Try to get the index of a existent element given a NULL position pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_from_004 +Try to get the index of a non-existent element. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_indexof [EMAIL PROTECTED] pdf_list_indexof + [EMAIL PROTECTED] Test pdf_list_indexof_001 +Try to get the index of an existent element. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_002 +Try to get the index of a non-existent element. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_indexof_003 +Try to get the index of an element given a NULL position pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_iterator_from_to [EMAIL PROTECTED] pdf_list_iterator_from_to + [EMAIL PROTECTED] Test pdf_list_iterator_from_to_001 +Try to get an iterator in a given range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_iterator_from_to_002 +Try to get an iterator in an invalid range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_iterator_from_to_003 +Try to get an iterator given a NULL iterator pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_iterator_next [EMAIL PROTECTED] pdf_list_iterator_next + [EMAIL PROTECTED] Test pdf_list_iterator_next_001 +Try to get the next element using an iterator. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_iterator_next_002 +Try to get the next element using an iterator from an empty list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_iterator [EMAIL PROTECTED] pdf_list_iterator + [EMAIL PROTECTED] Test pdf_list_iterator_001 +Try to create an iterator from list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_iterator_002 +Try to create an iterator given a NULL iterator pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_next_node [EMAIL PROTECTED] pdf_list_next_node + [EMAIL PROTECTED] Test pdf_list_next_node_001 +Try to get the next node given another node. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_next_node_002 +Try to get the next node given the last node in the list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_next_node_003 +Try to get the next node given a NULL next pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_node_value [EMAIL PROTECTED] pdf_list_node_value + [EMAIL PROTECTED] Test pdf_list_node_value_001 +Try to get a node value. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +The returned value is the expected. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_previous_node [EMAIL PROTECTED] pdf_list_previous_node + [EMAIL PROTECTED] Test pdf_list_previous_node_001 +Try to get the previous node given another node. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_previous_node_002 +Try to get the previous node given the first node. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_previous_node_003 +Try to get the previous node given a NULL prev pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_remove_at [EMAIL PROTECTED] pdf_list_remove_at + [EMAIL PROTECTED] Test pdf_list_remove_at_001 +Try to remove a node at some position [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_remove_at_002 +Try to remove a node at an invalid position [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_remove_node [EMAIL PROTECTED] pdf_list_remove_node + [EMAIL PROTECTED] Test pdf_list_remove_node_001 +Try to remove a given node from a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +The size is the expected. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_remove [EMAIL PROTECTED] pdf_list_remove + [EMAIL PROTECTED] Test pdf_list_remove_001 +Try to remove an existing element in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_remove_002 +Try to remove an non-existent element. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_search_from_to [EMAIL PROTECTED] pdf_list_search_from_to + [EMAIL PROTECTED] Test pdf_list_search_from_to_001 +Try to search an existent element in the correct range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_to_002 +Try to seach an element in an invalid range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_to_003 +Try to search a non-existent element in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_to_004 +Try search an element given a NULL node pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_search_from [EMAIL PROTECTED] pdf_list_search_from + [EMAIL PROTECTED] Test pdf_list_search_from_001 +Try to search an existent element in the correct range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_002 +Try to seach an element in an invalid range. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EINVRANGE. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_003 +Try to search a non-existent element in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_from_004 +Try search an element given a NULL node pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_search [EMAIL PROTECTED] pdf_list_search + [EMAIL PROTECTED] Test pdf_list_search_001 +Try to search for an existing element in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_002 +Try to search an existent element given a NULL node pointer. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_EBADDATA [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_search_003 +Try to search for a non-existent element in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_ENONODE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + + [EMAIL PROTECTED] pdf_list_set_at [EMAIL PROTECTED] pdf_list_set_at + [EMAIL PROTECTED] Test pdf_list_set_at_001 +Try to replace a node value in a list. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_OK [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] Test pdf_list_set_at_002 +Try to replace a node value at an invalid position. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns PDF_INVRANGE [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + [EMAIL PROTECTED] pdf_list_size [EMAIL PROTECTED] pdf_list_size + [EMAIL PROTECTED] Test pdf_list_size_001 +Try to get an empty list size. [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Success condition +Returns 0. [EMAIL PROTECTED] table [EMAIL PROTECTED] deffn + @node Subsystem Testing @chapter Subsystem Testing ### cheers -gerel
