[memcached] bradfitz, r373: make memcached reports its pointer size, ...

commits at code.sixapart.com commits at code.sixapart.com
Tue Sep 5 18:48:38 UTC 2006


make memcached reports its pointer size, so test suite needs less overflow guesswork

U   trunk/server/memcached.c
U   trunk/server/t/64bit.t


Modified: trunk/server/memcached.c
===================================================================
--- trunk/server/memcached.c	2006-09-05 05:59:43 UTC (rev 372)
+++ trunk/server/memcached.c	2006-09-05 18:48:38 UTC (rev 373)
@@ -655,6 +655,7 @@
         pos += sprintf(pos, "STAT uptime %u\r\n", now);
         pos += sprintf(pos, "STAT time %ld\r\n", now + stats.started);
         pos += sprintf(pos, "STAT version " VERSION "\r\n");
+        pos += sprintf(pos, "STAT pointer_size %d\r\n", 8 * sizeof(void*));
         pos += sprintf(pos, "STAT rusage_user %ld.%06ld\r\n", usage.ru_utime.tv_sec, usage.ru_utime.tv_usec);
         pos += sprintf(pos, "STAT rusage_system %ld.%06ld\r\n", usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
         pos += sprintf(pos, "STAT curr_items %u\r\n", stats.curr_items);

Modified: trunk/server/t/64bit.t
===================================================================
--- trunk/server/t/64bit.t	2006-09-05 05:59:43 UTC (rev 372)
+++ trunk/server/t/64bit.t	2006-09-05 18:48:38 UTC (rev 373)
@@ -11,44 +11,25 @@
 
 my $server = new_memcached("-m 4097 -M");
 my $sock = $server->sock;
-my %slabs;
-my %stats;
 
-my $get_slabs = sub{
-    print $sock "stats slabs\r\n";
-    while (<$sock>) {
-        last if /^(\.|END)/;
-        /^STAT (\S+) (\d+)/;
-        #print " slabs: $_";
-        $slabs{$1} = $2;
-    }
-};
+my ($stats, $slabs) = @_;
 
-my $get_stats = sub{
-    print $sock "stats\r\n";
-    while (<$sock>) {
-        last if /^(\.|END)/;
-        /^STAT (\S+) (\d+)/;
-        #print " stats ($1) = ($2)\n";
-        $stats{$1} = $2;
-    }
-};
+$stats = mem_stats($sock);
 
-$get_slabs->();
-$get_stats->();
-
-if ($slabs{'total_malloced'} eq "32" || $slabs{'total_malloced'} eq "2147483647") {
+if ($stats->{'pointer_size'} eq "32") {
     plan skip_all => 'Skipping 64-bit tests on 32-bit build';
     exit 0;
 } else {
     plan tests => 6;
 }
 
-ok(1, "is 64 bit");
-is($stats{'limit_maxbytes'}, "4296015872", "max bytes is 4097 MB");
-is($slabs{'total_malloced'}, "4294967328", "expected (faked) value of total_malloced");
-is($slabs{'active_slabs'}, 0, "no active slabs");
+is($stats->{'pointer_size'}, 64, "is 64 bit");
+is($stats->{'limit_maxbytes'}, "4296015872", "max bytes is 4097 MB");
 
+$slabs = mem_stats($sock, 'slabs');
+is($slabs->{'total_malloced'}, "4294967328", "expected (faked) value of total_malloced");
+is($slabs->{'active_slabs'}, 0, "no active slabs");
+
 my $hit_limit = 0;
 for (1..3) {
     my $size = 400 * 1024;
@@ -59,5 +40,5 @@
 }
 ok($hit_limit, "hit size limit");
 
-$get_slabs->();
-is($slabs{'active_slabs'}, 1, "1 active slab");
+$slabs = mem_stats($sock, 'slabs');
+is($slabs->{'active_slabs'}, 1, "1 active slab");




More information about the memcached-commits mailing list