14e4196cbSGregory Neil Shapiro /* 2af9557fdSGregory Neil Shapiro * Copyright (c) 2005, 2006 Sendmail, Inc. and its suppliers. 34e4196cbSGregory Neil Shapiro * All rights reserved. 44e4196cbSGregory Neil Shapiro * 54e4196cbSGregory Neil Shapiro * By using this file, you agree to the terms and conditions set 64e4196cbSGregory Neil Shapiro * forth in the LICENSE file which can be found at the top level of 74e4196cbSGregory Neil Shapiro * the sendmail distribution. 84e4196cbSGregory Neil Shapiro */ 94e4196cbSGregory Neil Shapiro 104e4196cbSGregory Neil Shapiro #include <sm/gen.h> 11af9557fdSGregory Neil Shapiro SM_IDSTR(id, "@(#)$Id: t-memstat.c,v 1.6 2006/03/27 22:34:47 ca Exp $") 124e4196cbSGregory Neil Shapiro 134e4196cbSGregory Neil Shapiro /* 144e4196cbSGregory Neil Shapiro ** Simple test program for memstat 154e4196cbSGregory Neil Shapiro */ 164e4196cbSGregory Neil Shapiro 174e4196cbSGregory Neil Shapiro #include <stdlib.h> 184e4196cbSGregory Neil Shapiro #include <unistd.h> 194e4196cbSGregory Neil Shapiro #include <stdio.h> 204e4196cbSGregory Neil Shapiro #include <strings.h> 21af9557fdSGregory Neil Shapiro #include <string.h> 22af9557fdSGregory Neil Shapiro 23af9557fdSGregory Neil Shapiro extern char *optarg; 24af9557fdSGregory Neil Shapiro extern int optind; 254e4196cbSGregory Neil Shapiro 264e4196cbSGregory Neil Shapiro int 274e4196cbSGregory Neil Shapiro main(argc, argv) 284e4196cbSGregory Neil Shapiro int argc; 294e4196cbSGregory Neil Shapiro char **argv; 304e4196cbSGregory Neil Shapiro { 314e4196cbSGregory Neil Shapiro int r, r2, i, l, slp, sz; 324e4196cbSGregory Neil Shapiro long v; 334e4196cbSGregory Neil Shapiro char *resource; 344e4196cbSGregory Neil Shapiro 354e4196cbSGregory Neil Shapiro l = 1; 364e4196cbSGregory Neil Shapiro sz = slp = 0; 374e4196cbSGregory Neil Shapiro resource = NULL; 384e4196cbSGregory Neil Shapiro while ((r = getopt(argc, argv, "l:m:r:s:")) != -1) 394e4196cbSGregory Neil Shapiro { 404e4196cbSGregory Neil Shapiro switch ((char) r) 414e4196cbSGregory Neil Shapiro { 424e4196cbSGregory Neil Shapiro case 'l': 434e4196cbSGregory Neil Shapiro l = strtol(optarg, NULL, 0); 444e4196cbSGregory Neil Shapiro break; 454e4196cbSGregory Neil Shapiro 464e4196cbSGregory Neil Shapiro case 'm': 474e4196cbSGregory Neil Shapiro sz = strtol(optarg, NULL, 0); 484e4196cbSGregory Neil Shapiro break; 494e4196cbSGregory Neil Shapiro 504e4196cbSGregory Neil Shapiro case 'r': 514e4196cbSGregory Neil Shapiro resource = strdup(optarg); 524e4196cbSGregory Neil Shapiro break; 534e4196cbSGregory Neil Shapiro 544e4196cbSGregory Neil Shapiro case 's': 554e4196cbSGregory Neil Shapiro slp = strtol(optarg, NULL, 0); 564e4196cbSGregory Neil Shapiro break; 574e4196cbSGregory Neil Shapiro 584e4196cbSGregory Neil Shapiro default: 594e4196cbSGregory Neil Shapiro break; 604e4196cbSGregory Neil Shapiro } 614e4196cbSGregory Neil Shapiro } 624e4196cbSGregory Neil Shapiro 634e4196cbSGregory Neil Shapiro r = sm_memstat_open(); 644e4196cbSGregory Neil Shapiro r2 = -1; 654e4196cbSGregory Neil Shapiro for (i = 0; i < l; i++) 664e4196cbSGregory Neil Shapiro { 674e4196cbSGregory Neil Shapiro char *mem; 684e4196cbSGregory Neil Shapiro 694e4196cbSGregory Neil Shapiro r2 = sm_memstat_get(resource, &v); 704e4196cbSGregory Neil Shapiro if (slp > 0 && i + 1 < l && 0 == r) 714e4196cbSGregory Neil Shapiro { 724e4196cbSGregory Neil Shapiro printf("open=%d, memstat=%d, %s=%ld\n", r, r2, 734e4196cbSGregory Neil Shapiro resource != NULL ? resource : "default-value", 744e4196cbSGregory Neil Shapiro v); 754e4196cbSGregory Neil Shapiro sleep(slp); 764e4196cbSGregory Neil Shapiro if (sz > 0) 774e4196cbSGregory Neil Shapiro { 784e4196cbSGregory Neil Shapiro /* 794e4196cbSGregory Neil Shapiro ** Just allocate some memory to test the 804e4196cbSGregory Neil Shapiro ** values that are returned. 814e4196cbSGregory Neil Shapiro ** Note: this is a memory leak, but that 824e4196cbSGregory Neil Shapiro ** doesn't matter here. 834e4196cbSGregory Neil Shapiro */ 844e4196cbSGregory Neil Shapiro 854e4196cbSGregory Neil Shapiro mem = malloc(sz); 864e4196cbSGregory Neil Shapiro if (NULL == mem) 874e4196cbSGregory Neil Shapiro printf("malloc(%d) failed\n", sz); 884e4196cbSGregory Neil Shapiro } 894e4196cbSGregory Neil Shapiro } 904e4196cbSGregory Neil Shapiro } 914e4196cbSGregory Neil Shapiro printf("open=%d, memstat=%d, %s=%ld\n", r, r2, 924e4196cbSGregory Neil Shapiro resource != NULL ? resource : "default-value", v); 934e4196cbSGregory Neil Shapiro r = sm_memstat_close(); 944e4196cbSGregory Neil Shapiro return r; 954e4196cbSGregory Neil Shapiro } 96