Changeset 13477

Show
Ignore:
Timestamp:
01/06/08 07:10:02 (4 months ago)
Author:
rouault
Message:

Add tests for CPLList API into C++ unit tests framework

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/autotest/cpp/test_cpl.cpp

    r10742 r13477  
    3030#include <tut.h> 
    3131#include <string> 
     32#include "cpl_list.h" 
    3233 
    3334namespace tut 
     
    4748    group test_cpl_group("CPL"); 
    4849 
    49     // Test ... 
     50    // Test cpl_list API 
    5051    template<> 
    5152    template<> 
    5253    void object::test<1>() 
    5354    { 
    54         // TODO: Replace following dummy test 
    55         ensure(true); 
     55        CPLList* list; 
     56     
     57        list = CPLListInsert(NULL, (void*)0, 0); 
     58        ensure(CPLListCount(list) == 1); 
     59        list = CPLListRemove(list, 2); 
     60        ensure(CPLListCount(list) == 1); 
     61        list = CPLListRemove(list, 1); 
     62        ensure(CPLListCount(list) == 1); 
     63        list = CPLListRemove(list, 0); 
     64        ensure(CPLListCount(list) == 0); 
     65        list = NULL; 
     66         
     67        list = CPLListInsert(NULL, (void*)0, 2); 
     68        ensure(CPLListCount(list) == 3); 
     69        list = CPLListRemove(list, 2); 
     70        ensure(CPLListCount(list) == 2); 
     71        list = CPLListRemove(list, 1); 
     72        ensure(CPLListCount(list) == 1); 
     73        list = CPLListRemove(list, 0); 
     74        ensure(CPLListCount(list) == 0); 
     75        list = NULL; 
     76     
     77        list = CPLListAppend(list, (void*)1); 
     78        ensure(CPLListGet(list,0) == list); 
     79        ensure(CPLListGet(list,1) == NULL); 
     80        list = CPLListAppend(list, (void*)2); 
     81        list = CPLListInsert(list, (void*)3, 2); 
     82        ensure(CPLListCount(list) == 3); 
     83        CPLListDestroy(list); 
     84        list = NULL; 
     85     
     86        list = CPLListAppend(list, (void*)1); 
     87        list = CPLListAppend(list, (void*)2); 
     88        list = CPLListInsert(list, (void*)4, 3); 
     89        CPLListGet(list,2)->pData = (void*)3; 
     90        ensure(CPLListCount(list) == 4); 
     91        ensure(CPLListGet(list,0)->pData == (void*)1); 
     92        ensure(CPLListGet(list,1)->pData == (void*)2); 
     93        ensure(CPLListGet(list,2)->pData == (void*)3); 
     94        ensure(CPLListGet(list,3)->pData == (void*)4); 
     95        CPLListDestroy(list); 
     96        list = NULL; 
     97     
     98        list = CPLListInsert(list, (void*)4, 1); 
     99        CPLListGet(list,0)->pData = (void*)2; 
     100        list = CPLListInsert(list, (void*)1, 0); 
     101        list = CPLListInsert(list, (void*)3, 2); 
     102        ensure(CPLListCount(list) == 4); 
     103        ensure(CPLListGet(list,0)->pData == (void*)1); 
     104        ensure(CPLListGet(list,1)->pData == (void*)2); 
     105        ensure(CPLListGet(list,2)->pData == (void*)3); 
     106        ensure(CPLListGet(list,3)->pData == (void*)4); 
     107        list = CPLListRemove(list, 1); 
     108        list = CPLListRemove(list, 1); 
     109        list = CPLListRemove(list, 0); 
     110        list = CPLListRemove(list, 0); 
     111        ensure(list == NULL); 
    56112    } 
    57113