ikev2: add support for custom ipsec-over-udp port
[vpp.git] / src / vppinfra / test_pool_iterate.c
1 /*
2   Copyright (c) 2011 Cisco and/or its affiliates.
3
4   * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16
17 #include <vppinfra/mem.h>
18 #include <vppinfra/pool.h>
19
20 #ifdef __KERNEL__
21 #include <linux/unistd.h>
22 #else
23 #include <unistd.h>
24 #endif
25
26 int
27 main (int argc, char *argv[])
28 {
29   int i;
30   uword next;
31   u32 last_len = 0;
32   u32 *tp = 0;
33   u32 *junk;
34
35   clib_mem_init (0, 64ULL << 20);
36
37   for (i = 0; i < 70; i++)
38     {
39       pool_get (tp, junk);
40       if (vec_len (tp) > last_len)
41         {
42           last_len = vec_len (tp);
43           fformat (stdout, "vec_len (tp) now %d\n", last_len);
44         }
45     }
46
47   (void) junk;                  /* compiler warning */
48
49   pool_put_index (tp, 1);
50   pool_put_index (tp, 65);
51
52   for (i = 0; i < 70; i++)
53     {
54       int is_free;
55
56       is_free = pool_is_free_index (tp, i);
57
58       if (is_free == 0)
59         {
60           if (i == 1 || i == 65)
61             clib_warning ("oops, free index %d reported busy", i);
62         }
63       else
64         {
65           if (i != 1 && i != 65)
66             clib_warning ("oops, busy index %d reported free", i);
67         }
68     }
69
70   fformat (stdout, "vec_len (tp) is %d\n", vec_len (tp));
71
72   next = ~0;
73   do
74     {
75       next = pool_next_index (tp, next);
76       fformat (stdout, "next index %d\n", next);
77     }
78   while (next != ~0);
79
80   /* *INDENT-OFF* */
81   pool_foreach (junk, tp,
82   ({
83     int is_free;
84
85     is_free = pool_is_free_index (tp, junk - tp);
86       if (is_free == 0)
87         {
88           if (i == 1 || i == 65)
89             clib_warning ("oops, free index %d reported busy", i);
90         }
91       else
92         {
93           if (i != 1 && i != 65)
94             clib_warning ("oops, busy index %d reported free", i);
95         }
96   }));
97   /* *INDENT-ON* */
98
99   return 0;
100 }
101
102 /*
103  * fd.io coding-style-patch-verification: ON
104  *
105  * Local Variables:
106  * eval: (c-set-style "gnu")
107  * End:
108  */