]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/sendmail/libsm/t-memstat.c
This commit was generated by cvs2svn to compensate for changes in r157181,
[FreeBSD/FreeBSD.git] / contrib / sendmail / libsm / t-memstat.c
1 /*
2  * Copyright (c) 2005 Sendmail, Inc. and its suppliers.
3  *      All rights reserved.
4  *
5  * By using this file, you agree to the terms and conditions set
6  * forth in the LICENSE file which can be found at the top level of
7  * the sendmail distribution.
8  */
9
10 #include <sm/gen.h>
11 SM_IDSTR(id, "@(#)$Id: t-memstat.c,v 1.5 2005/12/22 19:05:42 ca Exp $")
12
13 /*
14 ** Simple test program for memstat
15 */
16
17 #include <stdlib.h>
18 #include <unistd.h>
19 #include <stdio.h>
20 #include <strings.h>
21
22 int
23 main(argc, argv)
24         int argc;
25         char **argv;
26 {
27         int r, r2, i, l, slp, sz;
28         long v;
29         char *resource;
30
31         l = 1;
32         sz = slp = 0;
33         resource = NULL;
34         while ((r = getopt(argc, argv, "l:m:r:s:")) != -1)
35         {
36                 switch ((char) r)
37                 {
38                   case 'l':
39                         l = strtol(optarg, NULL, 0);
40                         break;
41
42                   case 'm':
43                         sz = strtol(optarg, NULL, 0);
44                         break;
45
46                   case 'r':
47                         resource = strdup(optarg);
48                         break;
49
50                   case 's':
51                         slp = strtol(optarg, NULL, 0);
52                         break;
53
54                   default:
55                         break;
56                 }
57         }
58
59         r = sm_memstat_open();
60         r2 = -1;
61         for (i = 0; i < l; i++)
62         {
63                 char *mem;
64
65                 r2 = sm_memstat_get(resource, &v);
66                 if (slp > 0 && i + 1 < l && 0 == r)
67                 {
68                         printf("open=%d, memstat=%d, %s=%ld\n", r, r2,
69                                 resource != NULL ? resource : "default-value",
70                                 v);
71                         sleep(slp);
72                         if (sz > 0)
73                         {
74                                 /*
75                                 **  Just allocate some memory to test the
76                                 **  values that are returned.
77                                 **  Note: this is a memory leak, but that
78                                 **  doesn't matter here.
79                                 */
80
81                                 mem = malloc(sz);
82                                 if (NULL == mem)
83                                         printf("malloc(%d) failed\n", sz);
84                         }
85                 }
86         }
87         printf("open=%d, memstat=%d, %s=%ld\n", r, r2,
88                 resource != NULL ? resource : "default-value", v);
89         r = sm_memstat_close();
90         return r;
91 }