Knight KE / Mbed OS Game_Master
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers asynchronous_dns_simultaneous_repeat.cpp Source File

asynchronous_dns_simultaneous_repeat.cpp

00001 /*
00002  * Copyright (c) 2018, ARM Limited, All Rights Reserved
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License"); you may
00006  * not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  * http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00013  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #include "mbed.h"
00019 #include "greentea-client/test_env.h"
00020 #include "unity.h"
00021 #include "utest.h"
00022 #include "dns_tests.h"
00023 
00024 using namespace utest::v1;
00025 
00026 namespace {
00027 int result_ok;
00028 int result_no_mem;
00029 int result_dns_failure;
00030 int result_exp_timeout;
00031 }
00032 
00033 void ASYNCHRONOUS_DNS_SIMULTANEOUS_REPEAT()
00034 {
00035 
00036     for (int i = 0; i < 100; i++) {
00037         do_asynchronous_gethostbyname(dns_test_hosts, MBED_CONF_APP_DNS_SIMULT_QUERIES + 1, &result_ok, &result_no_mem,
00038                                       &result_dns_failure, &result_exp_timeout);
00039 
00040         // For 1st round can fail to no memory, on other rounds some of the addresses are found from cache
00041         TEST_ASSERT(result_ok == MBED_CONF_APP_DNS_SIMULT_QUERIES || result_ok == MBED_CONF_APP_DNS_SIMULT_QUERIES + 1);
00042         TEST_ASSERT(result_no_mem == 1 || result_no_mem == 0); // last query fails for 1st round to no memory as expected
00043         TEST_ASSERT(result_dns_failure == 0);
00044         TEST_ASSERT(result_exp_timeout == 0);
00045     }
00046 }