Changeset 354

Show
Ignore:
Timestamp:
09/04/06 20:51:37 (4 years ago)
Author:
bradfitz
Message:

more 64 bit tests

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/server/test/64bit.t

    r352 r354  
    77use MemcachedTest; 
    88 
    9 $ENV{T_MEMD_INITIAL_MALLOC} = 4294967328; # 2**32 + 32  :) 
     9$ENV{T_MEMD_INITIAL_MALLOC} = "4294967328"; # 2**32 + 32  :) 
    1010$ENV{T_MEMD_SLABS_ALLOC}    = 0;  # don't preallocate slabs 
    1111 
    12 my $server = new_memcached(); 
     12my $server = new_memcached("-m 4097 -M"); 
    1313my $sock = $server->sock; 
     14my %slabs; 
     15my %stats; 
    1416 
    15 { 
     17my $get_slabs = sub{ 
    1618    print $sock "stats slabs\r\n"; 
    17     my %stats; 
    1819    while (<$sock>) { 
    19         last if /^(\.|END)/; 
    20         /^STAT (\S+) (\d+)/; 
    21         $stats{$1} = $2; 
     20        last if /^(\.|END)/; 
     21        /^STAT (\S+) (\d+)/; 
     22        #print " slabs: $_"; 
     23        $slabs{$1} = $2; 
    2224    } 
    23     if ($stats{'total_malloced'} eq "32") { 
    24         plan skip_all => 'Skipping 64-bit tests on 32-bit build'; 
    25         exit 0; 
    26     } else { 
    27         plan tests => 1; 
     25}; 
     26 
     27my $get_stats = sub{ 
     28    print $sock "stats\r\n"; 
     29    while (<$sock>) { 
     30        last if /^(\.|END)/; 
     31        /^STAT (\S+) (\d+)/; 
     32        #print " stats ($1) = ($2)\n"; 
     33        $stats{$1} = $2; 
    2834    } 
    29     ok(1, "is 64 bit"); 
     35}; 
     36 
     37$get_slabs->(); 
     38$get_stats->(); 
     39 
     40if ($slabs{'total_malloced'} eq "32") { 
     41    plan skip_all => 'Skipping 64-bit tests on 32-bit build'; 
     42    exit 0; 
     43} else { 
     44    plan tests => 6; 
    3045} 
     46 
     47ok(1, "is 64 bit"); 
     48is($stats{'limit_maxbytes'}, "4296015872", "max bytes is 4097 MB"); 
     49is($slabs{'total_malloced'}, "4294967328", "correct value"); 
     50is($slabs{'active_slabs'}, 0, "no active slabs"); 
     51 
     52my $hit_limit = 0; 
     53for (1..3) { 
     54    my $size = 400 * 1024; 
     55    my $data = "a" x $size; 
     56    print $sock "set big$_ 0 0 $size\r\n$data\r\n"; 
     57    my $res = <$sock>; 
     58    $hit_limit = 1 if $res ne "STORED\r\n"; 
     59} 
     60ok($hit_limit, "hit size limit"); 
     61 
     62$get_slabs->(); 
     63is($slabs{'active_slabs'}, 1, "1 active slab");