summaryrefslogtreecommitdiffstats
path: root/src/vat/api_format.c
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2017-10-17 13:13:42 -0400
committerDave Barach <dave@barachs.net>2017-10-17 15:19:22 -0400
commitb9f2cf0bff89ccf5c88072213a25efb65fb5516e (patch)
tree1f34f55543b5dfeaf5edd199ca7587121188534a /src/vat/api_format.c
parenta3db0782d4c069733fa2e3ac1763efd4499b1de7 (diff)
VPP-1032: fix coverity warnings
Change-Id: Ic3a0c51e5408921051deaf2e50372d9654574b27 Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'src/vat/api_format.c')
-rw-r--r--src/vat/api_format.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/vat/api_format.c b/src/vat/api_format.c
index e7382c29720..24b6fb06a3a 100644
--- a/src/vat/api_format.c
+++ b/src/vat/api_format.c
@@ -2137,6 +2137,7 @@ static void vl_api_memfd_segment_create_reply_t_handler
vam->client_index_invalid = 1;
+ /* Note: this closes memfd.fd */
retval = memfd_slave_init (&memfd);
if (retval)
clib_warning ("WARNING: segment map returned %d", retval);
@@ -2152,8 +2153,6 @@ static void vl_api_memfd_segment_create_reply_t_handler
vl_client_connect_to_vlib_no_map ("pvt",
"vpp_api_test(p)",
32 /* input_queue_length */ );
- if (close (my_fd) < 0)
- clib_unix_warning ("close memfd fd pivot");
vam->vl_input_queue = am->shmem_hdr->vl_input_queue;
vl_socket_client_enable_disable (&vam->socket_client_main,
@@ -20918,16 +20917,12 @@ api_app_namespace_add_del (vat_main_t * vam)
static int
api_memfd_segment_create (vat_main_t * vam)
{
+#if VPP_API_TEST_BUILTIN == 0
unformat_input_t *i = vam->input;
vl_api_memfd_segment_create_t *mp;
u64 size = 64 << 20;
int ret;
-#if VPP_API_TEST_BUILTIN == 1
- errmsg ("memfd_segment_create (builtin) not supported");
- return -99;
-#endif
-
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
{
if (unformat (i, "size %U", unformat_memory_size, &size))
@@ -20941,6 +20936,11 @@ api_memfd_segment_create (vat_main_t * vam)
S (mp);
W (ret);
return ret;
+
+#else
+ errmsg ("memfd_segment_create (builtin) not supported");
+ return -99;
+#endif
}
static int
'#n16'>16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
# Copyright (c) 2016 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

*** Variables***
| ${interface}= | ${node['interfaces']['port1']['name']}

*** Settings ***
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/honeycomb/nat.robot
| Resource | resources/libraries/robot/honeycomb/honeycomb.robot
| Variables | resources/test_data/honeycomb/nat.py | ${node} | ${interface}
| Documentation | *Honeycomb NAT test suite.*
| Suite Teardown | Run Keyword If Any Tests Failed
| ... | Restart Honeycomb and VPP | ${node}
| Force Tags | honeycomb_sanity | honeycomb_odl

*** Test Cases ***
| TC01: Honeycomb configures NAT entry
| | [Documentation] | Honeycomb configures a static NAT entry.
| | Given NAT configuration from Honeycomb should be empty
| | ... | ${node} | ${nat_empty}
| | When Honeycomb Configures NAT Entry | ${node} | ${entry1}
| | Then NAT Entries From Honeycomb Should Be | ${node} | ${entry1}
| | And NAT Entries From VAT Should Be | ${node} | ${entry1_vat}

| TC02: Honeycomb removes NAT entry
| | [Documentation] | Honeycomb removes a configured static NAT entry.
| | Given NAT Entries From Honeycomb Should Be | ${node} | ${entry1}
| | And NAT Entries From VAT Should Be | ${node} | ${entry1_vat}
| | When Honeycomb Configures NAT Entry | ${node} | ${NONE}
| | Then NAT configuration from Honeycomb should be empty
| | ... | ${node} | ${nat_empty}

| TC03: Honeycomb configures multiple NAT entries
| | [Documentation] | Honeycomb configures two static NAT entries.
| | [Teardown] | Honeycomb Configures NAT Entry | ${node} | ${NONE}
| | Given NAT configuration from Honeycomb should be empty
| | ... | ${node} | ${nat_empty}
| | When Honeycomb Configures NAT Entry | ${node} | ${entry1} | ${0} | ${1}
| | And Honeycomb Configures NAT Entry | ${node} | ${entry2} | ${0} | ${2}
| | Then NAT Entries From Honeycomb Should Be
| | ... | ${node} | ${entry1_2_oper} | ${0}
| | And NAT Entries From VAT Should Be | ${node} | ${entry1_2_vat}

| TC04: Honeycomb enables NAT on interface - inbound
| | [Documentation] | Honeycomb configures NAT on an interface\
| | ... | in inbound direction.
| | Given NAT Interface Configuration From Honeycomb Should Be Empty
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From Honeycomb Should Be Empty
| | ... | ${node} | ${interface} | outbound
| | When Honeycomb Configures NAT On Interface
| | ... | ${node} | ${interface} | inbound
| | Then NAT Interface Configuration From Honeycomb Should Be
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From VAT Should Be
| | ... | ${node} | ${nat_interface_vat_in}
| | And NAT Interface Configuration From Honeycomb Should be empty
| | ... | ${node} | ${interface} | outbound

| TC05: Honeycomb removes NAT interface configuration
| | [Documentation] | Honeycomb removes NAT configuration from an interface.
| | Given NAT Interface Configuration From Honeycomb Should Be
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | outbound
| | When Honeycomb removes NAT interface configuration
| | ... | ${node} | ${interface} | inbound
| | Then NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | outbound

| TC06: Honeycomb enables NAT on interface - outbound
| | [Documentation] | Honeycomb configures NAT on an interface\
| | ... | in outbound direction.
| | [Teardown] | Honeycomb removes NAT interface configuration
| | ... | ${node} | ${interface} | outbound
| | Given NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | outbound
| | When Honeycomb Configures NAT on Interface
| | ... | ${node} | ${interface} | outbound
| | Then NAT Interface Configuration From Honeycomb Should Be empty
| | ... | ${node} | ${interface} | inbound
| | And NAT Interface Configuration From Honeycomb Should Be
| | ... | ${node} | ${interface} | outbound
| | And NAT Interface Configuration From VAT Should Be
| | ... | ${node} | ${nat_interface_vat_out}