blob: ad3ea37a903d3a8126d974952f35f71215298a9e [file] [log] [blame]
Ed Warnickecb9cada2015-12-08 15:45:58 -07001/*
2 Copyright (c) 2014 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/macros.h>
18
Dave Barach961e3c82020-06-18 17:04:18 -040019clib_macro_main_t clib_macro_main;
Ed Warnickecb9cada2015-12-08 15:45:58 -070020
Dave Barachc3799992016-08-15 11:12:27 -040021int
22test_macros_main (unformat_input_t * input)
Ed Warnickecb9cada2015-12-08 15:45:58 -070023{
Dave Barach961e3c82020-06-18 17:04:18 -040024 clib_macro_main_t *mm = &clib_macro_main;
Ed Warnickecb9cada2015-12-08 15:45:58 -070025
Dave Barachc3799992016-08-15 11:12:27 -040026 clib_macro_init (mm);
Ed Warnickecb9cada2015-12-08 15:45:58 -070027
Dave Barachc3799992016-08-15 11:12:27 -040028 fformat (stdout, "hostname: %s\n",
Ole Troan73710c72018-06-04 22:27:49 +020029 clib_macro_eval_dollar (mm, (i8 *) "hostname", 1 /* complain */ ));
Ed Warnickecb9cada2015-12-08 15:45:58 -070030
31 clib_macro_set_value (mm, "foo", "this is foo which contains $(bar)");
32 clib_macro_set_value (mm, "bar", "bar");
33
34 fformat (stdout, "evaluate: %s\n",
Dave Barach17c45312020-06-23 17:36:12 -040035 clib_macro_eval (mm, (i8 *) "returns '$(foo)'", 1 /* complain */ ,
36 0 /* recursion_level */ ,
37 8 /* max recursion level */ ));
Ed Warnickecb9cada2015-12-08 15:45:58 -070038
39 clib_macro_free (mm);
40
41 return 0;
42}
43
44#ifdef CLIB_UNIX
Dave Barachc3799992016-08-15 11:12:27 -040045int
46main (int argc, char *argv[])
Ed Warnickecb9cada2015-12-08 15:45:58 -070047{
48 unformat_input_t i;
49 int ret;
50
Damjan Marion4dffd1c2018-09-03 12:30:36 +020051 clib_mem_init (0, 64ULL << 20);
52
Ed Warnickecb9cada2015-12-08 15:45:58 -070053 unformat_init_command_line (&i, argv);
54 ret = test_macros_main (&i);
55 unformat_free (&i);
56
57 return ret;
58}
59#endif /* CLIB_UNIX */
60
Dave Barachc3799992016-08-15 11:12:27 -040061
62/*
63 * fd.io coding-style-patch-verification: ON
64 *
65 * Local Variables:
66 * eval: (c-set-style "gnu")
67 * End:
68 */