Changeset 858


Ignore:
Timestamp:
2012-03-28T15:01:47+02:00 (3 years ago)
Author:
moo
Message:

var set/get/inc/dec tests

Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile.frag

    r831 r858  
    4343xcachetest: all 
    4444    $(SED) "s#\\./modules/#$(top_builddir)/modules/#" < $(srcdir)/xcache-test.ini > $(top_builddir)/tmp-php.ini 
    45     CC="$(CC)" \ 
    46         $(srcdir)/run-xcachetest $(TESTS) $(TEST_ARGS) -c $(top_builddir)/tmp-php.ini 
     45    TEST_PHP_SRCDIR=$(srcdir) $(srcdir)/run-xcachetest $(TESTS) $(TEST_ARGS) -c $(top_builddir)/tmp-php.ini 
     46    $(srcdir)/run-xcachetest $(TESTS) $(TEST_ARGS) -c $(top_builddir)/tmp-php.ini 
  • trunk/run-xcachetest

    r831 r858  
    2020fi 
    2121 
    22 test -z "$PHP_SRC" && PHP_SRC=`getAbsolutePath ./php-src` 
    23  
    2422TEST_PHP_EXECUTABLE="$php_cli" 
    2523TEST_PHP_CGI_EXECUTABLE="$php_cgi" 
    26 TEST_PHP_SRCDIR="$PHP_SRC" 
     24test -z "$TEST_PHP_SRCDIR" && TEST_PHP_SRCDIR=`getAbsolutePath ./php-src` 
    2725 
    2826export TEST_PHP_EXECUTABLE 
  • trunk/xcache.c

    r857 r858  
    338338                    xc_entry_php_t *xce_php = (xc_entry_php_t *) xce; 
    339339                    fresh = p_php->file_mtime == xce_php->file_mtime && p_php->php->file_size == xce_php->php->file_size; 
    340                     break; 
    341340                } 
     341                break; 
    342342 
    343343            case XC_TYPE_VAR: 
    344                 fresh = 1; 
     344                { 
     345                    fresh = !VAR_ENTRY_EXPIRED(p); 
     346                } 
    345347                break; 
    346348 
     
    26882690    xc_entry_var_t xce, *stored_xce; 
    26892691    zval *name; 
    2690     int found = 0; 
    26912692 
    26922693    if (!xc_var_caches) { 
     
    27022703 
    27032704    ENTER_LOCK(cache) { 
    2704         stored_xce = (xc_entry_var_t *) xc_entry_find_dmz(XC_TYPE_VAR, cache, entry_hash.cacheslotid, (xc_entry_t *) &xce TSRMLS_CC); 
     2705        stored_xce = (xc_entry_var_t *) xc_entry_find_dmz(XC_TYPE_VAR, cache, entry_hash.entryslotid, (xc_entry_t *) &xce TSRMLS_CC); 
    27052706        if (stored_xce) { 
    2706             if (!VAR_ENTRY_EXPIRED(&stored_xce->entry)) { 
    2707                 found = 1; 
    2708                 xc_processor_restore_zval(return_value, stored_xce->value, stored_xce->have_references TSRMLS_CC); 
    2709                 /* return */ 
    2710                 break; 
    2711             } 
    2712             else { 
    2713                 xc_entry_remove_dmz(XC_TYPE_VAR, cache, entry_hash.cacheslotid, (xc_entry_t *) stored_xce TSRMLS_CC); 
    2714             } 
    2715         } 
    2716  
    2717         RETVAL_NULL(); 
     2707            /* return */ 
     2708            xc_processor_restore_zval(return_value, stored_xce->value, stored_xce->have_references TSRMLS_CC); 
     2709            xc_cache_hit_dmz(cache TSRMLS_CC); 
     2710        } 
     2711        else { 
     2712            RETVAL_NULL(); 
     2713            cache->misses ++; 
     2714        } 
    27182715    } LEAVE_LOCK(cache); 
    2719     if (found) { 
    2720         xc_cache_hit_dmz(cache TSRMLS_CC); 
    2721     } 
    2722     else { 
    2723         cache->misses ++; 
    2724     } 
    27252716} 
    27262717/* }}} */ 
     
    27712762    xc_entry_var_t xce, *stored_xce; 
    27722763    zval *name; 
    2773     int found = 0; 
    27742764 
    27752765    if (!xc_var_caches) { 
     
    27872777        stored_xce = (xc_entry_var_t *) xc_entry_find_dmz(XC_TYPE_VAR, cache, entry_hash.entryslotid, (xc_entry_t *) &xce TSRMLS_CC); 
    27882778        if (stored_xce) { 
    2789             if (!VAR_ENTRY_EXPIRED(&stored_xce->entry)) { 
    2790                 found = 1; 
    2791                 RETVAL_TRUE; 
    2792                 /* return */ 
    2793                 break; 
    2794             } 
    2795             else { 
    2796                 xc_entry_remove_dmz(XC_TYPE_VAR, cache, entry_hash.entryslotid, (xc_entry_t *) stored_xce TSRMLS_CC); 
    2797             } 
    2798         } 
    2799  
    2800         RETVAL_FALSE; 
     2779            xc_cache_hit_dmz(cache TSRMLS_CC); 
     2780            RETVAL_TRUE; 
     2781            /* return */ 
     2782        } 
     2783        else { 
     2784            RETVAL_FALSE; 
     2785        } 
     2786 
    28012787    } LEAVE_LOCK(cache); 
    2802     if (found) { 
    2803         xc_cache_hit_dmz(cache TSRMLS_CC); 
    2804     } 
    2805     else { 
    2806         cache->misses ++; 
    2807     } 
    28082788} 
    28092789/* }}} */ 
     
    29022882 
    29032883    ENTER_LOCK(cache) { 
    2904         stored_xce = (xc_entry_var_t *) xc_entry_find_dmz(XC_TYPE_VAR, cache, entry_hash.cacheslotid, (xc_entry_t *) &xce TSRMLS_CC); 
     2884        stored_xce = (xc_entry_var_t *) xc_entry_find_dmz(XC_TYPE_VAR, cache, entry_hash.entryslotid, (xc_entry_t *) &xce TSRMLS_CC); 
    29052885        if (stored_xce) { 
    29062886            TRACE("incdec: gotxce %s", xce.entry.name.str.val); 
    2907             /* timeout */ 
    2908             if (VAR_ENTRY_EXPIRED(&(stored_xce->entry))) { 
    2909                 TRACE("%s", "incdec: expired"); 
    2910                 xc_entry_remove_dmz(XC_TYPE_VAR, cache, entry_hash.cacheslotid, (xc_entry_t *) stored_xce TSRMLS_CC); 
    2911                 stored_xce = NULL; 
    2912             } 
    2913             else { 
    2914                 /* do it in place */ 
    2915                 if (Z_TYPE_P(stored_xce->value) == IS_LONG) { 
    2916                     zval *zv; 
    2917                     stored_xce->entry.ctime = XG(request_time); 
    2918                     stored_xce->entry.ttl   = xce.entry.ttl; 
    2919                     TRACE("%s", "incdec: islong"); 
    2920                     value = Z_LVAL_P(stored_xce->value); 
    2921                     value += (inc == 1 ? count : - count); 
    2922                     RETVAL_LONG(value); 
    2923  
    2924                     zv = (zval *) cache->shm->handlers->to_readwrite(cache->shm, (char *) stored_xce->value); 
    2925                     Z_LVAL_P(zv) = value; 
    2926                     break; /* leave lock */ 
    2927                 } 
    2928                 else { 
    2929                     TRACE("%s", "incdec: notlong"); 
    2930                     xc_processor_restore_zval(&oldzval, stored_xce->value, stored_xce->have_references TSRMLS_CC); 
    2931                     convert_to_long(&oldzval); 
    2932                     value = Z_LVAL(oldzval); 
    2933                     zval_dtor(&oldzval); 
    2934                 } 
    2935             } 
     2887            /* do it in place */ 
     2888            if (Z_TYPE_P(stored_xce->value) == IS_LONG) { 
     2889                zval *zv; 
     2890                stored_xce->entry.ctime = XG(request_time); 
     2891                stored_xce->entry.ttl   = xce.entry.ttl; 
     2892                TRACE("%s", "incdec: islong"); 
     2893                value = Z_LVAL_P(stored_xce->value); 
     2894                value += (inc == 1 ? count : - count); 
     2895                RETVAL_LONG(value); 
     2896 
     2897                zv = (zval *) cache->shm->handlers->to_readwrite(cache->shm, (char *) stored_xce->value); 
     2898                Z_LVAL_P(zv) = value; 
     2899                break; /* leave lock */ 
     2900            } 
     2901 
     2902            TRACE("%s", "incdec: notlong"); 
     2903            xc_processor_restore_zval(&oldzval, stored_xce->value, stored_xce->have_references TSRMLS_CC); 
     2904            convert_to_long(&oldzval); 
     2905            value = Z_LVAL(oldzval); 
     2906            zval_dtor(&oldzval); 
    29362907        } 
    29372908        else { 
     
    29412912        value += (inc == 1 ? count : - count); 
    29422913        RETVAL_LONG(value); 
    2943         stored_xce->value = return_value; 
     2914        xce.value = return_value; 
    29442915 
    29452916        if (stored_xce) { 
Note: See TracChangeset for help on using the changeset viewer.