blob: f130604d691b977b2f99e1bbb0a6acbedea1acc4 [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",
Ole Troan73710c72018-06-04 22:27:49 +020035 clib_macro_eval (mm, (i8 *) "returns '$(foo)'",
36 1 /* complain */ ));
Ed Warnickecb9cada2015-12-08 15:45:58 -070037
38 clib_macro_free (mm);
39
40 return 0;
41}
42
43#ifdef CLIB_UNIX
Dave Barachc3799992016-08-15 11:12:27 -040044int
45main (int argc, char *argv[])
Ed Warnickecb9cada2015-12-08 15:45:58 -070046{
47 unformat_input_t i;
48 int ret;
49
Damjan Marion4dffd1c2018-09-03 12:30:36 +020050 clib_mem_init (0, 64ULL << 20);
51
Ed Warnickecb9cada2015-12-08 15:45:58 -070052 unformat_init_command_line (&i, argv);
53 ret = test_macros_main (&i);
54 unformat_free (&i);
55
56 return ret;
57}
58#endif /* CLIB_UNIX */
59
Dave Barachc3799992016-08-15 11:12:27 -040060
61/*
62 * fd.io coding-style-patch-verification: ON
63 *
64 * Local Variables:
65 * eval: (c-set-style "gnu")
66 * End:
67 */