Changeset 695

Show
Ignore:
Timestamp:
04/03/07 12:33:15 (2 years ago)
Author:
cesar
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tests/cache/cherokee/Makefile

    r694 r695  
    11CHEROKEE_PATH=../../../cherokee 
    2 CHEROKEE_DEPS=-lssl 
     2CHEROKEE_DEPS=-lssl -lpthread 
    33 
    44CC = gcc 
     
    99PROG = test 
    1010 
    11 .c.o: 
     11.c.o: test.c cherkokee.h 
    1212        $(CC) $(CFLAGS) -c -o $@ $< 
    1313 
  • tests/cache/cherokee/cache_obj_http.h

    r694 r695  
    4444        cherokee_buffer_t     id; 
    4545        cherokee_buffer_t     body; 
     46         
     47        CHEROKEE_RWLOCK_T(lock); 
    4648} cherokee_cache_obj_http_t; 
    4749 
  • tests/cache/cherokee/cache_table.c

    r694 r695  
    2727#include "common-internal.h" 
    2828#include "cache_table.h" 
     29#include "cache_obj.h" 
    2930 
    3031static ret_t 
     
    6566clean_up (cherokee_cache_t *cache) 
    6667{ 
     68        /* cherokee_cache_obj_mrproper doesn't know the concrete mrproper needed here,  
     69         * It should be available in cherokee_cache_obj_*_t 
     70         */ 
     71         
    6772        return ret_ok; 
    6873} 
     
    7176gen_key (cherokee_cache_t *cache, cherokee_buffer_t **key, cherokee_buffer_t *buf) 
    7277{ 
     78        /* P. J. Weinberger's hash function, adapted from p. 436 of 
     79         * Compilers: Principles, Techniques, and Tools_, Aho, Sethi 
     80         * and U llman, Addison-Wesley, 1986, ISBN 0-201-10088-6  
     81         */ 
     82 
     83        ret_t ret; 
     84 
     85        const char *s; 
     86        cuint_t h = 0; 
     87        cuint_t g; 
     88        cint_t c; 
     89 
     90        CHEROKEE_NEW(n,buffer); 
     91 
     92        cherokee_buffer_init(n); 
     93 
     94        for (s = buf->buf; buf->buf + buf->len >= s; s++) { 
     95                c = *s; 
     96                if (isascii(c) && isupper(c)) 
     97                        c = tolower(c); 
     98                h = ( h << 4 ) + c; 
     99                if ((g = ( h & 0xf0000000 )) != 0) { 
     100                        h = h ^ (g >> 24); 
     101                        h = h ^ g; 
     102                } 
     103        } 
     104 
     105        ret = cherokee_buffer_add_va (n, "%d", h); 
     106        if (unlikely (ret != ret_ok)) return ret_error; 
     107 
     108        *key = n; 
     109 
     110        TRACE(ENTRIES, "url:%s, key: %s\n", buf->buf, BUF(n)->buf); 
    73111        return ret_ok; 
     112 
    74113} 
    75114 
     
    94133        CACHE(cache)->clean_up = (cherokee_cache_func_clean_up_t) clean_up; 
    95134 
    96         ret = cherokee_table_init_case(&CACHE_TABLE(cache)->objs); 
     135        INIT_LIST_HEAD(&CACHE_TABLE(cache)->to_delete); 
     136 
     137        ret = cherokee_table_init_case(&CACHE_TABLE(cache)->objs); 
    97138        if (unlikely (ret != ret_ok)) return ret_error; 
    98139 
     
    113154        /* cache->objs already deleted by _clean_up() 
    114155         */ 
    115          
     156        cherokee_list_del (&cache->to_delete); 
     157         
    116158        return ret_ok; 
    117159} 
    118  
    119  
    120  
  • tests/cache/cherokee/cache_table.h

    r688 r695  
    4141        /* Objects collection 
    4242         */ 
    43         cherokee_table_t   objs;         /* cherokee_cache_obj_ts */     
    44 } cherokee_cache_table_t; 
     43        cherokee_table_t   objs;         /* cherokee_cache_obj_ts */ 
     44        cherokee_list_t    to_delete; 
     45}cherokee_cache_table_t; 
    4546 
    4647#define CACHE_TABLE(c) ((cherokee_cache_table_t *)(c)) 
  • tests/cache/cherokee/test.c

    r694 r695  
    2424 
    2525#include "common-internal.h" 
     26 
    2627#include "cache_file.h" 
     28#include "cache_obj_file.h" 
     29 
     30#include "cache_table.h" 
     31#include "cache_obj_http.h" 
    2732 
    2833#define NUM_OBJS 20000 
     34 
     35int test_file (); 
     36int test_table (); 
    2937 
    3038 
    3139int  
    3240main () 
     41{ 
     42        ret_t ret; 
     43        printf("Cherokee cache_table test:\n");  
     44        ret = test_table(); 
     45        if (ret != ret_ok) 
     46                fprintf(stderr, "test_file failed\n"); 
     47 
     48        printf("Cherokee cache_file test:\n"); 
     49        ret = test_file();  
     50        if (ret != ret_ok) 
     51                fprintf(stderr, "test_file failed\n"); 
     52 
     53        return ret_ok;  
     54} 
     55 
     56 
     57int test_table() 
     58{ 
     59        cuint_t            i; 
     60        ret_t              ret; 
     61 
     62        CHEROKEE_NEW_STRUCT(key, buffer); 
     63        CHEROKEE_NEW_STRUCT(buf, buffer);  
     64 
     65        CHEROKEE_NEW_STRUCT(obj, cache_obj_http); 
     66        CHEROKEE_NEW_STRUCT(obj2, cache_obj_http); 
     67         
     68        CHEROKEE_NEW_STRUCT(cache, cache_table);         
     69        cherokee_cache_table_init (cache); 
     70 
     71        /* Store some stuff   
     72         */ 
     73        for (i=0; i<NUM_OBJS; i++) { 
     74 
     75                cherokee_cache_obj_http_new (&obj); 
     76                cherokee_buffer_init(buf); 
     77 
     78                //CHEROKEE_RWLOCK_WRITER(&obj->lock);  
     79                cherokee_buffer_add_va (buf, "info-%d", i); 
     80 
     81                cherokee_cache_gen_key (CACHE(cache), &key, buf);  
     82                cherokee_buffer_swap_buffers (&obj->id, key); 
     83                cherokee_buffer_add_va (&obj->body, "<html>%d</html>", i); 
     84 
     85                cherokee_cache_add (CACHE(cache), &obj->id, CACHE_OBJ(obj)); 
     86                //CHEROKEE_RWLOCK_UNLOCK(&obj->lock); 
     87 
     88                cherokee_buffer_mrproper(buf); 
     89                cherokee_buffer_free(key); 
     90        } 
     91 
     92        /* Read the stuff 
     93         */ 
     94        for (i=0; i<NUM_OBJS+3; i++) { 
     95                cherokee_buffer_init(buf); 
     96                 
     97                cherokee_buffer_add_va (buf, "info-%d", i); 
     98                cherokee_cache_gen_key (CACHE(cache), &key, buf); 
     99                cherokee_buffer_swap_buffers(&obj->id, key); 
     100 
     101                ret = cherokee_cache_get(CACHE(cache), &obj->id, CACHE_OBJ(&obj2)); 
     102                if (ret != ret_ok) 
     103                        printf("%s Not found\n", obj->id.buf); 
     104                //else 
     105                //           printf("found %s\n", CACHE_OBJ_HTTP(obj2)->id.buf); 
     106 
     107                cherokee_buffer_mrproper(buf); 
     108        } 
     109 
     110        cherokee_cache_clean_up (CACHE(cache)); 
     111        cherokee_cache_table_mrproper (cache); 
     112 
     113        return ret_ok; 
     114} 
     115 
     116int  
     117test_file() 
    33118{ 
    34119        ret_t                      ret; 
     
    37122        cherokee_cache_obj_file_t *obj; 
    38123        cherokee_buffer_t          name; 
    39  
     124  
    40125        cherokee_buffer_init (&name); 
    41126        cherokee_cache_file_init (&cache); 
    42  
    43       /* Store some stuff  
    44        */ 
     127  
     128      /* Store some stuff  
     129       */ 
    45130        for (i=0; i<NUM_OBJS; i++) {     
    46131                cherokee_cache_obj_file_new (&obj); 
    47  
     132  
    48133                /* Set the filename 
    49134                 */ 
     
    59144                        return -1; 
    60145                } 
    61       } 
    62  
     146      } 
     147  
    63148        /* Remove a few objects  
    64149         */