From 5cd3bd5c4be0d1a63ed45c2dc0499b98daa1a89f Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Sat, 8 Oct 2016 13:15:06 +0800 Subject: [PATCH 01/36] Add data memory for RMT peripheral --- components/esp32/include/soc/rmt_struct.h | 18 ++++++++++++++++++ components/esp32/ld/esp32.peripherals.ld | 1 + 2 files changed, 19 insertions(+) diff --git a/components/esp32/include/soc/rmt_struct.h b/components/esp32/include/soc/rmt_struct.h index 15beb8c6d..fb4c21055 100644 --- a/components/esp32/include/soc/rmt_struct.h +++ b/components/esp32/include/soc/rmt_struct.h @@ -225,4 +225,22 @@ typedef volatile struct { uint32_t date; /*This is the version register.*/ } rmt_dev_t; extern rmt_dev_t RMT; + +//Allow access to RMT memory using RMTMEM.chan[0].data[8] +typedef volatile struct { + struct { + union { + struct { + uint32_t level1: 1; + uint32_t duration1: 15; + uint32_t level0: 1; + uint32_t duration0: 15; + + }; + uint32_t val; + } data[64]; + } chan[8]; +} rmt_mem_t; +extern rmt_mem_t RMTMEM; + #endif /* _SOC_RMT_STRUCT_H_ */ diff --git a/components/esp32/ld/esp32.peripherals.ld b/components/esp32/ld/esp32.peripherals.ld index aaadedce4..95aaadcbc 100644 --- a/components/esp32/ld/esp32.peripherals.ld +++ b/components/esp32/ld/esp32.peripherals.ld @@ -9,6 +9,7 @@ PROVIDE ( UART1 = 0x3ff50000 ); PROVIDE ( I2C0 = 0x3ff53000 ); PROVIDE ( UHCI0 = 0x3ff54000 ); PROVIDE ( RMT = 0x3ff56000 ); +PROVIDE ( RMTMEM = 0x3ff56800 ); PROVIDE ( PCNT = 0x3ff57000 ); PROVIDE ( LEDC = 0x3ff59000 ); PROVIDE ( TIMERG0 = 0x3ff5F000 ); From a03e75d34ccc977ef1d3aa7efb944beee4b6748a Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Sat, 8 Oct 2016 14:11:34 +0800 Subject: [PATCH 02/36] Move heap_alloc_caps.h to a location where it can be included by components --- components/esp32/{ => include}/heap_alloc_caps.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename components/esp32/{ => include}/heap_alloc_caps.h (100%) diff --git a/components/esp32/heap_alloc_caps.h b/components/esp32/include/heap_alloc_caps.h similarity index 100% rename from components/esp32/heap_alloc_caps.h rename to components/esp32/include/heap_alloc_caps.h From 82df5f9aa0c6131cd9b167d5a2501d4f941959b3 Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Sat, 8 Oct 2016 14:12:55 +0800 Subject: [PATCH 03/36] Convert Windows -> Unix line ends in gpio.c --- components/driver/gpio.c | 736 +++++++++++++++++++-------------------- 1 file changed, 368 insertions(+), 368 deletions(-) diff --git a/components/driver/gpio.c b/components/driver/gpio.c index 320533e8d..14dfc00b4 100644 --- a/components/driver/gpio.c +++ b/components/driver/gpio.c @@ -1,368 +1,368 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// 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. -#include -#include "esp_err.h" -#include "esp_intr.h" -#include "freertos/FreeRTOS.h" -#include "freertos/xtensa_api.h" -#include "driver/gpio.h" -#include "soc/soc.h" - -//TODO: move debug options to menuconfig -#define GPIO_DBG_ENABLE (0) -#define GPIO_WARNING_ENABLE (0) -#define GPIO_ERROR_ENABLE (0) -#define GPIO_INFO_ENABLE (0) -//DBG INFOR -#if GPIO_INFO_ENABLE -#define GPIO_INFO ets_printf -#else -#define GPIO_INFO(...) -#endif -#if GPIO_WARNING_ENABLE -#define GPIO_WARNING(format,...) do{\ - ets_printf("[waring][%s#%u]",__FUNCTION__,__LINE__);\ - ets_printf(format,##__VA_ARGS__);\ -}while(0) -#else -#define GPIO_WARNING(...) -#endif -#if GPIO_ERROR_ENABLE -#define GPIO_ERROR(format,...) do{\ - ets_printf("[error][%s#%u]",__FUNCTION__,__LINE__);\ - ets_printf(format,##__VA_ARGS__);\ -}while(0) -#else -#define GPIO_ERROR(...) -#endif - -const uint32_t GPIO_PIN_MUX_REG[GPIO_PIN_COUNT] = { - GPIO_PIN_REG_0, - GPIO_PIN_REG_1, - GPIO_PIN_REG_2, - GPIO_PIN_REG_3, - GPIO_PIN_REG_4, - GPIO_PIN_REG_5, - GPIO_PIN_REG_6, - GPIO_PIN_REG_7, - GPIO_PIN_REG_8, - GPIO_PIN_REG_9, - GPIO_PIN_REG_10, - GPIO_PIN_REG_11, - GPIO_PIN_REG_12, - GPIO_PIN_REG_13, - GPIO_PIN_REG_14, - GPIO_PIN_REG_15, - GPIO_PIN_REG_16, - GPIO_PIN_REG_17, - GPIO_PIN_REG_18, - GPIO_PIN_REG_19, - 0, - GPIO_PIN_REG_21, - GPIO_PIN_REG_22, - GPIO_PIN_REG_23, - 0, - GPIO_PIN_REG_25, - GPIO_PIN_REG_26, - GPIO_PIN_REG_27, - 0, - 0, - 0, - 0, - GPIO_PIN_REG_32, - GPIO_PIN_REG_33, - GPIO_PIN_REG_34, - GPIO_PIN_REG_35, - GPIO_PIN_REG_36, - GPIO_PIN_REG_37, - GPIO_PIN_REG_38, - GPIO_PIN_REG_39 -}; - -static int is_valid_gpio(int gpio_num) -{ - if(gpio_num >= GPIO_PIN_COUNT || GPIO_PIN_MUX_REG[gpio_num] == 0) { - GPIO_ERROR("GPIO io_num=%d does not exist\n",gpio_num); - return 0; - } - return 1; -} - -esp_err_t gpio_set_intr_type(gpio_num_t gpio_num, gpio_int_type_t intr_type) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(intr_type >= GPIO_INTR_MAX) { - GPIO_ERROR("Unknown GPIO intr:%u\n",intr_type); - return ESP_ERR_INVALID_ARG; - } - GPIO.pin[gpio_num].int_type = intr_type; - return ESP_OK; -} - -esp_err_t gpio_intr_enable(gpio_num_t gpio_num) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(xPortGetCoreID() == 0) { - GPIO.pin[gpio_num].int_ena = GPIO_PRO_CPU_INTR_ENA; //enable pro cpu intr - } else { - GPIO.pin[gpio_num].int_ena = GPIO_APP_CPU_INTR_ENA; //enable pro cpu intr - } - return ESP_OK; -} - -esp_err_t gpio_intr_disable(gpio_num_t gpio_num) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - GPIO.pin[gpio_num].int_ena = 0; //disable GPIO intr - return ESP_OK; -} - -static esp_err_t gpio_output_disable(gpio_num_t gpio_num) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(gpio_num < 32) { - GPIO.enable_w1tc = (0x1 << gpio_num); - } else { - GPIO.enable1_w1tc.data = (0x1 << (gpio_num - 32)); - } - return ESP_OK; -} - -static esp_err_t gpio_output_enable(gpio_num_t gpio_num) -{ - if(gpio_num >= 34) { - GPIO_ERROR("io_num=%d can only be input\n",gpio_num); - return ESP_ERR_INVALID_ARG; - } - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(gpio_num < 32) { - GPIO.enable_w1ts = (0x1 << gpio_num); - } else { - GPIO.enable1_w1ts.data = (0x1 << (gpio_num - 32)); - } - return ESP_OK; -} - -esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level) -{ - if(!GPIO_IS_VALID_GPIO(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(level) { - if(gpio_num < 32) { - GPIO.out_w1ts = (1 << gpio_num); - } else { - GPIO.out1_w1ts.data = (1 << (gpio_num - 32)); - } - } else { - if(gpio_num < 32) { - GPIO.out_w1tc = (1 << gpio_num); - } else { - GPIO.out1_w1tc.data = (1 << (gpio_num - 32)); - } - } - return ESP_OK; -} - -int gpio_get_level(gpio_num_t gpio_num) -{ - if(gpio_num < 32) { - return (GPIO.in >> gpio_num) & 0x1; - } else { - return (GPIO.in1.data >> (gpio_num - 32)) & 0x1; - } -} - -esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - esp_err_t ret = ESP_OK; - switch(pull) { - case GPIO_PULLUP_ONLY: - PIN_PULLUP_EN(GPIO_PIN_MUX_REG[gpio_num]); - PIN_PULLDWN_DIS(GPIO_PIN_MUX_REG[gpio_num]); - break; - case GPIO_PULLDOWN_ONLY: - PIN_PULLUP_DIS(GPIO_PIN_MUX_REG[gpio_num]); - PIN_PULLDWN_EN(GPIO_PIN_MUX_REG[gpio_num]); - break; - case GPIO_PULLUP_PULLDOWN: - PIN_PULLUP_EN(GPIO_PIN_MUX_REG[gpio_num]); - PIN_PULLDWN_EN(GPIO_PIN_MUX_REG[gpio_num]); - break; - case GPIO_FLOATING: - PIN_PULLUP_DIS(GPIO_PIN_MUX_REG[gpio_num]); - PIN_PULLDWN_DIS(GPIO_PIN_MUX_REG[gpio_num]); - break; - default: - GPIO_ERROR("Unknown pull up/down mode,gpio_num=%u,pull=%u\n",gpio_num,pull); - ret = ESP_ERR_INVALID_ARG; - break; - } - return ret; -} - -esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - if(gpio_num >= 34 && (mode & (GPIO_MODE_DEF_OUTPUT))) { - GPIO_ERROR("io_num=%d can only be input\n",gpio_num); - return ESP_ERR_INVALID_ARG; - } - esp_err_t ret = ESP_OK; - if(mode & GPIO_MODE_DEF_INPUT) { - PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[gpio_num]); - } else { - PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[gpio_num]); - } - if(mode & GPIO_MODE_DEF_OUTPUT) { - if(gpio_num < 32) { - GPIO.enable_w1ts = (0x1 << gpio_num); - } else { - GPIO.enable1_w1ts.data = (0x1 << (gpio_num - 32)); - } - } else { - if(gpio_num < 32) { - GPIO.enable_w1tc = (0x1 << gpio_num); - } else { - GPIO.enable1_w1tc.data = (0x1 << (gpio_num - 32)); - } - } - if(mode & GPIO_MODE_DEF_OD) { - GPIO.pin[gpio_num].pad_driver = 1; - } else { - GPIO.pin[gpio_num].pad_driver = 0; - } - return ret; -} - -esp_err_t gpio_config(gpio_config_t *pGPIOConfig) -{ - uint64_t gpio_pin_mask = (pGPIOConfig->pin_bit_mask); - uint32_t io_reg = 0; - uint32_t io_num = 0; - uint64_t bit_valid = 0; - if(pGPIOConfig->pin_bit_mask == 0 || pGPIOConfig->pin_bit_mask >= (((uint64_t) 1) << GPIO_PIN_COUNT)) { - GPIO_ERROR("GPIO_PIN mask error \n"); - return ESP_ERR_INVALID_ARG; - } - if((pGPIOConfig->mode) & (GPIO_MODE_DEF_OUTPUT)) { - //GPIO 34/35/36/37/38/39 can only be used as input mode; - if((gpio_pin_mask & ( GPIO_SEL_34 | GPIO_SEL_35 | GPIO_SEL_36 | GPIO_SEL_37 | GPIO_SEL_38 | GPIO_SEL_39))) { - GPIO_ERROR("GPIO34-39 can only be used as input mode\n"); - return ESP_ERR_INVALID_ARG; - } - } - do { - io_reg = GPIO_PIN_MUX_REG[io_num]; - if(((gpio_pin_mask >> io_num) & BIT(0)) && io_reg) { - GPIO_INFO("Gpio%02d |Mode:",io_num); - if((pGPIOConfig->mode) & GPIO_MODE_DEF_INPUT) { - GPIO_INFO("INPUT "); - PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[io_num]); - } else { - PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[io_num]); - } - if((pGPIOConfig->mode) & GPIO_MODE_DEF_OD) { - GPIO_INFO("OD "); - GPIO.pin[io_num].pad_driver = 1; /*0x01 Open-drain */ - } else { - GPIO.pin[io_num].pad_driver = 0; /*0x00 Normal gpio output */ - } - if((pGPIOConfig->mode) & GPIO_MODE_DEF_OUTPUT) { - GPIO_INFO("OUTPUT "); - gpio_output_enable(io_num); - } else { - gpio_output_disable(io_num); - } - GPIO_INFO("|"); - if(pGPIOConfig->pull_up_en) { - GPIO_INFO("PU "); - PIN_PULLUP_EN(io_reg); - } else { - PIN_PULLUP_DIS(io_reg); - } - if(pGPIOConfig->pull_down_en) { - GPIO_INFO("PD "); - PIN_PULLDWN_EN(io_reg); - } else { - PIN_PULLDWN_DIS(io_reg); - } - GPIO_INFO("Intr:%d |\n",pGPIOConfig->intr_type); - gpio_set_intr_type(io_num, pGPIOConfig->intr_type); - if(pGPIOConfig->intr_type) { - gpio_intr_enable(io_num); - } else { - gpio_intr_disable(io_num); - } - PIN_FUNC_SELECT(io_reg, PIN_FUNC_GPIO); /*function number 2 is GPIO_FUNC for each pin */ - } else if(bit_valid && (io_reg == 0)) { - GPIO_WARNING("io_num=%d does not exist\n",io_num); - } - io_num++; - } while(io_num < GPIO_PIN_COUNT); - return ESP_OK; -} - -esp_err_t gpio_isr_register(uint32_t gpio_intr_num, void (*fn)(void*), void * arg) -{ - if(fn == NULL) { - return ESP_ERR_INVALID_ARG; - } - ESP_INTR_DISABLE(gpio_intr_num); - intr_matrix_set(xPortGetCoreID(), ETS_GPIO_INTR_SOURCE, gpio_intr_num); - xt_set_interrupt_handler(gpio_intr_num, fn, arg); - ESP_INTR_ENABLE(gpio_intr_num); - return ESP_OK; -} - -/*only level interrupt can be used for wake-up function*/ -esp_err_t gpio_wakeup_enable(gpio_num_t gpio_num, gpio_int_type_t intr_type) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - esp_err_t ret = ESP_OK; - if((intr_type == GPIO_INTR_LOW_LEVEL) || (intr_type == GPIO_INTR_HIGH_LEVEL)) { - GPIO.pin[gpio_num].int_type = intr_type; - GPIO.pin[gpio_num].wakeup_enable = 0x1; - } else { - GPIO_ERROR("GPIO wakeup only support Level mode,but edge mode set. gpio_num:%u\n",gpio_num); - ret = ESP_ERR_INVALID_ARG; - } - return ret; -} - -esp_err_t gpio_wakeup_disable(gpio_num_t gpio_num) -{ - if(!is_valid_gpio(gpio_num)) { - return ESP_ERR_INVALID_ARG; - } - GPIO.pin[gpio_num].wakeup_enable = 0; - return ESP_OK; -} +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// 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. +#include +#include "esp_err.h" +#include "esp_intr.h" +#include "freertos/FreeRTOS.h" +#include "freertos/xtensa_api.h" +#include "driver/gpio.h" +#include "soc/soc.h" + +//TODO: move debug options to menuconfig +#define GPIO_DBG_ENABLE (0) +#define GPIO_WARNING_ENABLE (0) +#define GPIO_ERROR_ENABLE (0) +#define GPIO_INFO_ENABLE (0) +//DBG INFOR +#if GPIO_INFO_ENABLE +#define GPIO_INFO ets_printf +#else +#define GPIO_INFO(...) +#endif +#if GPIO_WARNING_ENABLE +#define GPIO_WARNING(format,...) do{\ + ets_printf("[waring][%s#%u]",__FUNCTION__,__LINE__);\ + ets_printf(format,##__VA_ARGS__);\ +}while(0) +#else +#define GPIO_WARNING(...) +#endif +#if GPIO_ERROR_ENABLE +#define GPIO_ERROR(format,...) do{\ + ets_printf("[error][%s#%u]",__FUNCTION__,__LINE__);\ + ets_printf(format,##__VA_ARGS__);\ +}while(0) +#else +#define GPIO_ERROR(...) +#endif + +const uint32_t GPIO_PIN_MUX_REG[GPIO_PIN_COUNT] = { + GPIO_PIN_REG_0, + GPIO_PIN_REG_1, + GPIO_PIN_REG_2, + GPIO_PIN_REG_3, + GPIO_PIN_REG_4, + GPIO_PIN_REG_5, + GPIO_PIN_REG_6, + GPIO_PIN_REG_7, + GPIO_PIN_REG_8, + GPIO_PIN_REG_9, + GPIO_PIN_REG_10, + GPIO_PIN_REG_11, + GPIO_PIN_REG_12, + GPIO_PIN_REG_13, + GPIO_PIN_REG_14, + GPIO_PIN_REG_15, + GPIO_PIN_REG_16, + GPIO_PIN_REG_17, + GPIO_PIN_REG_18, + GPIO_PIN_REG_19, + 0, + GPIO_PIN_REG_21, + GPIO_PIN_REG_22, + GPIO_PIN_REG_23, + 0, + GPIO_PIN_REG_25, + GPIO_PIN_REG_26, + GPIO_PIN_REG_27, + 0, + 0, + 0, + 0, + GPIO_PIN_REG_32, + GPIO_PIN_REG_33, + GPIO_PIN_REG_34, + GPIO_PIN_REG_35, + GPIO_PIN_REG_36, + GPIO_PIN_REG_37, + GPIO_PIN_REG_38, + GPIO_PIN_REG_39 +}; + +static int is_valid_gpio(int gpio_num) +{ + if(gpio_num >= GPIO_PIN_COUNT || GPIO_PIN_MUX_REG[gpio_num] == 0) { + GPIO_ERROR("GPIO io_num=%d does not exist\n",gpio_num); + return 0; + } + return 1; +} + +esp_err_t gpio_set_intr_type(gpio_num_t gpio_num, gpio_int_type_t intr_type) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(intr_type >= GPIO_INTR_MAX) { + GPIO_ERROR("Unknown GPIO intr:%u\n",intr_type); + return ESP_ERR_INVALID_ARG; + } + GPIO.pin[gpio_num].int_type = intr_type; + return ESP_OK; +} + +esp_err_t gpio_intr_enable(gpio_num_t gpio_num) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(xPortGetCoreID() == 0) { + GPIO.pin[gpio_num].int_ena = GPIO_PRO_CPU_INTR_ENA; //enable pro cpu intr + } else { + GPIO.pin[gpio_num].int_ena = GPIO_APP_CPU_INTR_ENA; //enable pro cpu intr + } + return ESP_OK; +} + +esp_err_t gpio_intr_disable(gpio_num_t gpio_num) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + GPIO.pin[gpio_num].int_ena = 0; //disable GPIO intr + return ESP_OK; +} + +static esp_err_t gpio_output_disable(gpio_num_t gpio_num) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(gpio_num < 32) { + GPIO.enable_w1tc = (0x1 << gpio_num); + } else { + GPIO.enable1_w1tc.data = (0x1 << (gpio_num - 32)); + } + return ESP_OK; +} + +static esp_err_t gpio_output_enable(gpio_num_t gpio_num) +{ + if(gpio_num >= 34) { + GPIO_ERROR("io_num=%d can only be input\n",gpio_num); + return ESP_ERR_INVALID_ARG; + } + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(gpio_num < 32) { + GPIO.enable_w1ts = (0x1 << gpio_num); + } else { + GPIO.enable1_w1ts.data = (0x1 << (gpio_num - 32)); + } + return ESP_OK; +} + +esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level) +{ + if(!GPIO_IS_VALID_GPIO(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(level) { + if(gpio_num < 32) { + GPIO.out_w1ts = (1 << gpio_num); + } else { + GPIO.out1_w1ts.data = (1 << (gpio_num - 32)); + } + } else { + if(gpio_num < 32) { + GPIO.out_w1tc = (1 << gpio_num); + } else { + GPIO.out1_w1tc.data = (1 << (gpio_num - 32)); + } + } + return ESP_OK; +} + +int gpio_get_level(gpio_num_t gpio_num) +{ + if(gpio_num < 32) { + return (GPIO.in >> gpio_num) & 0x1; + } else { + return (GPIO.in1.data >> (gpio_num - 32)) & 0x1; + } +} + +esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + esp_err_t ret = ESP_OK; + switch(pull) { + case GPIO_PULLUP_ONLY: + PIN_PULLUP_EN(GPIO_PIN_MUX_REG[gpio_num]); + PIN_PULLDWN_DIS(GPIO_PIN_MUX_REG[gpio_num]); + break; + case GPIO_PULLDOWN_ONLY: + PIN_PULLUP_DIS(GPIO_PIN_MUX_REG[gpio_num]); + PIN_PULLDWN_EN(GPIO_PIN_MUX_REG[gpio_num]); + break; + case GPIO_PULLUP_PULLDOWN: + PIN_PULLUP_EN(GPIO_PIN_MUX_REG[gpio_num]); + PIN_PULLDWN_EN(GPIO_PIN_MUX_REG[gpio_num]); + break; + case GPIO_FLOATING: + PIN_PULLUP_DIS(GPIO_PIN_MUX_REG[gpio_num]); + PIN_PULLDWN_DIS(GPIO_PIN_MUX_REG[gpio_num]); + break; + default: + GPIO_ERROR("Unknown pull up/down mode,gpio_num=%u,pull=%u\n",gpio_num,pull); + ret = ESP_ERR_INVALID_ARG; + break; + } + return ret; +} + +esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + if(gpio_num >= 34 && (mode & (GPIO_MODE_DEF_OUTPUT))) { + GPIO_ERROR("io_num=%d can only be input\n",gpio_num); + return ESP_ERR_INVALID_ARG; + } + esp_err_t ret = ESP_OK; + if(mode & GPIO_MODE_DEF_INPUT) { + PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[gpio_num]); + } else { + PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[gpio_num]); + } + if(mode & GPIO_MODE_DEF_OUTPUT) { + if(gpio_num < 32) { + GPIO.enable_w1ts = (0x1 << gpio_num); + } else { + GPIO.enable1_w1ts.data = (0x1 << (gpio_num - 32)); + } + } else { + if(gpio_num < 32) { + GPIO.enable_w1tc = (0x1 << gpio_num); + } else { + GPIO.enable1_w1tc.data = (0x1 << (gpio_num - 32)); + } + } + if(mode & GPIO_MODE_DEF_OD) { + GPIO.pin[gpio_num].pad_driver = 1; + } else { + GPIO.pin[gpio_num].pad_driver = 0; + } + return ret; +} + +esp_err_t gpio_config(gpio_config_t *pGPIOConfig) +{ + uint64_t gpio_pin_mask = (pGPIOConfig->pin_bit_mask); + uint32_t io_reg = 0; + uint32_t io_num = 0; + uint64_t bit_valid = 0; + if(pGPIOConfig->pin_bit_mask == 0 || pGPIOConfig->pin_bit_mask >= (((uint64_t) 1) << GPIO_PIN_COUNT)) { + GPIO_ERROR("GPIO_PIN mask error \n"); + return ESP_ERR_INVALID_ARG; + } + if((pGPIOConfig->mode) & (GPIO_MODE_DEF_OUTPUT)) { + //GPIO 34/35/36/37/38/39 can only be used as input mode; + if((gpio_pin_mask & ( GPIO_SEL_34 | GPIO_SEL_35 | GPIO_SEL_36 | GPIO_SEL_37 | GPIO_SEL_38 | GPIO_SEL_39))) { + GPIO_ERROR("GPIO34-39 can only be used as input mode\n"); + return ESP_ERR_INVALID_ARG; + } + } + do { + io_reg = GPIO_PIN_MUX_REG[io_num]; + if(((gpio_pin_mask >> io_num) & BIT(0)) && io_reg) { + GPIO_INFO("Gpio%02d |Mode:",io_num); + if((pGPIOConfig->mode) & GPIO_MODE_DEF_INPUT) { + GPIO_INFO("INPUT "); + PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[io_num]); + } else { + PIN_INPUT_DISABLE(GPIO_PIN_MUX_REG[io_num]); + } + if((pGPIOConfig->mode) & GPIO_MODE_DEF_OD) { + GPIO_INFO("OD "); + GPIO.pin[io_num].pad_driver = 1; /*0x01 Open-drain */ + } else { + GPIO.pin[io_num].pad_driver = 0; /*0x00 Normal gpio output */ + } + if((pGPIOConfig->mode) & GPIO_MODE_DEF_OUTPUT) { + GPIO_INFO("OUTPUT "); + gpio_output_enable(io_num); + } else { + gpio_output_disable(io_num); + } + GPIO_INFO("|"); + if(pGPIOConfig->pull_up_en) { + GPIO_INFO("PU "); + PIN_PULLUP_EN(io_reg); + } else { + PIN_PULLUP_DIS(io_reg); + } + if(pGPIOConfig->pull_down_en) { + GPIO_INFO("PD "); + PIN_PULLDWN_EN(io_reg); + } else { + PIN_PULLDWN_DIS(io_reg); + } + GPIO_INFO("Intr:%d |\n",pGPIOConfig->intr_type); + gpio_set_intr_type(io_num, pGPIOConfig->intr_type); + if(pGPIOConfig->intr_type) { + gpio_intr_enable(io_num); + } else { + gpio_intr_disable(io_num); + } + PIN_FUNC_SELECT(io_reg, PIN_FUNC_GPIO); /*function number 2 is GPIO_FUNC for each pin */ + } else if(bit_valid && (io_reg == 0)) { + GPIO_WARNING("io_num=%d does not exist\n",io_num); + } + io_num++; + } while(io_num < GPIO_PIN_COUNT); + return ESP_OK; +} + +esp_err_t gpio_isr_register(uint32_t gpio_intr_num, void (*fn)(void*), void * arg) +{ + if(fn == NULL) { + return ESP_ERR_INVALID_ARG; + } + ESP_INTR_DISABLE(gpio_intr_num); + intr_matrix_set(xPortGetCoreID(), ETS_GPIO_INTR_SOURCE, gpio_intr_num); + xt_set_interrupt_handler(gpio_intr_num, fn, arg); + ESP_INTR_ENABLE(gpio_intr_num); + return ESP_OK; +} + +/*only level interrupt can be used for wake-up function*/ +esp_err_t gpio_wakeup_enable(gpio_num_t gpio_num, gpio_int_type_t intr_type) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + esp_err_t ret = ESP_OK; + if((intr_type == GPIO_INTR_LOW_LEVEL) || (intr_type == GPIO_INTR_HIGH_LEVEL)) { + GPIO.pin[gpio_num].int_type = intr_type; + GPIO.pin[gpio_num].wakeup_enable = 0x1; + } else { + GPIO_ERROR("GPIO wakeup only support Level mode,but edge mode set. gpio_num:%u\n",gpio_num); + ret = ESP_ERR_INVALID_ARG; + } + return ret; +} + +esp_err_t gpio_wakeup_disable(gpio_num_t gpio_num) +{ + if(!is_valid_gpio(gpio_num)) { + return ESP_ERR_INVALID_ARG; + } + GPIO.pin[gpio_num].wakeup_enable = 0; + return ESP_OK; +} From df31bb8dfc2d6967a7bfbe122d6024b935802b2b Mon Sep 17 00:00:00 2001 From: Jeroen Domburg Date: Sun, 9 Oct 2016 15:32:08 +0800 Subject: [PATCH 04/36] Rename include, use spaces instead of tabs --- components/esp32/heap_alloc_caps.c | 294 +++++++++--------- .../esp32/include/esp_heap_alloc_caps.h | 34 ++ components/freertos/tasks.c | 1 - 3 files changed, 181 insertions(+), 148 deletions(-) create mode 100644 components/esp32/include/esp_heap_alloc_caps.h diff --git a/components/esp32/heap_alloc_caps.c b/components/esp32/heap_alloc_caps.c index 5b3ec33db..46b1125cc 100644 --- a/components/esp32/heap_alloc_caps.c +++ b/components/esp32/heap_alloc_caps.c @@ -15,7 +15,7 @@ #include -#include "heap_alloc_caps.h" +#include "esp_heap_alloc_caps.h" #include "spiram.h" #include "esp_log.h" @@ -40,23 +40,23 @@ Tag descriptors. These describe the capabilities of a bit of memory that's tagge Each tag contains NO_PRIOS entries; later entries are only taken if earlier ones can't fulfill the memory request. */ static const uint32_t tagDesc[][NO_PRIOS]={ - { MALLOC_CAP_DMA|MALLOC_CAP_8BIT, MALLOC_CAP_32BIT, 0 }, //Tag 0: Plain ole D-port RAM - { 0, MALLOC_CAP_DMA|MALLOC_CAP_8BIT, MALLOC_CAP_32BIT|MALLOC_CAP_EXEC }, //Tag 1: Plain ole D-port RAM which has an alias on the I-port - { MALLOC_CAP_EXEC|MALLOC_CAP_32BIT, 0, 0 }, //Tag 2: IRAM - { MALLOC_CAP_PID2, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, //Tag 3-8: PID 2-7 IRAM - { MALLOC_CAP_PID3, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID4, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID5, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID6, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID7, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID2, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, //Tag 9-14: PID 2-7 DRAM - { MALLOC_CAP_PID3, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID4, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID5, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID6, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // - { MALLOC_CAP_PID7, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // - { MALLOC_CAP_SPISRAM, 0, MALLOC_CAP_DMA|MALLOC_CAP_8BIT|MALLOC_CAP_32BIT}, //Tag 15: SPI SRAM data - { MALLOC_CAP_INVALID, MALLOC_CAP_INVALID, MALLOC_CAP_INVALID } //End + { MALLOC_CAP_DMA|MALLOC_CAP_8BIT, MALLOC_CAP_32BIT, 0 }, //Tag 0: Plain ole D-port RAM + { 0, MALLOC_CAP_DMA|MALLOC_CAP_8BIT, MALLOC_CAP_32BIT|MALLOC_CAP_EXEC }, //Tag 1: Plain ole D-port RAM which has an alias on the I-port + { MALLOC_CAP_EXEC|MALLOC_CAP_32BIT, 0, 0 }, //Tag 2: IRAM + { MALLOC_CAP_PID2, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, //Tag 3-8: PID 2-7 IRAM + { MALLOC_CAP_PID3, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID4, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID5, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID6, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID7, 0, MALLOC_CAP_EXEC|MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID2, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, //Tag 9-14: PID 2-7 DRAM + { MALLOC_CAP_PID3, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID4, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID5, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID6, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // + { MALLOC_CAP_PID7, MALLOC_CAP_8BIT, MALLOC_CAP_32BIT }, // + { MALLOC_CAP_SPISRAM, 0, MALLOC_CAP_DMA|MALLOC_CAP_8BIT|MALLOC_CAP_32BIT}, //Tag 15: SPI SRAM data + { MALLOC_CAP_INVALID, MALLOC_CAP_INVALID, MALLOC_CAP_INVALID } //End }; /* @@ -79,81 +79,81 @@ be sorted from low to high start address. This array is *NOT* const because it gets modified depending on what pools are/aren't available. */ static HeapRegionTagged_t regions[]={ - { (uint8_t *)0x3F800000, 0x20000, 15, 0}, //SPI SRAM, if available - { (uint8_t *)0x3FFAE000, 0x2000, 0, 0}, //pool 16 <- used for rom code - { (uint8_t *)0x3FFB0000, 0x8000, 0, 0}, //pool 15 <- can be used for BT - { (uint8_t *)0x3FFB8000, 0x8000, 0, 0}, //pool 14 <- can be used for BT - { (uint8_t *)0x3FFC0000, 0x2000, 0, 0}, //pool 10-13, mmu page 0 - { (uint8_t *)0x3FFC2000, 0x2000, 0, 0}, //pool 10-13, mmu page 1 - { (uint8_t *)0x3FFC4000, 0x2000, 0, 0}, //pool 10-13, mmu page 2 - { (uint8_t *)0x3FFC6000, 0x2000, 0, 0}, //pool 10-13, mmu page 3 - { (uint8_t *)0x3FFC8000, 0x2000, 0, 0}, //pool 10-13, mmu page 4 - { (uint8_t *)0x3FFCA000, 0x2000, 0, 0}, //pool 10-13, mmu page 5 - { (uint8_t *)0x3FFCC000, 0x2000, 0, 0}, //pool 10-13, mmu page 6 - { (uint8_t *)0x3FFCE000, 0x2000, 0, 0}, //pool 10-13, mmu page 7 - { (uint8_t *)0x3FFD0000, 0x2000, 0, 0}, //pool 10-13, mmu page 8 - { (uint8_t *)0x3FFD2000, 0x2000, 0, 0}, //pool 10-13, mmu page 9 - { (uint8_t *)0x3FFD4000, 0x2000, 0, 0}, //pool 10-13, mmu page 10 - { (uint8_t *)0x3FFD6000, 0x2000, 0, 0}, //pool 10-13, mmu page 11 - { (uint8_t *)0x3FFD8000, 0x2000, 0, 0}, //pool 10-13, mmu page 12 - { (uint8_t *)0x3FFDA000, 0x2000, 0, 0}, //pool 10-13, mmu page 13 - { (uint8_t *)0x3FFDC000, 0x2000, 0, 0}, //pool 10-13, mmu page 14 - { (uint8_t *)0x3FFDE000, 0x2000, 0, 0}, //pool 10-13, mmu page 15 - { (uint8_t *)0x3FFE0000, 0x4000, 1, 0x400BC000}, //pool 9 blk 1 - { (uint8_t *)0x3FFE4000, 0x4000, 1, 0x400B8000}, //pool 9 blk 0 - { (uint8_t *)0x3FFE8000, 0x8000, 1, 0x400B0000}, //pool 8 <- can be remapped to ROM, used for MAC dump - { (uint8_t *)0x3FFF0000, 0x8000, 1, 0x400A8000}, //pool 7 <- can be used for MAC dump - { (uint8_t *)0x3FFF8000, 0x4000, 1, 0x400A4000}, //pool 6 blk 1 <- can be used as trace memory - { (uint8_t *)0x3FFFC000, 0x4000, 1, 0x400A0000}, //pool 6 blk 0 <- can be used as trace memory - { (uint8_t *)0x40070000, 0x8000, 2, 0}, //pool 0 - { (uint8_t *)0x40078000, 0x8000, 2, 0}, //pool 1 - { (uint8_t *)0x40080000, 0x2000, 2, 0}, //pool 2-5, mmu page 0 - { (uint8_t *)0x40082000, 0x2000, 2, 0}, //pool 2-5, mmu page 1 - { (uint8_t *)0x40084000, 0x2000, 2, 0}, //pool 2-5, mmu page 2 - { (uint8_t *)0x40086000, 0x2000, 2, 0}, //pool 2-5, mmu page 3 - { (uint8_t *)0x40088000, 0x2000, 2, 0}, //pool 2-5, mmu page 4 - { (uint8_t *)0x4008A000, 0x2000, 2, 0}, //pool 2-5, mmu page 5 - { (uint8_t *)0x4008C000, 0x2000, 2, 0}, //pool 2-5, mmu page 6 - { (uint8_t *)0x4008E000, 0x2000, 2, 0}, //pool 2-5, mmu page 7 - { (uint8_t *)0x40090000, 0x2000, 2, 0}, //pool 2-5, mmu page 8 - { (uint8_t *)0x40092000, 0x2000, 2, 0}, //pool 2-5, mmu page 9 - { (uint8_t *)0x40094000, 0x2000, 2, 0}, //pool 2-5, mmu page 10 - { (uint8_t *)0x40096000, 0x2000, 2, 0}, //pool 2-5, mmu page 11 - { (uint8_t *)0x40098000, 0x2000, 2, 0}, //pool 2-5, mmu page 12 - { (uint8_t *)0x4009A000, 0x2000, 2, 0}, //pool 2-5, mmu page 13 - { (uint8_t *)0x4009C000, 0x2000, 2, 0}, //pool 2-5, mmu page 14 - { (uint8_t *)0x4009E000, 0x2000, 2, 0}, //pool 2-5, mmu page 15 - { NULL, 0, 0, 0} //end + { (uint8_t *)0x3F800000, 0x20000, 15, 0}, //SPI SRAM, if available + { (uint8_t *)0x3FFAE000, 0x2000, 0, 0}, //pool 16 <- used for rom code + { (uint8_t *)0x3FFB0000, 0x8000, 0, 0}, //pool 15 <- can be used for BT + { (uint8_t *)0x3FFB8000, 0x8000, 0, 0}, //pool 14 <- can be used for BT + { (uint8_t *)0x3FFC0000, 0x2000, 0, 0}, //pool 10-13, mmu page 0 + { (uint8_t *)0x3FFC2000, 0x2000, 0, 0}, //pool 10-13, mmu page 1 + { (uint8_t *)0x3FFC4000, 0x2000, 0, 0}, //pool 10-13, mmu page 2 + { (uint8_t *)0x3FFC6000, 0x2000, 0, 0}, //pool 10-13, mmu page 3 + { (uint8_t *)0x3FFC8000, 0x2000, 0, 0}, //pool 10-13, mmu page 4 + { (uint8_t *)0x3FFCA000, 0x2000, 0, 0}, //pool 10-13, mmu page 5 + { (uint8_t *)0x3FFCC000, 0x2000, 0, 0}, //pool 10-13, mmu page 6 + { (uint8_t *)0x3FFCE000, 0x2000, 0, 0}, //pool 10-13, mmu page 7 + { (uint8_t *)0x3FFD0000, 0x2000, 0, 0}, //pool 10-13, mmu page 8 + { (uint8_t *)0x3FFD2000, 0x2000, 0, 0}, //pool 10-13, mmu page 9 + { (uint8_t *)0x3FFD4000, 0x2000, 0, 0}, //pool 10-13, mmu page 10 + { (uint8_t *)0x3FFD6000, 0x2000, 0, 0}, //pool 10-13, mmu page 11 + { (uint8_t *)0x3FFD8000, 0x2000, 0, 0}, //pool 10-13, mmu page 12 + { (uint8_t *)0x3FFDA000, 0x2000, 0, 0}, //pool 10-13, mmu page 13 + { (uint8_t *)0x3FFDC000, 0x2000, 0, 0}, //pool 10-13, mmu page 14 + { (uint8_t *)0x3FFDE000, 0x2000, 0, 0}, //pool 10-13, mmu page 15 + { (uint8_t *)0x3FFE0000, 0x4000, 1, 0x400BC000}, //pool 9 blk 1 + { (uint8_t *)0x3FFE4000, 0x4000, 1, 0x400B8000}, //pool 9 blk 0 + { (uint8_t *)0x3FFE8000, 0x8000, 1, 0x400B0000}, //pool 8 <- can be remapped to ROM, used for MAC dump + { (uint8_t *)0x3FFF0000, 0x8000, 1, 0x400A8000}, //pool 7 <- can be used for MAC dump + { (uint8_t *)0x3FFF8000, 0x4000, 1, 0x400A4000}, //pool 6 blk 1 <- can be used as trace memory + { (uint8_t *)0x3FFFC000, 0x4000, 1, 0x400A0000}, //pool 6 blk 0 <- can be used as trace memory + { (uint8_t *)0x40070000, 0x8000, 2, 0}, //pool 0 + { (uint8_t *)0x40078000, 0x8000, 2, 0}, //pool 1 + { (uint8_t *)0x40080000, 0x2000, 2, 0}, //pool 2-5, mmu page 0 + { (uint8_t *)0x40082000, 0x2000, 2, 0}, //pool 2-5, mmu page 1 + { (uint8_t *)0x40084000, 0x2000, 2, 0}, //pool 2-5, mmu page 2 + { (uint8_t *)0x40086000, 0x2000, 2, 0}, //pool 2-5, mmu page 3 + { (uint8_t *)0x40088000, 0x2000, 2, 0}, //pool 2-5, mmu page 4 + { (uint8_t *)0x4008A000, 0x2000, 2, 0}, //pool 2-5, mmu page 5 + { (uint8_t *)0x4008C000, 0x2000, 2, 0}, //pool 2-5, mmu page 6 + { (uint8_t *)0x4008E000, 0x2000, 2, 0}, //pool 2-5, mmu page 7 + { (uint8_t *)0x40090000, 0x2000, 2, 0}, //pool 2-5, mmu page 8 + { (uint8_t *)0x40092000, 0x2000, 2, 0}, //pool 2-5, mmu page 9 + { (uint8_t *)0x40094000, 0x2000, 2, 0}, //pool 2-5, mmu page 10 + { (uint8_t *)0x40096000, 0x2000, 2, 0}, //pool 2-5, mmu page 11 + { (uint8_t *)0x40098000, 0x2000, 2, 0}, //pool 2-5, mmu page 12 + { (uint8_t *)0x4009A000, 0x2000, 2, 0}, //pool 2-5, mmu page 13 + { (uint8_t *)0x4009C000, 0x2000, 2, 0}, //pool 2-5, mmu page 14 + { (uint8_t *)0x4009E000, 0x2000, 2, 0}, //pool 2-5, mmu page 15 + { NULL, 0, 0, 0} //end }; //Modify regions array to disable the given range of memory. static void disable_mem_region(void *from, void *to) { - int i; - //Align from and to on word boundaries - from=(void*)((uint32_t)from&~3); - to=(void*)(((uint32_t)to+3)&~3); - for (i=0; regions[i].xSizeInBytes!=0; i++) { - void *regStart=regions[i].pucStartAddress; - void *regEnd=regions[i].pucStartAddress+regions[i].xSizeInBytes; - if (regStart>=from && regEnd<=to) { - //Entire region falls in the range. Disable entirely. - regions[i].xTag=-1; - } else if (regStart>=from && regEnd>to && regStartfrom && regEnd<=to) { - //End of the region falls in the range. Modify length. - regions[i].xSizeInBytes-=(uint8_t *)regEnd-(uint8_t *)from; - } else if (regStartto) { - //Range punches a hole in the region! We do not support this. - ESP_EARLY_LOGE(TAG, "region %d: hole punching is not supported!", i); - regions[i].xTag=-1; //Just disable memory region. That'll teach them! - } - } + int i; + //Align from and to on word boundaries + from=(void*)((uint32_t)from&~3); + to=(void*)(((uint32_t)to+3)&~3); + for (i=0; regions[i].xSizeInBytes!=0; i++) { + void *regStart=regions[i].pucStartAddress; + void *regEnd=regions[i].pucStartAddress+regions[i].xSizeInBytes; + if (regStart>=from && regEnd<=to) { + //Entire region falls in the range. Disable entirely. + regions[i].xTag=-1; + } else if (regStart>=from && regEnd>to && regStartfrom && regEnd<=to) { + //End of the region falls in the range. Modify length. + regions[i].xSizeInBytes-=(uint8_t *)regEnd-(uint8_t *)from; + } else if (regStartto) { + //Range punches a hole in the region! We do not support this. + ESP_EARLY_LOGE(TAG, "region %d: hole punching is not supported!", i); + regions[i].xTag=-1; //Just disable memory region. That'll teach them! + } + } } @@ -170,52 +170,52 @@ ToDo: The regions are different when stuff like trace memory, BT, ... is used. M Same with loading of apps. Same with using SPI RAM. */ void heap_alloc_caps_init() { - int i; - //Disable the bits of memory where this code is loaded. - disable_mem_region(&_bss_start, &_heap_start); - disable_mem_region((void*)0x3ffae000, (void*)0x3ffb0000); //knock out ROM data region - disable_mem_region((void*)0x40070000, (void*)0x40078000); //CPU0 cache region - disable_mem_region((void*)0x40078000, (void*)0x40080000); //CPU1 cache region - disable_mem_region((void*)0x40080000, (void*)0x400a0000); //pool 2-5 + int i; + //Disable the bits of memory where this code is loaded. + disable_mem_region(&_bss_start, &_heap_start); + disable_mem_region((void*)0x3ffae000, (void*)0x3ffb0000); //knock out ROM data region + disable_mem_region((void*)0x40070000, (void*)0x40078000); //CPU0 cache region + disable_mem_region((void*)0x40078000, (void*)0x40080000); //CPU1 cache region + disable_mem_region((void*)0x40080000, (void*)0x400a0000); //pool 2-5 - // TODO: this region should be checked, since we don't need to knock out all region finally - disable_mem_region((void*)0x3ffe0000, (void*)0x3ffe8000); //knock out ROM data region + // TODO: this region should be checked, since we don't need to knock out all region finally + disable_mem_region((void*)0x3ffe0000, (void*)0x3ffe8000); //knock out ROM data region #if CONFIG_MEMMAP_BT - disable_mem_region((void*)0x3ffb0000, (void*)0x3ffc0000); //knock out BT data region + disable_mem_region((void*)0x3ffb0000, (void*)0x3ffc0000); //knock out BT data region #endif #if CONFIG_MEMMAP_TRACEMEM - disable_mem_region((void*)0x3fff8000, (void*)0x40000000); //knock out trace mem region + disable_mem_region((void*)0x3fff8000, (void*)0x40000000); //knock out trace mem region #endif #if 0 - enable_spi_sram(); + enable_spi_sram(); #else - disable_mem_region((void*)0x3f800000, (void*)0x3f820000); //SPI SRAM not installed + disable_mem_region((void*)0x3f800000, (void*)0x3f820000); //SPI SRAM not installed #endif - //The heap allocator will treat every region given to it as separate. In order to get bigger ranges of contiguous memory, - //it's useful to coalesce adjacent regions that have the same tag. + //The heap allocator will treat every region given to it as separate. In order to get bigger ranges of contiguous memory, + //it's useful to coalesce adjacent regions that have the same tag. - for (i=1; regions[i].xSizeInBytes!=0; i++) { - if (regions[i].pucStartAddress == (regions[i-1].pucStartAddress + regions[i-1].xSizeInBytes) && - regions[i].xTag == regions[i-1].xTag ) { - regions[i-1].xTag=-1; - regions[i].pucStartAddress=regions[i-1].pucStartAddress; - regions[i].xSizeInBytes+=regions[i-1].xSizeInBytes; - } - } + for (i=1; regions[i].xSizeInBytes!=0; i++) { + if (regions[i].pucStartAddress == (regions[i-1].pucStartAddress + regions[i-1].xSizeInBytes) && + regions[i].xTag == regions[i-1].xTag ) { + regions[i-1].xTag=-1; + regions[i].pucStartAddress=regions[i-1].pucStartAddress; + regions[i].xSizeInBytes+=regions[i-1].xSizeInBytes; + } + } - ESP_EARLY_LOGI(TAG, "Initializing heap allocator:"); - for (i=0; regions[i].xSizeInBytes!=0; i++) { - if (regions[i].xTag != -1) { - ESP_EARLY_LOGI(TAG, "Region %02d: %08X len %08X tag %d", i, - (int)regions[i].pucStartAddress, regions[i].xSizeInBytes, regions[i].xTag); - } - } - //Initialize the malloc implementation. - vPortDefineHeapRegionsTagged( regions ); + ESP_EARLY_LOGI(TAG, "Initializing heap allocator:"); + for (i=0; regions[i].xSizeInBytes!=0; i++) { + if (regions[i].xTag != -1) { + ESP_EARLY_LOGI(TAG, "Region %02d: %08X len %08X tag %d", i, + (int)regions[i].pucStartAddress, regions[i].xSizeInBytes, regions[i].xTag); + } + } + //Initialize the malloc implementation. + vPortDefineHeapRegionsTagged( regions ); } /* @@ -223,7 +223,7 @@ Standard malloc() implementation. Will return ho-hum byte-accessible data memory */ void *pvPortMalloc( size_t xWantedSize ) { - return pvPortMallocCaps( xWantedSize, MALLOC_CAP_8BIT ); + return pvPortMallocCaps( xWantedSize, MALLOC_CAP_8BIT ); } /* @@ -231,30 +231,30 @@ Routine to allocate a bit of memory with certain capabilities. caps is a bitfiel */ void *pvPortMallocCaps( size_t xWantedSize, uint32_t caps ) { - int prio; - int tag, j; - void *ret=NULL; - uint32_t remCaps; - for (prio=0; prio Date: Sun, 9 Oct 2016 15:45:25 +0800 Subject: [PATCH 05/36] lwip/esp32: support iperf 1. Add _exit() definition in syscalls.c 2. Fix a bug in sockets.c on which iperf depends --- components/esp32/syscalls.c | 4 ++++ components/lwip/api/sockets.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/components/esp32/syscalls.c b/components/esp32/syscalls.c index 537efed1d..052605ee3 100644 --- a/components/esp32/syscalls.c +++ b/components/esp32/syscalls.c @@ -142,6 +142,10 @@ int _open_r(struct _reent *r, const char * path, int flags, int mode) { return 0; } +void _exit(int __status) { + abort(); +} + ssize_t _write_r(struct _reent *r, int fd, const void * data, size_t size) { const char *data_c = (const char *)data; if (fd == STDOUT_FILENO) { diff --git a/components/lwip/api/sockets.c b/components/lwip/api/sockets.c index 91a5222e6..350847b57 100755 --- a/components/lwip/api/sockets.c +++ b/components/lwip/api/sockets.c @@ -1442,8 +1442,15 @@ lwip_sendto(int s, const void *data, size_t size, int flags, #ifdef LWIP_ESP8266 /*fix the code for getting the UDP proto's remote information by liuh at 2014.8.27*/ if (NETCONNTYPE_GROUP(netconn_type(sock->conn)) == NETCONN_UDP){ - buf.addr.u_addr.ip4.addr = sock->conn->pcb.udp->remote_ip.u_addr.ip4.addr; - remote_port = sock->conn->pcb.udp->remote_port; + if(NETCONNTYPE_ISIPV6(netconn_type(sock->conn))) { + memcpy(&buf.addr.u_addr.ip6.addr, sock->conn->pcb.udp->remote_ip.u_addr.ip6.addr,16); + remote_port = sock->conn->pcb.udp->remote_port; + IP_SET_TYPE(&buf.addr, IPADDR_TYPE_V6); + } else { + buf.addr.u_addr.ip4.addr = sock->conn->pcb.udp->remote_ip.u_addr.ip4.addr; + remote_port = sock->conn->pcb.udp->remote_port; + IP_SET_TYPE(&buf.addr, IPADDR_TYPE_V4); + } } else { #endif remote_port = 0; From a20c2f10881abb082184cab36067bc9866459971 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Tue, 4 Oct 2016 10:12:17 +1100 Subject: [PATCH 06/36] 'make flash' targets: Print serial port when flashing Inspired by github #30 and related mentions where selected serial port is not clear from the make output. --- components/esptool_py/Makefile.projbuild | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/esptool_py/Makefile.projbuild b/components/esptool_py/Makefile.projbuild index 49f054836..a3d49b7df 100644 --- a/components/esptool_py/Makefile.projbuild +++ b/components/esptool_py/Makefile.projbuild @@ -24,10 +24,11 @@ $(APP_BIN): $(APP_ELF) $(ESPTOOLPY_SRC) $(Q) $(ESPTOOLPY) elf2image --flash_mode $(ESPFLASHMODE) --flash_freq $(ESPFLASHFREQ) -o $@ $< flash: all_binaries $(ESPTOOLPY_SRC) - @echo "Flashing project app to $(CONFIG_APP_OFFSET)..." + @echo "Flashing binaries to serial port $(ESPPORT) (app at offset $(CONFIG_APP_OFFSET))..." $(Q) $(ESPTOOLPY_WRITE_FLASH) $(ESPTOOL_ALL_FLASH_ARGS) app-flash: $(APP_BIN) $(ESPTOOLPY_SRC) + @echo "Flashing app to serial port $(ESPPORT), offset $(CONFIG_APP_OFFSET)..." $(Q) $(ESPTOOLPY_WRITE_FLASH) $(CONFIG_APP_OFFSET) $(APP_BIN) $(eval $(call SubmoduleRequiredForFiles,$(ESPTOOLPY_SRC))) From 71c09d8f66445b029620e1f97602d0b2ca5d15c9 Mon Sep 17 00:00:00 2001 From: "rudi ;-)" Date: Sun, 2 Oct 2016 02:04:09 +0200 Subject: [PATCH 07/36] Fix stack overflow message format Poorly formatted message for stack overflow for task. Closes #36 --- components/freertos/panic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/freertos/panic.c b/components/freertos/panic.c index b57502236..940086735 100644 --- a/components/freertos/panic.c +++ b/components/freertos/panic.c @@ -79,9 +79,9 @@ inline static void panicPutDec(int a) { } int xPortGetCoreID(); void __attribute__((weak)) vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) { - panicPutStr("***ERROR*** A stack overflow in task"); + panicPutStr("***ERROR*** A stack overflow in task "); panicPutStr((char*)pcTaskName); - panicPutStr("has been detected.\r\n"); + panicPutStr(" has been detected.\r\n"); } static const char *edesc[]={ From 79bd6af7e74cc174f83b36c026f0788ebbc38143 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Tue, 4 Oct 2016 16:33:18 +1100 Subject: [PATCH 08/36] build system: Print a WARNING if any submodule is out of date Inspired by Github #27 and related "gotchas" with keeping submodules up to date. --- components/bt/component.mk | 4 +--- components/esp32/component.mk | 2 +- components/esptool_py/Makefile.projbuild | 2 +- make/common.mk | 24 ++++++++++++++++-------- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/components/bt/component.mk b/components/bt/component.mk index a9233cc74..e88651aa1 100644 --- a/components/bt/component.mk +++ b/components/bt/component.mk @@ -4,8 +4,6 @@ #COMPONENT_ADD_INCLUDEDIRS := -CURRENT_DIR=$(IDF_PATH)/components/bt - COMPONENT_ADD_INCLUDEDIRS := include CFLAGS += -Wno-error=unused-label -Wno-error=return-type -Wno-error=missing-braces -Wno-error=pointer-sign -Wno-error=parentheses @@ -22,4 +20,4 @@ ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib/lib%.a,$(LIBS)) $(COMPONENT_LIBRARY): $(ALL_LIB_FILES) # automatically trigger a git submodule update if BT library is missing -$(eval $(call SubmoduleRequiredForFiles,$(ALL_LIB_FILES))) +$(eval $(call SubmoduleCheck,$(ALL_LIB_FILES),$(COMPONENT_PATH)/lib)) diff --git a/components/esp32/component.mk b/components/esp32/component.mk index 6eac77afd..b41acee60 100644 --- a/components/esp32/component.mk +++ b/components/esp32/component.mk @@ -27,7 +27,7 @@ ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib/lib%.a,$(LIBS)) # automatically trigger a git submodule update # if any libraries are missing -$(eval $(call SubmoduleRequiredForFiles,$(ALL_LIB_FILES))) +$(eval $(call SubmoduleCheck,$(ALL_LIB_FILES),$(COMPONENT_PATH)/lib)) # this is a hack to make sure the app is re-linked if the binary # libraries change or are updated. If they change, the main esp32 diff --git a/components/esptool_py/Makefile.projbuild b/components/esptool_py/Makefile.projbuild index a3d49b7df..4d0dd1b3e 100644 --- a/components/esptool_py/Makefile.projbuild +++ b/components/esptool_py/Makefile.projbuild @@ -31,4 +31,4 @@ app-flash: $(APP_BIN) $(ESPTOOLPY_SRC) @echo "Flashing app to serial port $(ESPPORT), offset $(CONFIG_APP_OFFSET)..." $(Q) $(ESPTOOLPY_WRITE_FLASH) $(CONFIG_APP_OFFSET) $(APP_BIN) -$(eval $(call SubmoduleRequiredForFiles,$(ESPTOOLPY_SRC))) +$(eval $(call SubmoduleCheck,$(ESPTOOLPY_SRC),$(COMPONENT_PATH)/esptool)) diff --git a/make/common.mk b/make/common.mk index a515584a9..14aa4074b 100644 --- a/make/common.mk +++ b/make/common.mk @@ -23,19 +23,27 @@ summary := @echo details := @true endif -# Pseudo-target to handle the case where submodules need to be -# re-initialised. +# Pseudo-target to check a git submodule has been properly initialised # -# $(eval $(call SubmoduleRequiredForFiles,FILENAMES)) to create a target that -# automatically runs 'git submodule update --init' if those files -# are missing, and fails if this is not possible. -define SubmoduleRequiredForFiles +# $(eval $(call SubmoduleCheck,FILENAMES,SUBMODULE_PATH)) to create a target that +# automatically runs 'git submodule update --init SUBMODULE_PATH' if any of +# the files in FILENAMES are missing, and fails if this is not possible. +# +# Will also print a WARNING if the submodule at SUBMODULE_PATH appears +# to require an update. +define SubmoduleCheck $(1): - @echo "WARNING: Missing submodule for $$@..." + @echo "WARNING: Missing submodule $(2) for $$@..." $(Q) [ -d ${IDF_PATH}/.git ] || ( echo "ERROR: esp-idf must be cloned from git to work."; exit 1) $(Q) [ -x $(which git) ] || ( echo "ERROR: Need to run 'git submodule --init' in esp-idf root directory."; exit 1) @echo "Attempting 'git submodule update --init' in esp-idf root directory..." - cd ${IDF_PATH} && git submodule update --init + cd ${IDF_PATH} && git submodule update --init $(2) + +# Parse 'git submodule status' output for out-of-date submodule. +# Status output prefixes status line with '+' if the submodule commit doesn't match +ifneq ("$(shell cd ${IDF_PATH} && git submodule status $(2) | grep '^+')","") +$$(info WARNING: git submodule $2 may be out of date. Run 'git submodule update' to update.) +endif endef From c12582c122a0141119a38d518e0bb9510976024d Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 6 Oct 2016 09:55:43 +1100 Subject: [PATCH 09/36] bootloader: Fix accidental tabs introduced in !78 --- .../bootloader/src/main/bootloader_start.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/components/bootloader/src/main/bootloader_start.c b/components/bootloader/src/main/bootloader_start.c index e0ab7f9e2..a61ea77d5 100644 --- a/components/bootloader/src/main/bootloader_start.c +++ b/components/bootloader/src/main/bootloader_start.c @@ -411,15 +411,15 @@ void unpack_load_app(const partition_pos_t* partition) map = true; } - if(!load_rtc_memory && address >= RTC_IRAM_LOW && address < RTC_IRAM_HIGH) { - ESP_LOGD(TAG, "Skipping RTC code section at %08x\n", pos); - load = false; - } + if (!load_rtc_memory && address >= RTC_IRAM_LOW && address < RTC_IRAM_HIGH) { + ESP_LOGD(TAG, "Skipping RTC code section at %08x\n", pos); + load = false; + } - if(!load_rtc_memory && address >= RTC_DATA_LOW && address < RTC_DATA_HIGH) { - ESP_LOGD(TAG, "Skipping RTC data section at %08x\n", pos); - load = false; - } + if (!load_rtc_memory && address >= RTC_DATA_LOW && address < RTC_DATA_HIGH) { + ESP_LOGD(TAG, "Skipping RTC data section at %08x\n", pos); + load = false; + } ESP_LOGI(TAG, "section %d: paddr=0x%08x vaddr=0x%08x size=0x%05x (%6d) %s", section_index, pos, section_header.load_addr, section_header.data_len, section_header.data_len, (load)?"load":(map)?"map":""); From 1bae606ccce4f6925f33726a14067c0624db37f5 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 6 Oct 2016 10:06:01 +1100 Subject: [PATCH 10/36] FreeRTOS KConfig: Limit tick rate to 1000Hz >1000Hz breaks portTICK_PERIOD_MS (see gitlab 4) A working >1000Hz tick rate is possible with some changes, but beyond a certain point it's dimishing returns to preempt tasks this often. --- components/freertos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/freertos/Kconfig b/components/freertos/Kconfig index 7e0245e92..1a65e1eeb 100644 --- a/components/freertos/Kconfig +++ b/components/freertos/Kconfig @@ -39,7 +39,7 @@ endchoice config FREERTOS_HZ int "Tick rate (Hz)" - range 1 10000 + range 1 1000 default 100 help Select the tick rate at which FreeRTOS does pre-emptive context switching. From 609c1c2cdba08d75613673a252c0e8e1a83ab3be Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Mon, 10 Oct 2016 17:19:13 +1100 Subject: [PATCH 11/36] build system: Add -fno-rtti when compiling C++ code --- make/project.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/project.mk b/make/project.mk index 35dccaf24..d91165cfd 100644 --- a/make/project.mk +++ b/make/project.mk @@ -165,7 +165,7 @@ CPPFLAGS = -DESP_PLATFORM -Og -g3 -Wpointer-arith -Werror -Wno-error=unused-func CFLAGS = $(CPPFLAGS) -std=gnu99 -g3 -fstrict-volatile-bitfields # CXXFLAGS uses by C++ only -CXXFLAGS = $(CPPFLAGS) -Og -std=gnu++11 -g3 -fno-exceptions -fstrict-volatile-bitfields +CXXFLAGS = $(CPPFLAGS) -Og -std=gnu++11 -g3 -fno-exceptions -fstrict-volatile-bitfields -fno-rtti export CFLAGS CPPFLAGS CXXFLAGS From 90e57cdf8f3f15c3af257b42feb28ade4907d581 Mon Sep 17 00:00:00 2001 From: Yinling Date: Mon, 26 Sep 2016 14:27:57 +0800 Subject: [PATCH 12/36] add auto generated test folder to components: 1. add test cases and related scripts 2. add CI config files read README.md for detail --- components/test/CIConfigs/Function_SYS_01.yml | 5 + .../test/CIConfigs/Function_TCPIP_01.yml | 11 + .../test/CIConfigs/Function_TCPIP_02.yml | 11 + .../test/CIConfigs/Function_TCPIP_03.yml | 11 + .../test/CIConfigs/Function_TCPIP_04.yml | 11 + .../test/CIConfigs/Function_TCPIP_05.yml | 11 + .../test/CIConfigs/Function_TCPIP_06.yml | 8 + .../test/CIConfigs/Function_TCPIP_07.yml | 5 + .../test/CIConfigs/Function_WIFI_01.yml | 11 + .../test/CIConfigs/Function_WIFI_02.yml | 9 + components/test/InitialConditionAll.yml | 2923 ++++ components/test/README.md | 35 + components/test/TestCaseAll.yml | 13810 ++++++++++++++++ .../TestCaseScript/ATFunc/CmdInterruptTest.py | 130 + components/test/TestCaseScript/ATFunc/LAP.py | 64 + .../ATFunc/SendDataValidation.py | 161 + .../test/TestCaseScript/ATFunc/UARTTest.py | 164 + .../test/TestCaseScript/ATFunc/__init__.py | 2 + .../TestCaseScript/ATStress/ATPassThrough.py | 179 + .../test/TestCaseScript/ATStress/ATSleep.py | 251 + .../TestCaseScript/ATStress/SoftAPServer.py | 308 + .../TestCaseScript/ATStress/TCPClientMulti.py | 116 + .../ATStress/TCPClientSingle.py | 123 + .../TestCaseScript/ATStress/TCPSendPerf.py | 148 + .../TestCaseScript/ATStress/TCPServerMulti.py | 126 + .../TestCaseScript/ATStress/TCPTransparent.py | 280 + .../test/TestCaseScript/ATStress/UDPMulti.py | 113 + .../test/TestCaseScript/ATStress/UDPSingle.py | 105 + .../TestCaseScript/ATStress/UDPTransparent.py | 262 + .../test/TestCaseScript/ATStress/__init__.py | 2 + components/test/TestCaseScript/IOT/SCIOT.py | 357 + .../test/TestCaseScript/IOT/SCUDPServer.py | 378 + .../TestCaseScript/IOT/WifiConnUtility.py | 244 + components/test/TestCaseScript/IOT/WifiJAP.py | 183 + .../test/TestCaseScript/IOT/__init__.py | 1 + .../TestCaseScript/MeshStress/MeshSendRecv.py | 525 + .../TestCaseScript/MeshStress/__init__.py | 1 + .../test/TestCaseScript/SSLTest/Capability.py | 90 + .../TestCaseScript/SSLTest/ConfigUtility.py | 333 + .../test/TestCaseScript/SSLTest/Parameter.py | 56 + .../test/TestCaseScript/SSLTest/SSLHandler.py | 498 + .../TestCaseScript/SSLTest/SSLHandshake.py | 240 + .../test/TestCaseScript/SSLTest/SSLLowMem.py | 140 + .../TestCaseScript/SSLTest/SSLSendRecv.py | 147 + .../test/TestCaseScript/SSLTest/__init__.py | 1 + .../TestCaseScript/SleepMode/AutoSleep.py | 561 + .../TestCaseScript/SleepMode/DeepSleep.py | 259 + .../TestCaseScript/SleepMode/ForceSleep.py | 254 + .../test/TestCaseScript/SleepMode/__init__.py | 1 + .../TestCaseScript/StableTest/StableCase1.py | 160 + .../TestCaseScript/StableTest/__init__.py | 1 + .../TestCaseScript/TCPIPStress/ARPStress.py | 121 + .../TestCaseScript/TCPIPStress/PingStress.py | 122 + .../TestCaseScript/TCPIPStress/__init__.py | 1 + .../TestCaseScript/TCPStress/TCPAP4STA.py | 168 + .../TestCaseScript/TCPStress/TCPAPNSTA.py | 209 + .../TCPStress/TCPConnStressTC.py | 363 + .../TCPStress/TCPConnUtility.py | 273 + .../TestCaseScript/TCPStress/TCPConnection.py | 321 + .../TCPStress/TCPConnectionUtility.py | 251 + .../TCPStress/TCPDataValidation.py | 244 + .../TestCaseScript/TCPStress/TCPRandomSend.py | 103 + .../TestCaseScript/TCPStress/TCPSendRecv.py | 143 + .../TCPStress/TCPSoftAPSTASendRecv.py | 318 + .../TestCaseScript/TCPStress/TCPThroughput.py | 315 + .../test/TestCaseScript/TCPStress/__init__.py | 1 + .../TestCaseScript/UDPStress/UDPSendRecv.py | 130 + .../TestCaseScript/UDPStress/UDPThroughput.py | 305 + .../test/TestCaseScript/UDPStress/__init__.py | 1 + .../TestCaseScript/WiFiStress/SoftAPNSTA.py | 178 + .../WiFiStress/WifiConnUtility.py | 240 + .../test/TestCaseScript/WiFiStress/WifiJAP.py | 218 + .../TestCaseScript/WiFiStress/WifiJAPAtt.py | 173 + .../WiFiStress/WifiSmartConfig.py | 273 + .../TestCaseScript/WiFiStress/__init__.py | 1 + components/test/TestCaseScript/__init__.py | 2 + components/test/TestEnvAll.yml | 275 + 77 files changed, 28574 insertions(+) create mode 100644 components/test/CIConfigs/Function_SYS_01.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_01.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_02.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_03.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_04.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_05.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_06.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_07.yml create mode 100644 components/test/CIConfigs/Function_WIFI_01.yml create mode 100644 components/test/CIConfigs/Function_WIFI_02.yml create mode 100644 components/test/InitialConditionAll.yml create mode 100644 components/test/README.md create mode 100644 components/test/TestCaseAll.yml create mode 100755 components/test/TestCaseScript/ATFunc/CmdInterruptTest.py create mode 100644 components/test/TestCaseScript/ATFunc/LAP.py create mode 100755 components/test/TestCaseScript/ATFunc/SendDataValidation.py create mode 100644 components/test/TestCaseScript/ATFunc/UARTTest.py create mode 100755 components/test/TestCaseScript/ATFunc/__init__.py create mode 100755 components/test/TestCaseScript/ATStress/ATPassThrough.py create mode 100644 components/test/TestCaseScript/ATStress/ATSleep.py create mode 100755 components/test/TestCaseScript/ATStress/SoftAPServer.py create mode 100755 components/test/TestCaseScript/ATStress/TCPClientMulti.py create mode 100755 components/test/TestCaseScript/ATStress/TCPClientSingle.py create mode 100755 components/test/TestCaseScript/ATStress/TCPSendPerf.py create mode 100755 components/test/TestCaseScript/ATStress/TCPServerMulti.py create mode 100755 components/test/TestCaseScript/ATStress/TCPTransparent.py create mode 100755 components/test/TestCaseScript/ATStress/UDPMulti.py create mode 100755 components/test/TestCaseScript/ATStress/UDPSingle.py create mode 100755 components/test/TestCaseScript/ATStress/UDPTransparent.py create mode 100755 components/test/TestCaseScript/ATStress/__init__.py create mode 100755 components/test/TestCaseScript/IOT/SCIOT.py create mode 100755 components/test/TestCaseScript/IOT/SCUDPServer.py create mode 100755 components/test/TestCaseScript/IOT/WifiConnUtility.py create mode 100755 components/test/TestCaseScript/IOT/WifiJAP.py create mode 100755 components/test/TestCaseScript/IOT/__init__.py create mode 100755 components/test/TestCaseScript/MeshStress/MeshSendRecv.py create mode 100755 components/test/TestCaseScript/MeshStress/__init__.py create mode 100755 components/test/TestCaseScript/SSLTest/Capability.py create mode 100755 components/test/TestCaseScript/SSLTest/ConfigUtility.py create mode 100755 components/test/TestCaseScript/SSLTest/Parameter.py create mode 100644 components/test/TestCaseScript/SSLTest/SSLHandler.py create mode 100755 components/test/TestCaseScript/SSLTest/SSLHandshake.py create mode 100644 components/test/TestCaseScript/SSLTest/SSLLowMem.py create mode 100644 components/test/TestCaseScript/SSLTest/SSLSendRecv.py create mode 100755 components/test/TestCaseScript/SSLTest/__init__.py create mode 100755 components/test/TestCaseScript/SleepMode/AutoSleep.py create mode 100755 components/test/TestCaseScript/SleepMode/DeepSleep.py create mode 100755 components/test/TestCaseScript/SleepMode/ForceSleep.py create mode 100755 components/test/TestCaseScript/SleepMode/__init__.py create mode 100755 components/test/TestCaseScript/StableTest/StableCase1.py create mode 100755 components/test/TestCaseScript/StableTest/__init__.py create mode 100755 components/test/TestCaseScript/TCPIPStress/ARPStress.py create mode 100755 components/test/TestCaseScript/TCPIPStress/PingStress.py create mode 100755 components/test/TestCaseScript/TCPIPStress/__init__.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPAP4STA.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPAPNSTA.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPConnStressTC.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPConnUtility.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPConnection.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPDataValidation.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPRandomSend.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPSendRecv.py create mode 100644 components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py create mode 100755 components/test/TestCaseScript/TCPStress/TCPThroughput.py create mode 100755 components/test/TestCaseScript/TCPStress/__init__.py create mode 100755 components/test/TestCaseScript/UDPStress/UDPSendRecv.py create mode 100755 components/test/TestCaseScript/UDPStress/UDPThroughput.py create mode 100755 components/test/TestCaseScript/UDPStress/__init__.py create mode 100755 components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py create mode 100755 components/test/TestCaseScript/WiFiStress/WifiConnUtility.py create mode 100755 components/test/TestCaseScript/WiFiStress/WifiJAP.py create mode 100755 components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py create mode 100755 components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py create mode 100755 components/test/TestCaseScript/WiFiStress/__init__.py create mode 100755 components/test/TestCaseScript/__init__.py create mode 100644 components/test/TestEnvAll.yml diff --git a/components/test/CIConfigs/Function_SYS_01.yml b/components/test/CIConfigs/Function_SYS_01.yml new file mode 100644 index 000000000..501f15f6b --- /dev/null +++ b/components/test/CIConfigs/Function_SYS_01.yml @@ -0,0 +1,5 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- ADD: + ID: [SYS_MISC_0101, SYS_MISC_0201] diff --git a/components/test/CIConfigs/Function_TCPIP_01.yml b/components/test/CIConfigs/Function_TCPIP_01.yml new file mode 100644 index 000000000..9b43ab589 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_01.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [TCPIP_ICMP_0101, TCPIP_ARP_0202, ^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, + TCPIP_DHCP_0302, TCPIP_DHCP_0301, TCPIP_ARP_0204, TCPIP_TCP_0412, TCPIP_TCP_0403, + TCPIP_TCP_0402, TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, TCPIP_TCP_0404, + TCPIP_TCP_0408, ^TCPIP_TCP_0202, TCPIP_TCP_0110, ^TCPIP_TCP_0203, TCPIP_DHCP_0101, + TCPIP_DHCP_0103, TCPIP_DHCP_0102, ^TCPIP_UDP_0303, ^TCPIP_UDP_0302, ^TCPIP_UDP_0301, + TCPIP_DNS_0102, TCPIP_DNS_0101, TCPIP_IP_0101, TCPIP_IP_0102, ^TCPIP_IGMP_0102, + ^TCPIP_IGMP_0101] diff --git a/components/test/CIConfigs/Function_TCPIP_02.yml b/components/test/CIConfigs/Function_TCPIP_02.yml new file mode 100644 index 000000000..7e0a3ead4 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_02.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [^TCPIP_IGMP_0104, ^TCPIP_UDP_0110, TCPIP_IGMP_0104, TCPIP_IGMP_0103, TCPIP_IGMP_0102, + TCPIP_IGMP_0101, ^TCPIP_UDP_0201, ^TCPIP_ICMP_0101, TCPIP_UDP_0108, TCPIP_UDP_0109, + TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0104, TCPIP_UDP_0105, TCPIP_UDP_0102, + TCPIP_UDP_0103, TCPIP_UDP_0101, TCPIP_IGMP_0204, TCPIP_IGMP_0201, TCPIP_IGMP_0202, + TCPIP_IGMP_0203, ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, + ^TCPIP_TCP_0402, ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, TCPIP_UDP_0201, ^TCPIP_UDP_0307, + ^TCPIP_UDP_0306] diff --git a/components/test/CIConfigs/Function_TCPIP_03.yml b/components/test/CIConfigs/Function_TCPIP_03.yml new file mode 100644 index 000000000..33dcd14be --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_03.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [^TCPIP_UDP_0305, ^TCPIP_UDP_0304, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0102, + ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, + ^TCPIP_DHCP_0211, TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, + TCPIP_DHCP_0211, TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, ^TCPIP_IP_0102, + ^TCPIP_UDP_0105, ^TCPIP_UDP_0104, ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, + ^TCPIP_UDP_0103, ^TCPIP_UDP_0102, ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, ^TCPIP_UDP_0108, + ^TCPIP_IGMP_0201] diff --git a/components/test/CIConfigs/Function_TCPIP_04.yml b/components/test/CIConfigs/Function_TCPIP_04.yml new file mode 100644 index 000000000..af2cc7d22 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_04.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, TCPIP_UDP_0114, TCPIP_UDP_0111, + TCPIP_UDP_0110, TCPIP_UDP_0113, TCPIP_UDP_0112, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, + ^TCPIP_TCP_0207, TCPIP_TCP_0501, ^TCPIP_DNS_0101, ^TCPIP_DNS_0103, ^TCPIP_DNS_0102, + TCPIP_TCP_0106, TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, TCPIP_TCP_0102, + TCPIP_TCP_0103, TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114, ^TCPIP_TCP_0115, + ^TCPIP_TCP_0112, ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, TCPIP_ARP_0101, + TCPIP_UDP_0304] diff --git a/components/test/CIConfigs/Function_TCPIP_05.yml b/components/test/CIConfigs/Function_TCPIP_05.yml new file mode 100644 index 000000000..a89ece34c --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_05.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [TCPIP_UDP_0305, TCPIP_UDP_0306, TCPIP_UDP_0307, TCPIP_UDP_0301, TCPIP_UDP_0302, + TCPIP_UDP_0303, ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, + ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, + TCPIP_TCP_0204, TCPIP_TCP_0207, TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, + TCPIP_TCP_0203, TCPIP_TCP_0202, TCPIP_TCP_0208, TCPIP_DNS_0103, TCPIP_DHCP_0206, + TCPIP_DHCP_0207, TCPIP_DHCP_0204, TCPIP_DHCP_0205, TCPIP_DHCP_0202, TCPIP_DHCP_0203, + ^TCPIP_TCP_0204] diff --git a/components/test/CIConfigs/Function_TCPIP_06.yml b/components/test/CIConfigs/Function_TCPIP_06.yml new file mode 100644 index 000000000..929aafd13 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_06.yml @@ -0,0 +1,8 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [TCPIP_DHCP_0201, ^TCPIP_TCP_0208, TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, + ^TCPIP_TCP_0411, TCPIP_ARP_0203, ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, + ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, TCPIP_ARP_0201, TCPIP_TCP_0115, TCPIP_TCP_0114, + TCPIP_TCP_0116, TCPIP_TCP_0111, TCPIP_TCP_0113, TCPIP_TCP_0112] diff --git a/components/test/CIConfigs/Function_TCPIP_07.yml b/components/test/CIConfigs/Function_TCPIP_07.yml new file mode 100644 index 000000000..d42b5902a --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_07.yml @@ -0,0 +1,5 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- ADD: + ID: [TCPIP_TCP_0405, ^TCPIP_TCP_0405] diff --git a/components/test/CIConfigs/Function_WIFI_01.yml b/components/test/CIConfigs/Function_WIFI_01.yml new file mode 100644 index 000000000..594a1fc21 --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_01.yml @@ -0,0 +1,11 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, ^WIFI_CONN_0903, WIFI_SCAN_0103, WIFI_SCAN_0102, + WIFI_SCAN_0101, WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0702, + WIFI_CONN_0703, WIFI_CONN_0701, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0701, + ^WIFI_CONN_0703, ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, + ^WIFI_ADDR_0102, WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, + WIFI_CONN_0301, ^WIFI_CONN_0801, WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, + WIFI_CONN_0502] diff --git a/components/test/CIConfigs/Function_WIFI_02.yml b/components/test/CIConfigs/Function_WIFI_02.yml new file mode 100644 index 000000000..30735791b --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_02.yml @@ -0,0 +1,9 @@ +Config: {debug mode: false, execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- ADD: + ID: [^WIFI_CONN_0401, WIFI_MODE_0101, WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, + ^WIFI_CONN_0902, ^WIFI_CONN_0901, WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0902, + WIFI_CONN_0903, WIFI_CONN_0503, ^WIFI_CONN_0104, WIFI_CONN_0101, WIFI_CONN_0102, + WIFI_CONN_0103, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, ^WIFI_CONN_0503, + ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] diff --git a/components/test/InitialConditionAll.yml b/components/test/InitialConditionAll.yml new file mode 100644 index 000000000..797ccad55 --- /dev/null +++ b/components/test/InitialConditionAll.yml @@ -0,0 +1,2923 @@ +initial condition: +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + initial condition detail: root as LOCAL, rest node as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: ENABLED_2 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + initial condition detail: all mesh node enabled as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ENABLED_1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: APSTA mode, connected to AP, running BIN0 (located on + flash id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: STAAPBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: testing ap on sta + ap mode, PC join AP (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 66.0 + tag: APSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + initial condition detail: testing ap on sta + ap mode (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 59.0 + tag: APSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: testing sta on sta + ap mode, quit AP (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: STAAP1 + test script: InitCondBase +- check cmd set: + - '' + - - DELAY 0.1 + - [dummy] + force restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + initial condition detail: none 2 + restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 108.0 + tag: ATNone2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: testing sta on sta + ap mode, join AP, DHCP on (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: STAAP2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 94.0 + tag: ATAPSTA3 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:3 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] + initial condition detail: Target 1 in SoftAP mode, Target 2 in StationSoftAP mode, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 80.0 + tag: ATT2_2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 5 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, PC join Target AP, multi link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 R *] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: ATAP3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial + condition STAAP1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: STAO1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, both PC join Target AP, single link, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAP5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 10 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, PC join Target AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: ATAP4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, both PC join Target AP, multi link, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAP6 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + initial condition detail: AP only mode, running BIN0 (located on flash id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: APOBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, DHCP on + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: STAM1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: STAM2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: none + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATNone + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, connected to AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 101.0 + tag: ATAPSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: same as STA4, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ATOSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: same as STA1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATOSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 5 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + initial condition detail: StationSoftAP mode + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: ATAP1 + test script: InitCondBase +- check cmd set: + - '' + - - DELAY 0.1 + - [dummy] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + initial condition detail: none + restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: None + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + initial condition detail: 'first time usage. Use restore function. ' + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 143.0 + tag: ATFTU + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: SoftAP mode, both PC join Target AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAPO5 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with + initial condition STAAP2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: STAO2 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + initial condition detail: all mesh node disabled + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: DISABLED + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:1 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + initial condition detail: Target 1 in StationSoftAP mode, Target 2 in station mode, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: ATT2_1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: APO2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: APO1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 R *] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 66.0 + tag: ATAPO3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['R SSC[1-] C !!!ready!!!'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -m -o 2 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + initial condition detail: one target in AP mode and espnow is de-initialized + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -m -o 2 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: NOW1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1-] op -Q + - ['R SSC[1-] C +CURMODE:2'] + - - SSC SSC[1-] mac -Q -o 3 + - ['R SSC[1-] P ]_ap_mac> P ]_mac>'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['R SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] op -S -o 3 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] mac -S -m ]_ap_mac> -o 2 + - ['R SSC[1-] C +MAC:AP,OK'] + - - SSC SSC[1-] mac -S -m ]_mac> -o 1 + - ['R SSC[1-] C +MAC:STA,OK'] + - - SSC SSC[1-] op -S -o 2 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + initial condition detail: multiple () targets in AP mode, espnow is initialized + with self role slave + restore cmd set: + - '' + - - SSC SSC[1-] op -S -o 3 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] mac -S -m ]_ap_mac> -o 2 + - ['R SSC[1-] C +MAC:AP,OK'] + - - SSC SSC[1-] mac -S -m ]_mac> -o 1 + - ['R SSC[1-] C +MAC:STA,OK'] + - - SSC SSC[1-] op -S -o 2 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: NOW2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, single link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 73.0 + tag: ATAPO4 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + initial condition detail: one target and simple is de-inited + restore cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: PAIR1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: SoftAP mode, both PC join Target AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAPO6 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1,2] op -Q + - ['R SSC[1,2] C +MODE:[3,3]'] + - - SSC SSC[1,2] mac -Q -o 3 + - ['R SSC[1,2] P P '] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC[1,2] reboot + - ['R SSC[1,2] C !!!ready!!!'] + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + initial condition detail: target1 and target2 in STA+AP mode, two targets de-init + and init simple pair + restore cmd set: + - '' + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: PAIR3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1,2] op -Q + - ['R SSC[1,2] C +MODE:[2,1]'] + - - SSC SSC[1,2] mac -Q -o 3 + - ['R SSC[1,2] P P '] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC[1,2] reboot + - ['R SSC[1,2] C !!!ready!!!'] + - - SSC SSC[1,2] op -S -o 3 + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] op -S -o [2,1] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + initial condition detail: target1 in AP mode, target2 in STA mode, two targets de-init + and init simple pair + restore cmd set: + - '' + - - SSC SSC[1,2] op -S -o 3 + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] op -S -o [2,1] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: PAIR2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:1'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: same as T2_1 but will NOT autogen a TC with initial condition + T2_2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 73.0 + tag: T2O_1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:2'] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 59.0 + tag: ATAPO1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, DHCP on + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: APM1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:1'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: target 1 as SoftAP, target 2 as STA + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 73.0 + tag: T2_1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:1 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + initial condition detail: same as OT2_1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: ATOT2_1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 129.0 + tag: ATAPSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: STA mode, connected to AP, running BIN0 (located on flash + id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: STAMBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: station mode, DHCP client on, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1-3] op -Q + - ['R SSC[1-3] C +CURMODE:3'] + - - SSC SSC[1-3] phy -Q -o 3 + - ['R SSC[1-3] C STA,n,40 C AP,n,40'] + force restore cmd set: + - '' + - - SSC SSC[1-3] reboot + - ['R SSC[1-3] C !!!ready!!!'] + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] + initial condition detail: '1. target 1 and target 2 set to AP+STA mode, target 3 + set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + restore cmd set: + - '' + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 sta -R -r 1 + - [R SSC1 C OK] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: T3_PHY1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, DHCP client on + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:3'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 3 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: target 1 as AP+STA, target 2 as AP+STA (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 3 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 80.0 + tag: T2_2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, single link, use + static ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 136.0 + tag: ATAPSTA6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, single link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 122.0 + tag: ATSTA6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, multi link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 115.0 + tag: ATSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, single link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ATSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: ATSTA3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, PC join AP, DHCP on + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: APM2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: station mode, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA1 + test script: InitCondBase diff --git a/components/test/README.md b/components/test/README.md new file mode 100644 index 000000000..0e4172d62 --- /dev/null +++ b/components/test/README.md @@ -0,0 +1,35 @@ +# The test folder in SDK + +## File Structure + +``` +test --- CIConfigs --- sanity_test1.yml (Runner config files) + | |-- stress_test1.yml + |-- TestCaseAll.yml (TestCaseFiles) + |-- TestEnvAll.yml (TestCaseFiles) + |-- InitialConditionAll.yml (TestCaseFiles) + |-- TestCaseScript --- ... (Test case scripts) +``` + +1. CIConfigs folder + * config for CI config files are put in this folder + * CI config files configs the cases and some other options for the CI job with same name +1. Test case files + * TestCaseAll.yml (test cases) + * InitialConditionAll.yml (initial conditions) + * TestEnvAll.yml (test environments) + * [how to modify test cases](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestCaseFiles.DesignNote.md) +1. Test case scripts + * some cases are implemented by specified script. those scripts are put in this folder. + + +## Modify test cases + +1. check if the "SDK" of the test case only contain the current SDK + * if Yes, then just modify the test case behavior + * if No: + 1. then remove current SDK name from "SDK" of the test case + 2. Add a new test case, and set "SDK" only support current SDK name +2. use [auto_test_script](https://gitlab.espressif.cn:6688/yinling/auto_test_script) to load the modified case and verify the modification +3. create a merge request and assign to HYL (or add comment @yinling for merging test). +After review it will be merged to SDK and will be The cases will be synced to database in auto_test_script. diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml new file mode 100644 index 000000000..c5e10b794 --- /dev/null +++ b/components/test/TestCaseAll.yml @@ -0,0 +1,13810 @@ +test cases: +- CI ready: 'Yes' + ID: ^WIFI_CONN_0601 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.PC WIFI CONNECTED + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式 + + 2.PC WIFI CONNECTED target1 + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + sub module: WIFI Connect + summary: list stations connected to soft ap test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: list SoftAP connected station + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ICMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ping -i + - ['R SSC1 C +PING:OK'] + - - SSC SSC1 ping -i -c 2 + - ['R SSC1 C +PING:OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.ping -i + + 2.ping -i -c 2' + sub module: ICMP + summary: ping function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: ping function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: SYS_MISC_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + comment: '' + execution time: 0.0 + expected result: 重启成功 + initial condition: None + initial condition description (auto): none + module: System + steps: 系统重启 + sub module: Misc + summary: test reboot function + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: sw reboot + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ARP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+send+block_arp_ip + - ['R PC_COM C +NIC_START:OK'] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr "192.168.11.240" + ethernet_len_type "ARP" ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_sender_hw_addr + "18:18:18:18:18:18" ethernet_len_type "ARP" ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_sender_proto_addr + ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + comment: '' + execution time: 0.0 + expected result: 1. PC can't recv ARP reply from target + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. PC send ARP req with target_hw_addr, sender_hw_addr and sender_proto_addr + not correct + sub module: ARP + summary: PC send invalid ARP request to target 2 + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: handling ARP request + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 2 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.4.1 -o 2 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target 1 OK + + 2.target1 ERROR + + 3.target1 ERROR + + 4.target2 jap target1 OK + + 5.target1 OK + + 6.target1 OK + + 7.target1 OK + + 8.target2 jap target1 OK' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\ + 4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\ + \ 设置softAP ip \n8.target1 设置正确的地址池\n9.target2 连接target1" + sub module: DHCP + summary: ap dhcp static ip interaction + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -S -i 0.0.0.0 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.JAP CONNETED + + 4.OK + + 5.等待10s,JAP fail' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: TCPIP + steps: '1.target1 关闭DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 jap AP + + 5.target1 设置sta ip 0.0.0.0 + + 6.target1 jap AP' + sub module: DHCP + summary: sta dhcp static ip interaction + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: AP mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 2 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.4.1 -o 2 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target 1 OK + + 2.target1 ERROR + + 3.target1 ERROR + + 4.target2 jap target1 OK + + 5.target1 OK + + 6.target1 OK + + 7.target1 OK + + 8.target2 jap target1 OK' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\ + 4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\ + \ 设置softAP ip \n8.target1 设置正确的地址池\n9.target2 连接target1 " + sub module: DHCP + summary: ap dhcp static ip interaction + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -S -i 0.0.0.0 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.JAP CONNETED + + 4.OK + + 5.等待10s,JAP fail' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: TCPIP + steps: '1.target1 关闭DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 jap AP + + 5.target1 设置sta ip 0.0.0.0 + + 6.target1 jap AP' + sub module: DHCP + summary: sta dhcp static ip interaction + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: SYS_MISC_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ram -H + - ['R SSC1 RE FREEHEAP:\d+\r\n'] + comment: '' + execution time: 0.0 + expected result: ' + + 可以查询到一个数值 + + ' + initial condition: None + initial condition description (auto): none + module: System + steps: 查询空闲ram + sub module: Misc + summary: get heap size test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: 'get heap size ' + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ARP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+send+block_arp_ip + - ['R PC_COM C +NIC_START:OK'] + - - NIC NIC1 SEND ARP arp_op_code 0xFF arp_target_proto_addr ethernet_dst_addr + "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + comment: '' + execution time: 0.0 + expected result: 1. PC can't recv ARP reply from target + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. PC send ARP with error op_code + sub module: ARP + summary: PC send invalid ARP request to target 4 + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: handling ARP request + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0412 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.关闭socket1 连接 + + 7.关闭socket2连接' + sub module: TCP + summary: close TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0403 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0402 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.关闭建立的socket1连接' + sub module: TCP + summary: "close TCP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.8266往PC上发送5字节数据' + sub module: TCP + summary: do TCP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_ADDR_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 mac -Q -o 3 + - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ + \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ + \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac" + sub module: MAC Address + summary: set mac, query mac + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0407 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0406 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0404 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 C +JAP:DISCONNECTED,4,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0408 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: STA mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: AP mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s 1000 + - ['R SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.ERROR + + 6.OK + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket1, + + 3.target1上使用步骤2创建的socket1,去发送数据 + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去发送数据 + + 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 + + 7.target1上shutdown 步骤4的socket2 + + 8.target1往socket2发送错误命令发送数据 + + 9.target1上不指定socket往上发送数据' + sub module: TCP + summary: send test. use socket in state that can't send + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 0.0.0.0 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -Q + - ['R SSC1 C +STAIP:0.0.0.0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -Q + - ['R SSC1 RE "\+STAIP:%%s"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ + 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: TCPIP + steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ + \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + sub module: DHCP + summary: dhcp client function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -E -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.STA&AP STARTED + + 4.STA STARTED + + 5.AP STARTED + + 6.OK + + 7.STA&AP STOPPED' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: TCPIP + steps: '1.target1 设置mode 为sta+softAP mode + + 2.target1 打开DHCP 3 + + 3.target1 查询DHCP 状态 + + 4.target1 查询sta DHCP 状态 + + 5.target1 查询softAP DHCP 状态 + + 6.target1 关闭 DHCP 3 + + 7.target1 查询 DHCP 状态' + sub module: DHCP + summary: dhcp status query + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ + \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ + 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + sub module: DHCP + summary: dhcp server function test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0303 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -n 5 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -n 6 + - ['R SSC2 C +SCAN:', R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set channel 6 + + 3.target2 上scan不到 channel 5 + + 4.target2 上查询channel 6的' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target1 断开连接AP + + 2.target1下设置ssid 和pwd 加密方式,set channel 6 + + 3.target2 上scan channel 5 + + 4.target2 上查询channel 6的' + sub module: WIFI Scan + summary: scan with scan config channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC2 sta -S -b + - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target2 上不能查询到此mac + + 2.target2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 + + 2.target2上查询' + sub module: WIFI Scan + summary: scan with scan config bssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -s .,juhg123 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s + - ['R SSC2 C +SCAN:', R SSC2 P , 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target 2上不能scan .,juhg123 + + 2.target1 set AP + + 3.target2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target 2 scan .,juhg123 + + 2.target1下设置ssid 和pwd 加密方式 + + 3.target2 scan ' + sub module: WIFI Scan + summary: scan with scan config ssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 10 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + sub module: WIFI Scan + summary: scan with several configs + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + - - SSC SSC1 ap -S -s -p 123456789 -h 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1 set AP,set ssid hidden, + + 5.target 2上不能查询到 + + 6.target 2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 5.target 2上查询 + + 6.target 2上查询' + sub module: WIFI Scan + summary: scan with scan config show hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.关闭建立的socket1连接' + sub module: UDP + summary: "close UDP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' + sub module: UDP + summary: do UDP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + sub module: WIFI Connect + summary: JAP query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query JAP status + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0702 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,3'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,2'] + comment: '' + execution time: 0.0 + expected result: '1. get status AP not exist in disconnect event + + 2. get status wrong password in disconnect event' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. sta connect to ap not exist + + 2. sta connect to ap with wrong password + + ' + sub module: WIFI Connect + summary: check wifi status wrong password, no ap found + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0703 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 C +JAP:DISCONNECTED,4,2'] + comment: '' + execution time: 0.0 + expected result: 1. connect status connect fail in disconnect evnet + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: check wifi status connect fail + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0701 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - [R SSC1 C QAP] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:1', 'R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:5'] + - - APC OFF + - [P PC_COM L OK, P SSC1 C bcn_timout] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:4'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. idle state + + 2. connecting state + + 3. got IP state + + 4. connect fail state' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. sta disconnected, query status + + 2. sta connect to AP, query status + + 3. got IP, query status + + 4. AP power off, query status when beacon timeout' + sub module: WIFI Connect + summary: check wifi status idle, connecting, got ip and connect fail + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DNS_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p 9001 + - ['R SSC1 RE \+CONNECT:\d+,OK'] + - - SSC SSC1 soc -S -s -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. connect, send, recv1. get host name "espressif.cn" + + 2. connect, send, recv' + sub module: DNS + summary: TCP connect to iot.espressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DNS_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] + comment: '' + execution time: 0.0 + expected result: 1.OK + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. get host name "espressif.cn" + sub module: DNS + summary: get host by name test + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0904 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p 1234567890 + - ['R SSC2 C +JAP:DISCONNECTED,1,204'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:DISCONNECTED,1,5'] + - - WIFI DISCONN + - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:DISCONNECTED,5,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_HANDSHAKE_TIMEOUT + + 3. succeed + + 4. succeed + + 5. disconnect event REASON_ASSOC_TOOMANY + + 6. succeed, target2 connect succeed + + 7. disconnect event REASON_ASSOC_EXPIRE' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1. config target1 softap max sta allowed 1 + + 2. target2 connect to target1 with wrong password + + 3. target2 disconnect + + 4. PC WIFI NIC connect to target1 + + 5. target2 connect to target1 with correct password + + 6. PC WIFI NIC disconnect + + 7. reconfig softap' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, + REASON_ASSOC_EXPIRE + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.123.123'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.STAIP:192.168.123.123' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: TCPIP + steps: '1.target1 打开DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 关闭DHCP 1 + + 5.target1 设置sta ip 192.168.123.123 + + 6.target1 查询 当前sta ip ' + sub module: IP + summary: sta set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 2 + - ['R SSC1 C +APIP:192.168.123.123'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.APIP:192.168.123.123 + + 6.OK' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\ + \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\ + \ 设置softAP ip 为target_ap_ip" + sub module: IP + summary: ap set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + sub module: WIFI Connect + summary: JAP query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query JAP status + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: station IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: station IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: softAP IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0701 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - [R SSC1 C QAP] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:1', 'R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:5'] + - - APC OFF + - [P PC_COM L OK, P SSC1 C bcn_timout] + - - SSC SSC1 sta -Q + - ['R SSC1 C +STA_STATUS:4'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. idle state + + 2. connecting state + + 3. got IP state + + 4. connect fail state' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. sta disconnected, query status + + 2. sta connect to AP, query status + + 3. got IP, query status + + 4. AP power off, query status when beacon timeout' + sub module: WIFI Connect + summary: check wifi status idle, connecting, got ip and connect fail + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0703 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 C +JAP:DISCONNECTED,4,2'] + comment: '' + execution time: 0.0 + expected result: 1. connect status connect fail in disconnect evnet + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: check wifi status connect fail + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 + -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: AP mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_SCAN_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC2 sta -S -b + - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target2 上不能查询到此mac + + 2.target2上查询到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 + + 2.target2上查询' + sub module: WIFI Scan + summary: scan with scan config bssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_SCAN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -n 5 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -n 6 + - ['R SSC2 C +SCAN:', R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set channel 6 + + 3.target2 上scan不到 channel 5 + + 4.target2 上查询channel 6的' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target1 断开连接AP + + 2.target1下设置ssid 和pwd 加密方式,set channel 6 + + 3.target2 上scan channel 5 + + 4.target2 上查询channel 6的' + sub module: WIFI Scan + summary: scan with scan config channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_SCAN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + - - SSC SSC1 ap -S -s -p 123456789 -h 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1 set AP,set ssid hidden, + + 5.target 2上不能查询到 + + 6.target 2上查询到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 5.target 2上查询 + + 6.target 2上查询' + sub module: WIFI Scan + summary: scan with scan config show hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_SCAN_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 10 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + sub module: WIFI Scan + summary: scan with several configs + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: softAP IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: softAP IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: station IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: station IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_ICMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ping -i + - ['R SSC1 C +PING:OK'] + - - SSC SSC1 ping -i -c 2 + - ['R SSC1 C +PING:OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.ping -i + + 2.ping -i -c 2' + sub module: ICMP + summary: ping function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: ping function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_ADDR_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -S -b 44:55:66:77:88:99 + - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -Q -o 1 + - ['R SSC2 A :\+STAMAC:(.+)\r\n'] + - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:22:33:44:55:66:77'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok + + 7.ok + + 8.ok + + 9.ok' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ + 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ + 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ + 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac" + sub module: MAC Address + summary: set mac and do scan/JAP/SAP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0108 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: AP mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0109 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC2 ip + - ['R SSC2 A :STAIP:(.+)\r\n'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - [R SOC1 UL 5] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['R SSC2 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.PC上SOC2 UDP传输,bing + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 + + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: AP mode, sendto test. use different ip, port + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: STA mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 1 + - [R SSC1 SL +1] + - - SOC SOC1 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + - - SOC SOC1 SENDTO 1473 + - [P SSC1 NC +RECVFROM, P SOC_COM C OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SOC SOC2 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recvfrom basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: STA mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.PC上SOC2 UDP传输,bing + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 + + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: STA mode, sendto test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没有到UDP包 + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: STA mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: STA mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. target2 join SoftAP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: softAP send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: station IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. target2 set to sta mode and join AP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: station send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: softAP IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -a 0 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:0'] + - - SSC SSC1 reboot + - [''] + - - DELAY 15 + - [''] + - - SSC SSC1 sta -Q + - ['R SSC1 C JAP:DISCONNECTED'] + - - SSC SSC1 sta -R -a 1 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:1'] + - - SSC SSC1 reboot + - ['R SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: WIFI MAC + steps: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + sub module: WIFI Connect + summary: auto reconnect test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: power on auto reconnect test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0404 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0406 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0407 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.8266往PC上发送5字节数据' + sub module: TCP + summary: do TCP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0402 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.关闭建立的socket1连接' + sub module: TCP + summary: "close TCP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0403 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0408 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0307 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0306 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0305 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0304 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 ap -S -s -p -t -h + 1 + - ['R SSC1 C +SAP:OK'] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 C +SCANDONE] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3.target1 set AP,set ssid hidden, + + 4.target 2上不能scan target_ap_mac' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 4.target 2上scan target_ap_mac' + sub module: WIFI Connect + summary: station SAP+JAP test, ssid hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: STA mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc上回accept + + 4.OK + + 5.target收到5 byte + + 6.PC收到5 byte + + 7.target收到 146000 byte + + 8.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC.' + sub module: TCP + summary: STA mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: STA mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: STA mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept OK + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept OK + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept OK + + 10.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: STA mode, shutdown basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6" + sub module: TCP + summary: STA mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: STA mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI CONN2 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to get IP (discover with requested + IP) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0211 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - DELAY 10 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to renew IP (direct send request) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0212 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 6.OK + + 7.收到 146000 数据 + + ' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target停止调用recv + + 6.PC send 100 * 1460 data to 8266, + + 7.target重新调用recv' + sub module: TCP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 6.OK + + 7.收到 146000 数据' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target停止调用recv + + 6.PC send 100 * 1460 data to 8266, + + 7.target重新调用recv' + sub module: TCP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0212 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0211 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - DELAY 10 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to renew IP (direct send request) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI CONN2 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to get IP (discover with requested + IP) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_ADDR_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 mac -Q -o 3 + - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ + \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ + \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n" + sub module: MAC Address + summary: set mac, query mac + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_ADDR_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -S -b 44:55:66:77:88:99 + - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -Q -o 1 + - ['R SSC2 A :\+STAMAC:(.+)\r\n'] + - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:22:33:44:55:66:77'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok + + 7.ok + + 8.ok + + 9.ok' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ + 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ + 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ + 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n" + sub module: MAC Address + summary: set mac and do scan/JAP/SAP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0411 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.8266往PC socket2上发送5字节数据 + + 7.8266往PC socket1上发送5字节数据' + sub module: TCP + summary: do TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 -m 8 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致 + + ' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致 + + ' + sub module: WIFI Connect + summary: AP config query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query AP config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 2 + - ['R SSC1 C +APIP:192.168.123.123'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.APIP:192.168.123.123 + + 6.OK' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\ + \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\ + \ 设置softAP ip 为target_ap_ip" + sub module: IP + summary: ap set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: STA mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 1 + - [R SSC1 SL +1] + - - SOC SOC1 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + - - SOC SOC1 SENDTO 1473 + - [P SSC1 NC +RECVFROM, P SOC_COM C OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SOC SOC2 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recvfrom basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: STA mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: STA mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没有到UDP包 + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: STA mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.PC上SOC2 UDP传输,bing + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 + + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: STA mode, sendto test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ + \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ + 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + sub module: DHCP + summary: dhcp server function test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -E -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.STA&AP STARTED + + 4.STA STARTED + + 5.AP STARTED + + 6.OK + + 7.STA&AP STOPPED' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: TCPIP + steps: '1.target1 设置mode 为sta+softAP mode + + 2.target1 打开DHCP 3 + + 3.target1 查询DHCP 状态 + + 4.target1 查询sta DHCP 状态 + + 5.target1 查询softAP DHCP 状态 + + 6.target1 关闭 DHCP 3 + + 7.target1 查询 DHCP 状态' + sub module: DHCP + summary: dhcp status query + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0801 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] + - - SSC SSC1 ap -S -s -p -t 0 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. auth change event old mode 0 new mode 2 + + 4. auth change event old mode 2 new mode 3 + + 5. auth change event old mode 3 new mode 4 + + 6. auth change event old mode 4 new mode 0' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set target1 softap auth mode 0 + + 2. target2 connect to target1 + + 3. set target1 softap auth mode 2, wait sta connected + + 4. set target1 softap auth mode 3, wait sta connected + + 5. set target1 softap auth mode 4, wait sta connected + + 6. set target1 softap auth mode 0, wait sta connected' + sub module: WIFI Connect + summary: test auth change event + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi auth changed event test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0108 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: AP mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -m + 1 + - ['R SSC1 C +SAP:OK'] + - - WIFI DISCONN + - ['R PC_COM C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set max allowed sta as 1 + + 2. use PC disconnect, + + 3.target 2 jap succeed + + 4.PC WIFI can not CONN' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 + + 2.use PC disconnect target1 + + 3.target 2 jap target1 + + 4.PC WIFI CONNECT target1' + sub module: WIFI Connect + summary: station SAP test, max allowed sta + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: station IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: softAP IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. target2 set to sta mode and join AP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: station send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. target2 join SoftAP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: softAP send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 -m 8 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + module: WIFI MAC + steps: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致' + sub module: WIFI Connect + summary: AP config query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query AP config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC2 ip + - ['R SSC2 A :STAIP:(.+)\r\n'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 5 + - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + - - SSC SSC2 soc -S -s -i -p -l 5 + - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK + + 7.OK' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: AP mode, recvfrom basic test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 + -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: AP mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: AP mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: AP mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0501 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 0 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC2 sta -R -r 2 + - ['R SSC2 C +RECONN:0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + comment: '' + execution time: 0.0 + expected result: '1.设置reconn,开启(此功能不需要重启系统) + + 2.target1 set AP + + 3.target2 JAP target1 成功 + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.成功 + + 7.查询reconn状态,关闭 + + 8.修改mode 成功 + + 9.等待15s,target2 不会自动重连target1' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\ + \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\ + 7.查询reconn状态,关闭\n8.target1 修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode" + sub module: WIFI Connect + summary: reconnect policy test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0502 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 5 + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + sub module: WIFI Connect + summary: will not do reconnect after manually disconnected + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -a 0 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:0'] + - - SSC SSC1 reboot + - [''] + - - DELAY 15 + - [''] + - - SSC SSC1 sta -Q + - ['R SSC1 C JAP:DISCONNECTED'] + - - SSC SSC1 sta -R -a 1 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:1'] + - - SSC SSC1 reboot + - ['R SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: WIFI MAC + steps: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + sub module: WIFI Connect + summary: auto reconnect test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: power on auto reconnect test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC2 sta -S + - [R SSC2 NP C +SCANDONE] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1下设置ssid 和pwd 、加密方式成功 + + 2.修改target 1的mode 为sta mode + + 3.target1的dhcp打开 + + 4.target1成功连接上AP + + 5.target2上不能查询到target_ssid + + 6.target1断开AP' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.修改target1的mode 为sta mode + + 3.target1的dhcp打开 + + 4.target1连接AP + + 5.target2查询target_ssid + + 6.target1断开AP' + sub module: WIFI Mode + summary: mode switch test (sta mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC2 sta -S + - [R SSC2 P , R SSC2 C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 change to AP mode + + 2.target1 set AP + + 3.target 1 的dhcp 打开 + + 4.target 1 成功连接上AP + + 5.target 2 上查询到target_ssid' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: WIFI MAC + steps: '1.target1 change to AP mode + + 2.target1下设置ssid 和pwd 加密方式 + + 3.target1 的dhcp 打开 + + 4.target1 连接AP + + 5.target2 上查询target_ssid' + sub module: WIFI Mode + summary: mode switch test (STA+AP mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:ERROR'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP + + 2.target 2 上查询到target_ssid + + 3. target1 can''t join AP + + 4. target1 can''t QAP' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.target 2 上查询target_ssid + + 3.target1 join AP + + 4.target1 DISCONN AP' + sub module: WIFI Mode + summary: mode switch test (AP mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0904 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p 1234567890 + - ['R SSC2 C +JAP:DISCONNECTED,1,204'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:DISCONNECTED,1,5'] + - - WIFI DISCONN + - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:DISCONNECTED,5,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_HANDSHAKE_TIMEOUT + + 3. succeed + + 4. succeed + + 5. disconnect event REASON_ASSOC_TOOMANY + + 6. succeed, target2 connect succeed + + 7. disconnect event REASON_ASSOC_EXPIRE' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. config target1 softap max sta allowed 1 + + 2. target2 connect to target1 with wrong password + + 3. target2 disconnect + + 4. PC WIFI NIC connect to target1 + + 5. target2 connect to target1 with correct password + + 6. PC WIFI NIC disconnect + + 7. reconfig softap' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, + REASON_ASSOC_EXPIRE + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 C +JAP:DISCONNECTED,1,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0901 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: basic function + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 C +JAP:DISCONNECTED,0,8'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:DISCONNECTED,2,15'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:DISCONNECTED,1,201'] + comment: '' + execution time: 0.0 + expected result: '1. disconnect event reason REASON_ASSOC_LEAVE + + 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT + + 3. disconnect event reason REASON_NO_AP_FOUND' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. sta connect to AP, and disconnect + + 2. connect to AP with wrong password + + 3. connect to AP not exist' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, + REASON_NO_AP_FOUND + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: STA mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2 OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: AP mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0501 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+block_ip + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - [''] + - - DELAY 10 + - ['R SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: 2. connect failed, no exception + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. PC do not reply any IP packet on NIC + + 2. target try to connect to TCP server with PC NIC IP' + sub module: TCP + summary: PC do not reply TCP SYN of target + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP connect and disconnect abnormal case + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] + comment: '' + execution time: 0.0 + expected result: 1.OK + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: 1. get host name "espressif.cn" + sub module: DNS + summary: get host by name test + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t UDP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p 9003 -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. sendto, recvfrom1. get host name "espressif.cn" + + 2. sendto, recvfrom' + sub module: DNS + summary: UDP send to iot.expressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p 9001 + - ['R SSC1 RE \+CONNECT:\d+,OK'] + - - SSC SSC1 soc -S -s -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. connect, send, recv1. get host name "espressif.cn" + + 2. connect, send, recv' + sub module: DNS + summary: TCP connect to iot.espressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: STA mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ + \ " + sub module: TCP + summary: STA mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept OK + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept OK + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept OK + + 10.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: STA mode, shutdown basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: STA mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: STA mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc上回accept + + 4.OK + + 5.target收到5 byte + + 6.PC收到5 byte + + 7.target收到 146000 byte + + 8.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC. ' + sub module: TCP + summary: STA mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: STA mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0116 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6" + sub module: TCP + summary: AP mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK,target1上accept 成功 + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: AP mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0115 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: AP mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.target收到5byte数据 + + 6.PC收到5byte数据 + + 7.target收到146000 byte数据 + + 8.OK,PC 收到146000 byte数据' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC.' + sub module: TCP + summary: AP mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept成功 + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept成功 + + 10.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: AP mode, shutdown basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: AP mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT 0 + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: AP mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ARP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+send+block_arp_ip + - ['R PC_COM C +NIC_START:OK'] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr ethernet_dst_addr + "ff:ff:ff:ff:ff:ff" + - ['P PC_COM C +NIC_SEND:OK', P NIC1 PDU (Ethernet.dst_addr=)(ARP.hw_type="Ethernet")(ARP.protocol="IPv4")(ARP.hw_len="6")(ARP.proto_len="4")(ARP.op_code="reply")(ARP.sender_hw_addr=)(ARP.sender_proto_addr=)(ARP.target_hw_addr=)(ARP.target_proto_addr=)] + comment: '' + execution time: 0.0 + expected result: 1. PC recv target valid ARP reply + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. PC send ARP req to target + sub module: ARP + summary: PC send valid ARP request to target + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: handling ARP request + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0304 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0305 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0306 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0307 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' + sub module: UDP + summary: do UDP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + ' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.关闭建立的socket1连接' + sub module: UDP + summary: "close UDP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0303 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0601 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.PC WIFI CONNECTED + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式 + + 2.PC WIFI CONNECTED target1 + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + sub module: WIFI Connect + summary: list stations connected to soft ap test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: list SoftAP connected station + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0209 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - DELAY 20 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client and new client able to get IP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. get IP 192.168.4.2 + + 5. can only find target2 with IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. PC NIC connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. target2 connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig and new client able to get first IP in pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI DISCONN2 + - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 4. succeed + + 5. succeed + + 6. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. PC WIFI NIC connect to target1 softap + + 4. target2 connect to target1 softap and disnnect + + 5. PC release IP and disconnected + + 6. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server prefer assign released IP to new client + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 4. get IP 192.168.4.2 - 192.168.4.4 + + 5. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. target2 change mac, connect to softap, disconnect + + 4. Loop step3 twice + + 5. change to first mac, connect to softap' + sub module: DHCP + summary: dhcp server assign same IP to same MAC when it's not released + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0205 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['P SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. target2 wifi disconnected' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 + + 3. disable DHCP server, do config and enable' + sub module: DHCP + summary: disconnect STA if config dhcp server + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - DELAY 90 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - DELAY 60 + - [''] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 5. succeed + + 6. succeed + + 8. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP timeout as 1 minute + + 3. target2 connect to target1 + + 4. wait 90 seconds + + 5. check if target2 IP is same + + 6. target2 disconnect + + 7. wait 60s + + 8. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server timeout test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 2 4 "['01','02']" "[2,3]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - DELAY 20 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:0.0.0.0'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4.1 succeed + + 4.2 failed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1(.4.2 - .4.3) + + 3. target change mac, connect to Target1 + + 4. Loop step3 twice' + sub module: DHCP + summary: dhcp server ip pool empty + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 3 4 "['01','02','03']" "[2,3,4]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3,4: get IP from dhcp pool with correct sequence' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1 + + 3. target change mac, connect to Target1 + + 4. Loop step3' + sub module: DHCP + summary: dhcp server ip pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1 关闭DHCP 2 OK + + 2.target1 设置ip 成功 + + 3.设置dhcp 地址池 OK + + 4.ERROR + + 5.ERROR + + 6.ERROR + + 7.target1 打开DHCP ok' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + module: TCPIP + steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ + 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" + sub module: DHCP + summary: server dhcp lease test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc server accept OK + + 4.OK + + 5.OK + + 6.OK + + 7.target收到146000 byte + + ' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target上不进行recv + + 6.PC send 100 * 1460 data to target, + + 7.在target上开始recv' + sub module: TCP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2 OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: AP mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: STA mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 0.0.0.0 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -Q + - ['R SSC1 C +STAIP:0.0.0.0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -Q + - ['R SSC1 RE "\+STAIP:%%s"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ + 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: TCPIP + steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ + \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + sub module: DHCP + summary: dhcp client function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s 1000 + - ['R SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.ERROR + + 6.OK + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket1, + + 3.target1上使用步骤2创建的socket1,去发送数据 + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去发送数据 + + 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 + + 7.target1上shutdown 步骤4的socket2 + + 8.target1往socket2发送错误命令发送数据 + + 9.target1上不指定socket往上发送数据' + sub module: TCP + summary: send test. use socket in state that can't send + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: STA mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4 OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: AP mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DNS_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t UDP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p 9003 -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. sendto, recvfrom1. get host name "espressif.cn" + + 2. sendto, recvfrom' + sub module: DNS + summary: UDP send to iot.expressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 4. get IP 192.168.4.2 - 192.168.4.4 + + 5. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. target2 change mac, connect to softap, disconnect + + 4. Loop step3 twice + + 5. change to first mac, connect to softap' + sub module: DHCP + summary: dhcp server assign same IP to same MAC when it's not released + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI DISCONN2 + - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 4. succeed + + 5. succeed + + 6. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. PC WIFI NIC connect to target1 softap + + 4. target2 connect to target1 softap and disnnect + + 5. PC release IP and disconnected + + 6. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server prefer assign released IP to new client + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - DELAY 90 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - DELAY 60 + - [''] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 5. succeed + + 6. succeed + + 8. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP timeout as 1 minute + + 3. target2 connect to target1 + + 4. wait 90 seconds + + 5. check if target2 IP is same + + 6. target2 disconnect + + 7. wait 60s + + 8. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server timeout test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0205 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['P SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. target2 wifi disconnected' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 + + 3. disable DHCP server, do config and enable' + sub module: DHCP + summary: disconnect STA if config dhcp server + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 3 4 "['01','02','03']" "[2,3,4]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3,4: get IP from dhcp pool with correct sequence' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1 + + 3. target change mac, connect to Target1 + + 4. Loop step3' + sub module: DHCP + summary: dhcp server ip pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 2 4 "['01','02']" "[2,3]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - DELAY 20 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:0.0.0.0'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4.1 succeed + + 4.2 failed' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1(.4.2 - .4.3) + + 3. target change mac, connect to Target1 + + 4. Loop step3 twice' + sub module: DHCP + summary: dhcp server ip pool empty + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc server accept OK + + 4.OK + + 5.OK + + 6.OK + + 7.target收到146000 byte' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target上不进行recv + + 6.PC send 100 * 1460 data to target, + + 7.在target上开始recv' + sub module: TCP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1 关闭DHCP 2 OK + + 2.target1 设置ip 成功 + + 3.设置dhcp 地址池 OK + + 4.ERROR + + 5.ERROR + + 6.ERROR + + 7.target1 打开DHCP ok' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: TCPIP + steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ + 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" + sub module: DHCP + summary: server dhcp lease test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4 OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: AP mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. get IP 192.168.4.2 + + 5. can only find target2 with IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. PC NIC connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. target2 connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig and new client able to get first IP in pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0209 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - DELAY 20 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client and new client able to get IP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0412 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.关闭socket1 连接 + + 7.关闭socket2连接' + sub module: TCP + summary: close TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0411 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.8266往PC socket2上发送5字节数据 + + 7.8266往PC socket1上发送5字节数据' + sub module: TCP + summary: do TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0901 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: basic function + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 C +JAP:DISCONNECTED,0,8'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:DISCONNECTED,2,15'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:DISCONNECTED,1,201'] + comment: '' + execution time: 0.0 + expected result: '1. disconnect event reason REASON_ASSOC_LEAVE + + 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT + + 3. disconnect event reason REASON_NO_AP_FOUND' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. sta connect to AP, and disconnect + + 2. connect to AP with wrong password + + 3. connect to AP not exist' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, + REASON_NO_AP_FOUND + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 C +JAP:DISCONNECTED,1,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ARP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+send+block_arp_ip + - ['R PC_COM C +NIC_START:OK'] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_hw_len + 10 ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_proto_len + 10 ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + comment: '' + execution time: 0.0 + expected result: 1. PC can't recv ARP reply from target + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. PC send ARP req with hw_addr_len and proto_addr_len not correct + sub module: ARP + summary: PC send invalid ARP request to target 3 + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: handling ARP request + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 C +JAP:DISCONNECTED,4,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0503 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -r 0 + - [R SSC1 C OK] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,3'] + - - DELAY 5 + - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,2'] + - - DELAY 5 + - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] + - - SSC SSC1 sta -R -r 1 + - [SSC SSC1 C OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. not reconnect when connect failed, status when recv disconnect event is correct + + 3. not reconnect when connect failed, status when recv disconnect event is correct + + 4. succeed' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. set sta reconnect policy as not reconnect + + 2. sta connect to ap not exist + + 3. sta connect to ap with wrong password + + 4. reset sta reconnect policy as auto reconnect + + ' + sub module: WIFI Connect + summary: reconnect policy interact with failed STA connect/reconnect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: AP mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -m + 1 + - ['R SSC1 C +SAP:OK'] + - - WIFI DISCONN + - ['R PC_COM C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set max allowed sta as 1 + + 2. use PC disconnect, + + 3.target 2 jap succeed + + 4.PC WIFI can not CONN' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 + + 2.use PC disconnect target1 + + 3.target 2 jap target1 + + 4.PC WIFI CONNECT target1' + sub module: WIFI Connect + summary: station SAP test, max allowed sta + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: softAP IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + - - SSC SSC1 ap -S -s -p -t 5 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set\ + \ AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2\ + \ jap succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1\ + \ set AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target\ + \ 2 上查询到target_ssid" + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\ + \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\ + \ \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2\ + \ jap target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid\ + \ 和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid" + sub module: WIFI Connect + summary: station SAP+JAP test, different encryption + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -t 0 -n 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -t 0 -n 13 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -n 15 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,\d+,1"%%()'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set channel 1 + + 2.target 2 jap succeed + + 3.target1 set AP,set channel 10 + + 4.target 2 jap succeed + + 5.target1 set AP,set channel 15 + + 6.target 2 上查询到target_ssid' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set channel 1 + + 2.target2 jap target 1 + + 3.target1下设置ssid 和pwd 加密方式,set channel 10 + + 4.target2 jap target 1 + + 5.target1下设置ssid 和pwd 加密方式,set channel 15 + + 6.target 2 上查询target_ssid' + sub module: WIFI Connect + summary: station SAP+JAP test, different channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 ap -S -s -p -t -h + 1 + - ['R SSC1 C +SAP:OK'] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 C +SCANDONE] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3.target1 set AP,set ssid hidden, + + 4.target 2上不能scan target_ap_mac' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 4.target 2上scan target_ap_mac' + sub module: WIFI Connect + summary: station SAP+JAP test, ssid hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.123.123'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.STAIP:192.168.123.123' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: TCPIP + steps: '1.target1 打开DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 关闭DHCP 1 + + 5.target1 设置sta ip 192.168.123.123 + + 6.target1 查询 当前sta ip' + sub module: IP + summary: sta set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0702 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,3'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,2'] + comment: '' + execution time: 0.0 + expected result: '1. get status AP not exist in disconnect event + + 2. get status wrong password in disconnect event' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. sta connect to ap not exist + + 2. sta connect to ap with wrong password' + sub module: WIFI Connect + summary: check wifi status wrong password, no ap found + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi connect status check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0801 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] + - - SSC SSC1 ap -S -s -p -t 0 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. auth change event old mode 0 new mode 2 + + 4. auth change event old mode 2 new mode 3 + + 5. auth change event old mode 3 new mode 4 + + 6. auth change event old mode 4 new mode 0' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + module: WIFI MAC + steps: '1. set target1 softap auth mode 0 + + 2. target2 connect to target1 + + 3. set target1 softap auth mode 2, wait sta connected + + 4. set target1 softap auth mode 3, wait sta connected + + 5. set target1 softap auth mode 4, wait sta connected + + 6. set target1 softap auth mode 0, wait sta connected' + sub module: WIFI Connect + summary: test auth change event + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi auth changed event test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + - - SSC SSC1 ap -S -s -p -t 5 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set\ + \ AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2\ + \ jap succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1\ + \ set AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target\ + \ 2 上查询到target_ssid" + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\ + \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\ + \ \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2\ + \ jap target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid\ + \ 和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid" + sub module: WIFI Connect + summary: station SAP+JAP test, different encryption + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_ARP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s + + - [R PC_COM C OK] + - - NIC NIC1 START capture+send+block_arp_ip + - ['R PC_COM C +NIC_START:OK'] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_hw_type 0xF1F1 arp_target_proto_addr + ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + - - NIC NIC1 SEND ARP arp_op_code "request" arp_proto_type 0xF1F1 arp_target_proto_addr + ethernet_dst_addr "ff:ff:ff:ff:ff:ff" + - [''] + - - DELAY 2 + - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] + comment: '' + execution time: 0.0 + expected result: 1. PC can't recv ARP reply from target + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: 1. PC send ARP req with unsupported hw type and protocol type + sub module: ARP + summary: PC send invalid ARP request to target 1 + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: handling ARP request + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0503 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -r 0 + - [R SSC1 C OK] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,3'] + - - DELAY 5 + - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,2'] + - - DELAY 5 + - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] + - - SSC SSC1 sta -R -r 1 + - [SSC SSC1 C OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. not reconnect when connect failed, status when recv disconnect event is correct + + 3. not reconnect when connect failed, status when recv disconnect event is correct + + 4. succeed' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. set sta reconnect policy as not reconnect + + 2. sta connect to ap not exist + + 3. sta connect to ap with wrong password + + 4. reset sta reconnect policy as auto reconnect' + sub module: WIFI Connect + summary: reconnect policy interact with failed STA connect/reconnect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0502 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 5 + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + sub module: WIFI Connect + summary: will not do reconnect after manually disconnected + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0501 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 0 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC2 sta -R -r 2 + - ['R SSC2 C +RECONN:0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + comment: '' + execution time: 0.0 + expected result: '1.设置reconn,开启(此功能不需要重启系统) + + 2.target1 set AP + + 3.target2 JAP target1 成功 + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.成功 + + 7.查询reconn状态,关闭 + + 8.修改mode 成功 + + 9.等待15s,target2 不会自动重连target1' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\ + \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\ + 7.查询reconn状态,关闭\n8.target1 修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode" + sub module: WIFI Connect + summary: reconnect policy test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0115 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: AP mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_SCAN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -s .,juhg123 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s + - ['R SSC2 C +SCAN:', R SSC2 P , 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target 2上不能scan .,juhg123 + + 2.target1 set AP + + 3.target2上查询到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1.target 2 scan .,juhg123 + + 2.target1下设置ssid 和pwd 加密方式 + + 3.target2 scan ' + sub module: WIFI Scan + summary: scan with scan config ssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK,target1上accept 成功 + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: AP mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0116 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ + \ " + sub module: TCP + summary: AP mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT 0 + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: AP mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept成功 + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept成功 + + 10.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: AP mode, shutdown basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.target收到5byte数据 + + 6.PC收到5byte数据 + + 7.target收到146000 byte数据 + + 8.OK,PC 收到146000 byte数据' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC. ' + sub module: TCP + summary: AP mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) diff --git a/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py b/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py new file mode 100755 index 000000000..e11ae6f1d --- /dev/null +++ b/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py @@ -0,0 +1,130 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +from TCAction import CmdHandler +import time + + +ATCmdList = ["GMR", + "UART=115200,8,1,0,0", + "CWMODE=3", + "CWJAP=\"TL_WR845N_T\",\"1234567890\"", + "CWLAP", + "CWQAP", + "CWSAP=\"asdf\",\"123456789\",5,3", + "CWLIF", + "CWDHCP=3", + "AT+CWAUTOCONN", + "CIPSTAMAC=\"18:fe:34:97:f3:43\"", + "CIPAPMAC=\"1a:fe:34:97:f3:43\"", + "CIPSTA=\"192.168.1.2\"", + "CIPAP=\"192.168.4.1\"", + "CIPSTATUS", + "CIPSTART=\"UDP\",\"192.168.1.4\",6531,7895,1", + "CIPSTART=\"TCP\",\"192.168.1.4\",6531", + "CIPCLOSE", + "CIFSR", + "CIPMUX=1", + "CIPSERVER=1,4567", + "CIPMODE=0", + "CIPSTO=7200", + "PING=\"192.168.1.4\""] + + +class CmdInterruptTest(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=20, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def load_and_exe_one_step(self, checker_stings, test_action_strings, fail_string, + check_freq=0.1, check_time=50, sleep_time=0.1): + # set checker for next executing step + checkers = CmdHandler.parse_results(checker_stings, self.test_env) + self.result_cntx.set_next_step(checkers, check_time, check_freq) + # execute 1 step + for action_string in test_action_strings: + test_action = CmdHandler.parse_action(action_string, self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + time.sleep(sleep_time) + + ret = self.wait_to_execute() + + if ret is False: # # timeout + self.result_cntx.set_result(fail_string) + if ret == check_time: + self.result_cntx.set_result(fail_string) + ret = False + + self.require_waiting() + + return ret + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # step 1, sleep time 0.1 + for cmd1 in ATCmdList: + # check if match CMD - AT - busy - OK/ERROR pattern + checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] + test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + # check again if match CMD - OK/ERROR - AT - OK pattern + checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] + test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + NativeLog.add_trace_critical("CMD Fail: AT+%s; sleep time is 0.1" % cmd1) + + # step 2, sleep time 0 + for cmd1 in ATCmdList: + # check if match CMD - AT - busy - OK/ERROR pattern + checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] + test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + # check again if match CMD - OK/ERROR - AT - OK pattern + checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] + test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + NativeLog.add_trace_critical("CMD Fail: AT+%s; sleep time is 0" % cmd1) + + # step 3, cat string + for cmd1 in ATCmdList: + # check if match CMD - AT - busy - OK/ERROR pattern + checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] + test_action_string = ["ATSO AT1 AT+%s\r\nAT\r\n" % cmd1] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + # check again if match CMD - OK/ERROR - AT - OK pattern + checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] + test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] + fail_string = "Fail, Fail on step 1" + if self.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, sleep_time=0.1) is False: + NativeLog.add_trace_critical("CMD Fail: AT+%s; cat string" % cmd1) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATFunc/LAP.py b/components/test/TestCaseScript/ATFunc/LAP.py new file mode 100644 index 000000000..b389e48c0 --- /dev/null +++ b/components/test/TestCaseScript/ATFunc/LAP.py @@ -0,0 +1,64 @@ +from TCAction import TCActionBase +import time +import re + + +class LAP(TCActionBase.CommonTCActionBase): + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + # restore set LAPOPT + if self.load_and_exe_one_step(["R AT1 L OK"], + ["ATS AT1 AT+CWLAPOPT=0,127"], + "Failed to set LAP option") is False: + return + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # step 1. set LAPOPT + if self.load_and_exe_one_step(["R AT1 L OK"], + ["ATS AT1 AT+CWLAPOPT=1,4"], + "Failed to set LAP option") is False: + return + + # step 2. LAP + if self.load_and_exe_one_step(["R AT1 A :([[^OK]]+)OK"], # [] is list generator, use [[]] for [] + ["ATS AT1 AT+CWLAP"], + "Failed to LAP") is False: + return + lap_result = self.get_parameter("lap_result") + rssi_list = re.findall("CWLAP:\((-\d+)\)", lap_result) + if len(rssi_list) > 1: + for i in range(len(rssi_list)-1): + if int(rssi_list[i]) < int(rssi_list[i+1]): + break + else: + self.result_cntx.set_result("Succeed") + else: + self.result_cntx.set_result("Succeed") + pass + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + pass + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/ATFunc/SendDataValidation.py b/components/test/TestCaseScript/ATFunc/SendDataValidation.py new file mode 100755 index 000000000..27f1e7f7c --- /dev/null +++ b/components/test/TestCaseScript/ATFunc/SendDataValidation.py @@ -0,0 +1,161 @@ +from TCAction import TCActionBase +from TCAction import CmdHandler +from NativeLog import NativeLog +import time +import threading +import sys +reload(sys) +sys.setdefaultencoding('iso-8859-1') # # use encoding that with 1 Byte length and contain 256 chars + + +VALIDATION_STRING = "".join([chr((m+65) % 256) for m in range(256)]) # make it start from 'A' + + +class ResultCheckCntx(TCActionBase.ResultCheckContext): + + def __init__(self, test_action, test_env, name): + TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) + pass + + def run(self): + tx_result = -1 + rx_result = -1 + + while True: + exit_flag = self.wait_exit_event(2) + # force exit + if exit_flag is True: + break + try: + self.lock_data() + rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) + tx_port = filter(lambda x: x[0] == "SOC2", self.data_cache) + finally: + self.unlock_data() + + if len(rx_port) == 1: + data = rx_port[0][1] + rx_result = data.find(VALIDATION_STRING) + if len(tx_port) == 1: + data = tx_port[0][1] + tx_result = data.find(VALIDATION_STRING) + + if tx_result != -1: + self.test_action.tx_check_done.set() + if rx_result != -1: + self.test_action.rx_check_done.set() + + +class SendDataValidation(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.timestamp = time.strftime("%d%H%M%S", time.localtime()) + self.tx_check_done = threading.Event() + self.rx_check_done = threading.Event() + + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + # enable target TCP TX + tx_enable = self.tx_enable + # enable target TCP RX + rx_enable = self.rx_enable + # transparent mode select + is_transparent_mode = self.is_transparent_mode + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step1 create PC server + checker_stings = ["SOCR SOC_COM L OK"] + test_action_string = ["SOC SOC1 LISTEN "] + fail_string = "Fail, Fail on create PC server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 target connect, switch to transparent + checker_stings = ["SOCR SOC1 C +ACCEPT", "ATR AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] + fail_string = "Fail, Fail on connect to PC server" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["SOCR SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC2"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # set to transparent mode + if is_transparent_mode is True: + checker_stings = ["ATR AT1 L OK"] + test_action_strings = ["ATS AT1 AT+CIPMODE=1"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["ATR AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + else: + checker_stings = ["ATR AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=256"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 + + # switch to new result check context + self.result_cntx.stop_thread() + self.result_cntx.join() + self.result_cntx = ResultCheckCntx(self, self.test_env, self.tc_name) + self.result_cntx.start() + + # step 3 send data + if rx_enable is True: + test_action = CmdHandler.parse_action("SOC SOC2 SEND 256", self.test_env) + CmdHandler.do_actions(test_action[0], self.test_env) + self.rx_check_done.wait(5) + if self.rx_check_done.isSet() is False: + # rx fail + return + # flush all data + self.result_cntx.data_flush() + self.tx_check_done.clear() + + if tx_enable is True: + test_action = CmdHandler.parse_action("ATSN AT1 256", self.test_env) + CmdHandler.do_actions(test_action[0], self.test_env) + self.tx_check_done.wait(5) + if self.tx_check_done.isSet() is False: + # tx fail + return + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + pass + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATFunc/UARTTest.py b/components/test/TestCaseScript/ATFunc/UARTTest.py new file mode 100644 index 000000000..184f440d4 --- /dev/null +++ b/components/test/TestCaseScript/ATFunc/UARTTest.py @@ -0,0 +1,164 @@ +import socket +import serial + +from TCAction import PerformanceTCBase +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class UARTTest(PerformanceTCBase.PerformanceTCBase): + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.test_mode = "command" + self.baudrate = None + self.bytesize = None + self.parity = None + self.stopbits = None + self.xonxoff = None + self.rtscts = None + + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + # restore UART config + self.restore_serial_port("AT1") + PerformanceTCBase.PerformanceTCBase.cleanup(self) + + STOP_BITS = { + 1: serial.STOPBITS_ONE, + 2: serial.STOPBITS_ONE_POINT_FIVE, + 3: serial.STOPBITS_TWO, + } + BYTE_SIZE = { + 5: serial.FIVEBITS, + 6: serial.SIXBITS, + 7: serial.SEVENBITS, + 8: serial.EIGHTBITS, + } + PARITY = { + 0: serial.PARITY_NONE, + 1: serial.PARITY_ODD, + 2: serial.PARITY_EVEN, + } + RTSCTS = {} + + def config_serial_port(self): + port = self.test_env.get_port_by_name("AT1") + kwargs = dict() + if self.baudrate is not None: + kwargs["baudrate"] = self.baudrate + if self.bytesize is not None: + kwargs["bytesize"] = self.BYTE_SIZE[self.bytesize] + if self.parity is not None: + kwargs["parity"] = self.PARITY[self.parity] + if self.stopbits is not None: + kwargs["stopbits"] = self.STOP_BITS[self.stopbits] + if self.xonxoff is not None: + kwargs["xonxoff"] = self.xonxoff + if self.rtscts is not None: + kwargs["rtscts"] = self.rtscts + NativeLog.add_prompt_trace("[change PC UART config] %s" % kwargs) + port.reconfig(**kwargs) + + def send_commands(self): + # first change UART config + self.config_serial_port() + # do send commands + for i in range(1, 256): + cmd = bytes().join([chr(x % 256) for x in range(i)]) + try: + self.serial_write_line("AT1", cmd) + except StandardError, e: + NativeLog.add_exception_log(e) + pass + self.flush_data("AT1") + # restore UART config + self.restore_serial_port("AT1") + + def send_data(self): + # create TCP connection and enter send mode + pc_ip = self.get_parameter("pc_ip") + tcp_port = self.get_parameter("test_tcp_port1") + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, tcp_port)) + server_sock.settimeout(10) + server_sock.listen(5) + self.serial_write_line("AT1", "AT+CIPSTART=\"TCP\",\"%s\",%s" % (pc_ip, tcp_port)) + self.check_response("AT1", "OK") + sock, addr = server_sock.accept() + server_sock.close() + self.serial_write_line("AT1", "AT+CIPSEND=1460") + self.check_response("AT1", ">") + # change UART config + self.config_serial_port() + # send data + try: + self.serial_write("AT1", bytes().join([chr(x % 256) for x in range(146000)])) + except StandardError, e: + NativeLog.add_exception_log(e) + pass + sock.send("A"*1460) + # restore UART config + sock.close() + self.restore_serial_port("AT1") + + def pass_through_mode(self): + # create TCP connection and enter pass through mode + pc_ip = self.get_parameter("pc_ip") + tcp_port = self.get_parameter("test_tcp_port1") + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, tcp_port)) + server_sock.settimeout(10) + server_sock.listen(5) + self.serial_write_line("AT1", "AT+CIPMODE=1") + self.check_response("AT1", "OK") + self.serial_write_line("AT1", "AT+CIPSTART=\"TCP\",\"%s\",%s" % (pc_ip, tcp_port)) + self.check_response("AT1", "OK") + sock, addr = server_sock.accept() + server_sock.close() + self.serial_write_line("AT1", "AT+CIPSEND") + self.check_response("AT1", ">") + # change UART config + self.config_serial_port() + # send data + try: + self.serial_write("AT1", bytes().join([chr(x % 256) for x in range(146000)])) + except StandardError, e: + NativeLog.add_exception_log(e) + pass + sock.send("A" * 1460) + # restore UART config + sock.close() + self.restore_serial_port("AT1") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + # test sending command + try: + if self.test_mode == "command": + self.send_commands() + elif self.test_mode == "send_data": + self.send_data() + elif self.test_mode == "pass_through": + self.pass_through_mode() + else: + raise StandardError("test mode not supported: %s" % self.test_mode) + self.set_result("Succeed") + except StandardError, e: + NativeLog.add_exception_log(e) + self.set_result("Failed") + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/ATFunc/__init__.py b/components/test/TestCaseScript/ATFunc/__init__.py new file mode 100755 index 000000000..5a3bbc44d --- /dev/null +++ b/components/test/TestCaseScript/ATFunc/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["TCPClientMulti", "TCPClientSingle", "TCPServerMulti", + "TCPTransparent", "UDPMulti", "UDPSingle"] \ No newline at end of file diff --git a/components/test/TestCaseScript/ATStress/ATPassThrough.py b/components/test/TestCaseScript/ATStress/ATPassThrough.py new file mode 100755 index 000000000..5149ffe3d --- /dev/null +++ b/components/test/TestCaseScript/ATStress/ATPassThrough.py @@ -0,0 +1,179 @@ +import time + +from TCAction import TCActionBase +from NativeLog import NativeLog + + +BEACON_TIMEOUT = 3 +WAIT_FOR_RECONNECT = 20 + + +class ATPassThrough(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.do_scan = True + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + tx_enable = self.tx_enable + rx_enable = self.rx_enable + att_set = self.att_set + do_scan = self.do_scan + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPClientMulti script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # step0, set att and join ap + fail_string = "Fail, Fail on JAP, set to single link mode" + + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT 1"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 C ready"] + test_action_string = ["ATS AT1 AT+RST"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATS AT1 AT+CWMODE=1"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATC AT1 CWJAP "] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATS AT1 AT+CIPMUX=0"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step1, create TCP connection and enter pass through mode + fail_string = "Fail, Fail on create server, create connection or enter pass through mode" + + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 LISTEN "] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] + test_action_string = ["ATC AT1 CIPSTART \"TCP\" "] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_strings = ["ATS AT1 AT+CIPMODE=1"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC2"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step2 + # while + # set att from, send data on both direction + # if TCP connection disconnected, then set att to 1, wait reconnect succeed, continue test + for i in xrange(test_count): + for _att in att_set: + + # set att + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT %d" % _att] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + time.sleep(BEACON_TIMEOUT) + + # do scan to get ssid + if do_scan is True: + checker_stings = [] + test_action_string = ["ATSO AT1 +++"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATC AT1 CWLAP "] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # send data + checker_stings = [] + test_action_string = [] + if tx_enable is True: + checker_stings += ["P SOC2 RL %d" % at_send_length] + test_action_string += ["ATSN AT1 %d" % at_send_length] + if rx_enable is True: + checker_stings += ["P AT1 RL %d" % soc_send_length] + test_action_string += ["SOC SOC2 SEND %d" % soc_send_length] + + if len(test_action_string) > 0: + if self.load_and_exe_one_step(checker_stings, test_action_string, "", + check_freq=1, check_time=30) is False: + # send data fail + NativeLog.add_prompt_trace("Failed to send data @ att %d" % _att) + # set att back to 1 + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT 1"] + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + # wait for reconnect + time.sleep(WAIT_FOR_RECONNECT) + fail_string = "Failed, failed to accept socket" + checker_stings = ["SOCR SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC2"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + break + pass + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/ATSleep.py b/components/test/TestCaseScript/ATStress/ATSleep.py new file mode 100644 index 000000000..586862a77 --- /dev/null +++ b/components/test/TestCaseScript/ATStress/ATSleep.py @@ -0,0 +1,251 @@ +import random +import os +import time + +from TCAction import TCActionBase, PerformanceTCBase +from NativeLog import NativeLog +from Utility import MakeFolder +from Utility import MultimeterUtil + +LOG_PATH = os.path.join("AT_LOG", "SLEEP") + +SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] +SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) + +SAMPLE_RATE_SLEEP_MODE_CHANGE = 0.002 +SAMPLE_NUM_SLEEP_MODE_CHANGE = 256 + +SAMPLE_RATE = 0.002 +SAMPLE_NUM = 512 +MAX_VALUE = 1 +Y_AXIS_LABEL = "Current (mA)" +GPIO_EDGE_DELAY = 120 # 20 ms + +NONE_SLEEP_MIN_CUR = 30 +LIGHT_SLEEP_MIN_CUR = 1.5 +MODEM_SLEEP_MIN_CUR = 20 + +GPIO_WAKE_UP = 15 + +AT_WAKE_UP_IND_PIN = 14 +AT_WAKE_UP_PIN = 12 + + +class ATSleep(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.test_mode = "mode_change" + self.test_count = 100 + self.sleep_mode = SLEEP_MODE_LIST + self.sleep_wake_pin = AT_WAKE_UP_PIN + self.sleep_wakeup_ind_pin = AT_WAKE_UP_IND_PIN + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, + "AT_AUTO_SLEEP_%s_%s" % + (self.test_mode, + time.strftime("%d%H%M%S", time.localtime())))) + self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) + + @staticmethod + def find_min_items(item_list, count): + assert count < len(item_list) + min_items = [] + for i in range(count): + min_val = min(item_list) + min_items.append(min_val) + item_list.remove(min_val) + return min_items + + def sleep_mode_change(self, sleep_mode): + result = True + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] %s start" % sleep_mode) + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + # set sleep mode + self.serial_write_line("AT1", "AT+SLEEP=%d" % sleep_mode_enum) + self.check_response("AT1", "OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] mode set") + time.sleep(10) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE_SLEEP_MODE_CHANGE, + sample_num=SAMPLE_NUM_SLEEP_MODE_CHANGE, + max_value=MAX_VALUE) + # do check measure + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] measure done, average min current %f" % average_val) + + if sleep_mode == "none_sleep": + if average_val < NONE_SLEEP_MIN_CUR: + result = False + elif sleep_mode == "light_sleep": + if average_val > LIGHT_SLEEP_MIN_CUR: + result = False + elif sleep_mode == "modem_sleep": + if average_val > MODEM_SLEEP_MIN_CUR or average_val < LIGHT_SLEEP_MIN_CUR: + result = False + if result is False: + NativeLog.add_trace_critical("[AutoSleep][ModeChange] %s failed" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, "%s_fail" % sleep_mode, Y_AXIS_LABEL) + + time.sleep(5) + return result + + def sleep_current_measure(self, sleep_mode): + result = True + + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] %s start" % sleep_mode) + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + # set sleep mode + self.serial_write_line("AT1", "AT+SLEEP=%d" % sleep_mode_enum) + self.check_response("AT1", "OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] set mode done") + time.sleep(10) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, sleep_mode, Y_AXIS_LABEL) + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] measure done") + return result + + def light_sleep_wakeup(self): + result = True + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] start") + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(1) + self.serial_write_line("AT1", "") + time.sleep(1) + self.check_response("SSC2", "+GPIO_SET:OK", timeout=1) + + for i in range(10): + self.serial_write_line("SSC2", "gpio -G -p %d" % self.sleep_wakeup_ind_pin) + if self.check_response("SSC2", "+GPIO_GET:0", timeout=0.73) is True: + break + else: + NativeLog.add_prompt_trace("AT Sleep wakeup pin is not correct when in sleep") + + # check if respond to uart + self.flush_data("AT1") + for i in range(60): + self.serial_write("AT1", "a") + time.sleep(0.43) + time.sleep(0.1) + respond_data = self.serial_read_data("AT1") + if len(respond_data) >= 60: + NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " + "Failed when recving data during sleep, %d" % len(respond_data)) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on sleep mode done") + + # change GPIO to make target wakeup + self.serial_write_line("SSC2", "gpio -L -p %d -t 0" % GPIO_WAKE_UP) + self.check_response("SSC2", "+GPIO_SET:OK") + time.sleep(0.01) + + for i in range(3): + self.serial_write_line("SSC2", "gpio -G -p %d" % self.sleep_wakeup_ind_pin) + if self.check_response("SSC2", "+GPIO_GET:1") is False: + NativeLog.add_prompt_trace("AT Sleep wakeup pin is not correct when wakeup") + + self.serial_write_line("AT1", "") + time.sleep(1) + self.flush_data("AT1") + for i in range(60): + self.serial_write("AT1", "a") + time.sleep(0.043) + time.sleep(0.1) + respond_data = self.serial_read_data("AT1") + if len(respond_data) < 60: + NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " + "Failed when recving data during wakeup, %d" % len(respond_data)) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on wakeup mode done") + self.serial_write_line("AT1", "") + # restore GPIO level + self.serial_write_line("SSC2", "gpio -L -p %d -t 1" % GPIO_WAKE_UP) + time.sleep(2) + return result + + def cleanup(self): + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + self.serial_write_line("AT1", "") + self.serial_write_line("AT1", "AT+RST") + self.check_response("SSC2", "+GPIO_SET:OK") + self.check_response("AT1", "ready") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + + try: + test_mode = self.test_mode + test_count = self.test_count + sleep_mode = self.sleep_mode + except StandardError, e: + return + + # make sure enter modem sleep mode before start test + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + self.serial_write_line("AT1", "AT+RST") + self.check_response("SSC2", "+GPIO_SET:OK") + self.check_response("AT1", "ready") + self.check_response("AT1", "WIFI GOT IP") + # set AT light sleep wakeup pin + self.serial_write_line("AT1", "AT+WAKEUPGPIO=1,%d,0" % self.sleep_wake_pin) + self.check_response("AT1", "OK") + + # start test + if "mode_change" in test_mode: + for i in range(test_count): + result = self.sleep_mode_change(random.choice(SLEEP_MODE_LIST)) + + elif "measure_current" in test_mode: + for i in range(test_count): + for mode in sleep_mode: + result = self.sleep_current_measure(mode) + pass + elif "gpio_wakeup" in test_mode: + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + # config wakeup gpio + self.serial_write_line("AT1", "AT+WAKEUPGPIO=1,%d,0,%d,1" % (self.sleep_wake_pin, self.sleep_wakeup_ind_pin)) + self.check_response("AT1", "OK") + # set sleep mode + self.serial_write_line("AT1", "AT+SLEEP=%d" % SLEEP_MODE["light_sleep"]) + self.check_response("AT1", "OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + for i in range(test_count): + result = self.light_sleep_wakeup() + pass + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/ATStress/SoftAPServer.py b/components/test/TestCaseScript/ATStress/SoftAPServer.py new file mode 100755 index 000000000..7522658f1 --- /dev/null +++ b/components/test/TestCaseScript/ATStress/SoftAPServer.py @@ -0,0 +1,308 @@ +from TCAction import PerformanceTCBase +import time +import socket +import threading +import Queue +import re +import random +from NativeLog import NativeLog + + +SEND_CMD = ("CIPSEND, CIPSENDBUF", "CIPSENDEX") + + +class RecvThread(threading.Thread): + def __init__(self, test_action): + threading.Thread.__init__(self) + self.setDaemon(True) + self.test_action = test_action + self.exit_flag = threading.Event() + pass + + def run(self): + data = "" + ipd_line = re.compile("IPD,\d,\d+:") + recv_bytes_line = re.compile("Recv \d+ bytes") + allow_send_line = re.compile("OK\r\n>") + send_ok_line = re.compile("SEND OK") + while self.exit_flag.is_set() is False: + flush_pos = 0 + data += self.test_action.serial_read_data("AT1") + # do process IPD data + match_set = ipd_line.findall(data) + for match_line in match_set: + link_id = match_line[4] + flush_pos = data.find(match_line) + len(match_line) + self.test_action.send_queue.put(link_id, 1) + pass + # do process send > + match = allow_send_line.search(data) + if match is not None: + match_line = match.group() + self.test_action.add_info_log("find OK >") + self.test_action.send_allow_evt.set() + pos = data.find(match_line) + len(match_line) + flush_pos = pos if pos > flush_pos else flush_pos + # do process Recv xx bytes + match = recv_bytes_line.search(data) + if match is not None: + match_line = match.group() + self.test_action.add_info_log("find Recv xx bytes") + self.test_action.recv_data_evt.set() + pos = data.find(match_line) + len(match_line) + flush_pos = pos if pos > flush_pos else flush_pos + + match = send_ok_line.search(data) + if match is not None: + match_line = match.group() + self.test_action.add_info_log("find send ok") + self.test_action.send_ok_evt.set() + pos = data.find(match_line) + len(match_line) + flush_pos = pos if pos > flush_pos else flush_pos + # pass + + # flush processed data + if flush_pos > 0: + data = data[flush_pos:] + + pass + + def exit(self): + self.exit_flag.set() + pass + + +class TCPClientThread(threading.Thread): + send_char = "A" + sync_lock = threading.Lock() + + def __init__(self, test_action, pc_ip, target_ip, target_port, request_len, response_len, client_id, + connect_timeout, recv_timeout): + threading.Thread.__init__(self) + self.setDaemon(True) + self.exit_flag = threading.Event() + self.test_action = test_action + self.pc_ip = pc_ip + self.target_ip = target_ip + self.target_port = target_port + self.request_len = request_len + self.response_len = response_len + self.client_id = client_id + self.connect_timeout = connect_timeout + self.recv_timeout = recv_timeout + pass + + @classmethod + def get_send_char(cls): + with cls.sync_lock: + send_char = cls.send_char + cls.send_char = chr(ord(send_char) + 1) if ord(send_char) < ord("Z") else "A" + return send_char + pass + + def run(self): + while self.exit_flag.is_set() is False: + exception_occurred = False + client_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + client_sock.bind((self.pc_ip, 0)) + client_sock.settimeout(20) + time1 = time.time() + name = client_sock.getsockname() + + try: + client_sock.connect((self.target_ip, self.target_port)) + except StandardError, e: + exception_occurred = True + self.test_action.add_critical_log("failed to connect succeed within 2 seconds %s, %d" + % (name[0], name[1])) + client_sock.close() + + time2 = time.time() - time1 + if exception_occurred is True: + self.test_action.add_critical_log("connect timeout %f; ip is %s, port is %d" + % (time2, name[0], name[1])) + continue + if time2 > self.connect_timeout: + self.test_action.add_critical_log("connect time too long %f; ip is %s, port is %d" + % (time2, name[0], name[1])) + + time.sleep(float(random.randint(0, 30))/100) + send_char = self.get_send_char() + data = send_char * self.request_len + try: + client_sock.send(data) + except StandardError: + NativeLog.add_trace_critical("send fail") + # try: + # data = client_sock.recv(1) + # except socket.error, e: + # self.handle_processing_fail("failed to receive data within 2 seconds") + data_received = 0 + time1 = time.time() + while data_received < self.response_len: + try: + data = client_sock.recv(4*1024) + except StandardError, e: + exception_occurred = True + break + data_received += len(data) + + time2 = time.time() - time1 + if exception_occurred is True or time2 > self.recv_timeout: + self.test_action.add_critical_log("receive time too long %f; ip is %s, port is %d"\ + % (time2, name[0], name[1])) + client_sock.close() + time.sleep(float(random.randint(0, 30))/100) + pass + pass + + def exit(self): + self.exit_flag.set() + pass + + +class SendThread(threading.Thread): + def __init__(self, test_action, test_count, send_cmd, response_len, check_send_ok): + threading.Thread.__init__(self) + self.setDaemon(True) + self.test_action = test_action + self.test_count = test_count + self.send_cmd = send_cmd + self.response_len = response_len + self.check_send_ok = check_send_ok + pass + + def run(self): + send_char = "a" + for i in xrange(self.test_count): + link_id = self.test_action.send_queue.get(1) + + self.test_action.send_allow_evt.clear() + self.test_action.serial_write_line("AT1", "AT+%s=%s,%d" % (self.send_cmd, link_id, self.response_len)) + self.test_action.add_info_log("write CIPSEND cmd") + + self.test_action.send_allow_evt.wait(10) + if self.test_action.send_allow_evt.is_set() is False: + self.test_action.add_critical_log("Failed to find OK > in 10s, test break") + break + self.test_action.send_allow_evt.clear() + + data = send_char * self.response_len + send_char = chr(ord(send_char) + 1) if ord(send_char) < ord("z") else "a" + self.test_action.recv_data_evt.clear() + self.test_action.send_ok_evt.clear() + self.test_action.serial_write("AT1", data) + self.test_action.add_info_log("data write done") + self.test_action.recv_data_evt.wait(10) + if self.test_action.recv_data_evt.is_set() is False: + self.test_action.add_critical_log("Failed to find Recv xx bytes in 10s, test break") + break + self.test_action.recv_data_evt.clear() + # if self.test_action.send_cmd == "CIPSEND": + if self.check_send_ok is True: + self.test_action.send_ok_evt.wait(10) + if self.test_action.send_ok_evt.is_set() is False: + self.test_action.add_critical_log("Failed to find SEND OK in 10s, test break") + break + self.test_action.add_info_log("send ok") + self.test_action.send_ok_evt.clear() + pass + pass + + +class SoftAPServer(PerformanceTCBase.PerformanceTCBase): + def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # init value for ip and port + self.pc_ip = "pc_ip" + self.server_port = "test_tcp_port1" + self.send_cmd = "CIPSEND" + self.baudrate = 115200 + self.rtscts = 3 + self.test_count = 1000 + self.request_len = 500 + self.response_len = 1600 + self.check_send_ok = True + self.concurrent_connections = 5 + self.connect_timeout = 3 + self.receive_timeout = 2 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.send_queue = Queue.Queue(maxsize=100) + self.send_allow_evt = threading.Event() + self.recv_data_evt = threading.Event() + self.send_ok_evt = threading.Event() + + pass + + @staticmethod + def add_critical_log(data): + NativeLog.add_trace_critical(data+"\r\n") + pass + + @staticmethod + def add_info_log(data): + NativeLog.add_trace_info(data) + + def process(self): + # step0, use initial condition AP3 (8266 as AP, PC connected to 8266, multiple connection) + pc_ip = self.get_parameter(self.pc_ip) + target_ip = self.get_parameter("target_ip") + server_port = self.get_parameter(self.server_port) + send_cmd = self.send_cmd + test_count = self.test_count + baudrate = self.baudrate + rtscts = self.rtscts + concurrent_connections = self.concurrent_connections + check_send_ok = self.check_send_ok + connect_timeout = self.connect_timeout + receive_timeout = self.receive_timeout + + self.serial_write_line("AT1", "AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)) + self.check_response("AT1", "OK\r\n") + self.reconfig_serial_port("AT1", baudrate, rtscts) + # step1, create server on 8266, create client thread + self.serial_write_line("AT1", "AT+CIPSERVER=1,%d" % server_port) + self.check_response("AT1", "OK") + + recv_thread = RecvThread(self) + send_thread = SendThread(self, test_count, send_cmd, self.response_len, check_send_ok) + send_thread.start() + recv_thread.start() + client_thread_list = [None] * concurrent_connections + for i in range(concurrent_connections): + client_thread_list[i] = TCPClientThread(self, pc_ip, target_ip, server_port, + self.request_len, self.response_len, i, + connect_timeout, receive_timeout) + client_thread_list[i].start() + pass + + # step3, wait sending thread join + send_thread.join() + + recv_thread.exit() + recv_thread.join() + + for i in range(concurrent_connections): + client_thread_list[i].exit() + client_thread_list[i].join() + pass + + self.serial_write_line("AT1", "AT+UART_CUR=115200,8,1,0,3") + self.check_response("AT1", "OK\r\n") + self.restore_serial_port("AT1") + self.set_result("Succeed") + pass + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/ATStress/TCPClientMulti.py b/components/test/TestCaseScript/ATStress/TCPClientMulti.py new file mode 100755 index 000000000..610a55cbc --- /dev/null +++ b/components/test/TestCaseScript/ATStress/TCPClientMulti.py @@ -0,0 +1,116 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class TCPClientMulti(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.max_conn = test_env.get_variable_by_name("max_conn")[1] + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + tx_enable = self.tx_enable + rx_enable = self.rx_enable + enable_log = self.enable_log + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPClientMulti script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # step1 + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 LISTEN "] + fail_string = "Fail, Fail on create PC server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 + for i in range(0, self.max_conn): + checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" " % i] + fail_string = "Fail, Fail on connect to PC server" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC%d" % (i+2)] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 + # turn off AT UART logging + if enable_log is False: + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + + data = "A" * at_send_length + fail_string = "Fail, Fail on send and recv data" + + for j in range(0, test_count): + + if tx_enable is True: + for i in range(0, self.max_conn): + checker_stings = ["P AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail on target send command for link %d" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + return + + checker_stings = ["P SOC%d RL %d" % ((i+2), at_send_length), "P AT1 C OK"] + test_action_strings = ["ATSO AT1 %s" % data] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + return + + if rx_enable is True: + checker_stings = [] + test_action_strings = [] + for i in range(0, self.max_conn): + checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) + test_action_strings.extend(["SOC SOC%d SEND %d %s" % (i+2, soc_send_length, data)]) + + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail to receive PC sent data") + NativeLog.add_trace_critical("Test count is %d" % j) + return + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/TCPClientSingle.py b/components/test/TestCaseScript/ATStress/TCPClientSingle.py new file mode 100755 index 000000000..7127c3d0f --- /dev/null +++ b/components/test/TestCaseScript/ATStress/TCPClientSingle.py @@ -0,0 +1,123 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class TCPClientSingle(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.link_type = "TCP" + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + tx_enable = self.tx_enable + rx_enable = self.rx_enable + enable_log = self.enable_log + link_type = self.link_type + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPClientSingle script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # step1 + checker_stings = ["R SOC_COM L OK"] + if link_type == "TCP": + test_action_string = ["SOC SOC1 LISTEN "] + elif link_type == "SSL": + test_action_string = ["SOC SOC1 SLISTEN "] + pass + else: + raise StandardError() + fail_string = "Fail, Fail on create PC server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 + if link_type == "TCP": + checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] + elif link_type == "SSL": + checker_stings = ["R SOC1 C +SACCEPT", "R AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"SSL\" "] + else: + raise StandardError() + fail_string = "Fail, Fail on connect to PC server" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC2"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 + # turn off AT UART logging + if enable_log is False: + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + + for j in range(0, test_count): + data = "A" * at_send_length + fail_string = "Fail, Fail on send and recv data" + + if tx_enable is True: + checker_stings = ["P AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d" % at_send_length] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail on target send command") + NativeLog.add_trace_critical("Test count is %d" % j) + return + + checker_stings = ["P SOC2 RL %d" % at_send_length, "P AT1 C OK"] + test_action_strings = ["ATSO AT1 %s" % data] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail on target send, send or recv error") + NativeLog.add_trace_critical("Test count is %d" % j) + return + + if rx_enable is True: + checker_stings = ["P AT1 DL S+%d" % soc_send_length] + test_action_strings = ["SOC SOC2 SEND %d" % soc_send_length] + + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail to receive PC sent data") + NativeLog.add_trace_critical("Test count is %d" % j) + return + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/TCPSendPerf.py b/components/test/TestCaseScript/ATStress/TCPSendPerf.py new file mode 100755 index 000000000..a2f6e1a06 --- /dev/null +++ b/components/test/TestCaseScript/ATStress/TCPSendPerf.py @@ -0,0 +1,148 @@ +import time +import os +import socket +import ssl + +from NativeLog import NativeLog +from TCAction import PerformanceTCBase +from Utility import MakeFolder + + +SEND_CMD = ("CIPSEND, CIPSENDBUF", "CIPSENDEX") + +LOG_PATH = os.path.join("AT_LOG", "Performance", "AT_SEND") + + +class TCPSendPerf(PerformanceTCBase.PerformanceTCBase): + def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # init value for ip and port + self.pc_ip = "pc_ip" + self.server_port = "test_tcp_port1" + self.packet_len = 1 + self.test_count = 100 + self.send_cmd = "CIPSEND" + self.baudrate = 115200 + self.rtscts = 0 + self.link_type = "TCP" + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + pass + + def process(self): + pc_ip = self.get_parameter(self.pc_ip) + server_port = self.get_parameter(self.server_port) + packet_len = self.packet_len + test_count = self.test_count + send_cmd = self.send_cmd + baudrate = self.baudrate + rtscts = self.rtscts + result = True + link_type = self.link_type + + # create TCP connection + sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + sock.bind((pc_ip, server_port)) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock.settimeout(10) + sock.listen(1) + + self.serial_write_line("AT1", "AT+CIPSTART=0,\"%s\",\"%s\",%d" % (link_type, pc_ip, server_port)) + sock_client = sock.accept()[0] + if link_type == "SSL": + sock_client = ssl.wrap_socket(sock_client, + server_side=True, + certfile=os.path.join("Certificate", "default.cer"), + keyfile=os.path.join("Certificate", "default.key")) + pass + if self.check_response("AT1", "OK") is False: + result = False + + self.serial_write_line("AT1", "AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)) + if self.check_response("AT1", "OK\r\n") is False: + result = False + + self.reconfig_serial_port("AT1", baudrate, rtscts) + + # restore to read line mode + self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) + + sock_client.settimeout(0) + + for _dummy in range(1): + if result is False: + NativeLog.add_trace_critical("Fail to create TCP connection") + break + # send TCP packets + data = "A" * packet_len + time1 = time.time() + + i = 0 + data_recv_len = 0 + while i < test_count: + self.serial_write_line("AT1", "AT+%s=0,%d" % (send_cmd, packet_len)) + if self.check_response("AT1", ">", 0.05) is False: + continue + + i += 1 + self.serial_write("AT1", data) + if send_cmd == "CIPSENDBUF": + result = self.check_response("AT1", "Recv %d bytes" % packet_len, 3) + else: + result = self.check_response("AT1", "SEND OK", 3) + if result is False: + NativeLog.add_trace_critical("Fail during sending data") + break + try: + if link_type == "TCP": + data_recv = sock_client.recv(10*1460) + elif link_type == "SSL": + data_recv = sock_client.read(10*1024) + else: + raise StandardError() + data_recv_len += len(data_recv) + except socket.error, e: + if e.errno == 10035: + pass + elif e.message == "The read operation timed out": + pass + else: + NativeLog.add_exception_log(e) + else: + self.set_result("Succeed") + + time2 = time.time() + + folder_path = MakeFolder.make_folder(LOG_PATH) + file_name = os.path.join(folder_path, + "%s_%s_%s.log" % (send_cmd, + packet_len, + time.strftime("%d%H%M%S", time.localtime()))) + with open(file_name, "ab+") as f: + f.write("\r\n[performance] %f packets per second " + "(including failed send operation)" + % (test_count/(time2-time1))) + f.write("\r\n[performance] %f Kbps" % (data_recv_len/(125*(time2-time1)))) + + self.serial_write_line("AT1", "AT+UART_CUR=115200,8,1,0,3") + self.check_response("AT1", "OK\r\n") + self.restore_serial_port("AT1") + + # restore to read line mode + self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) + # close socket + sock.close() + sock_client.close() + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/ATStress/TCPServerMulti.py b/components/test/TestCaseScript/ATStress/TCPServerMulti.py new file mode 100755 index 000000000..c317bc974 --- /dev/null +++ b/components/test/TestCaseScript/ATStress/TCPServerMulti.py @@ -0,0 +1,126 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class TCPServerMulti(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.max_conn = test_env.get_variable_by_name("max_conn")[1] + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + target_ip_str = self.target_ip_str + enable_log = self.enable_log + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPSeverMulti script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # turn off AT UART logging + if enable_log is False: + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + + # step1 create TCP server on target + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATC AT1 CIPSERVER 1 "] + fail_string = "Fail, Fail on create target TCP server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 PC connect to target server + for j in range(0, test_count): + data = "A" * at_send_length + fail_string = "Fail, Fail on connect to target server" + + # check if all connection can send data on target + checker_stings = ["P AT1 C OK"] + test_action_strings = ["ATS AT1 AT+CIPCLOSE=%d" % self.max_conn] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=100) is False: + NativeLog.add_trace_critical("Fail to close all connection") + NativeLog.add_trace_critical("Test count is %d" % j) + continue # if fail on this step, we can recover and continue + + # a) do connect + fail_flag = False + for i in range(0, self.max_conn): + checker_stings = ["P SOC_COM C OK", "P AT1 C CONNECT"] + test_action_strings = ["SOC SOC%d CONNECT %s" % (i+1, target_ip_str)] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail to connect to target for link %d" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + # if fail on this step, we can recover and continue + fail_flag = True + break + + if fail_flag is True: + # fail on step a) + continue + + # b) check if all connection can recv data on target + checker_stings = [] + test_action_strings = [] + for i in range(0, self.max_conn): + checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) + test_action_strings.extend(["SOC SOC%d SEND %d" % (i+1, soc_send_length)]) + + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail to receive data from PC") + NativeLog.add_trace_critical("Test count is %d" % j) + continue # if fail on this step, we can recover and continue + + # c) check if all connection can send data on target + for i in range(0, self.max_conn): + checker_stings = ["P AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail on target send command for link %d" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + return + + checker_stings = ["P SOC%d RL %d" % ((i+1), at_send_length), "P AT1 C OK"] + test_action_strings = ["ATSO AT1 %s" % data] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + return + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/TCPTransparent.py b/components/test/TestCaseScript/ATStress/TCPTransparent.py new file mode 100755 index 000000000..d116923bf --- /dev/null +++ b/components/test/TestCaseScript/ATStress/TCPTransparent.py @@ -0,0 +1,280 @@ +from TCAction import TCActionBase +from TCAction import CmdHandler +from NativeLog import NativeLog +import time +import random +import string +import os + + +class TransparentResultCheckCntx(TCActionBase.ResultCheckContext): + + def __init__(self, test_action, test_env, name): + TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) + self.result_array = [] + self.at_data_recv_total = 0 + self.pc_data_recv_total = 0 + self.temp_data_at2wifi = "" + self.temp_data_wifi2at = "" + pass + + def run(self): + validation_required = self.test_action.data_validation + path = os.path.split(self.test_action.log_file_name) + file_name_at2wifi = os.path.join(path[0], "%s_at2wifi_pc.bin" % self.test_action.timestamp) + file_name_wifi2at = os.path.join(path[0], "%s_wifi2at_at.bin" % self.test_action.timestamp) + + while True: + exit_flag = self.wait_exit_event(2) + # force exit + if exit_flag is True: + break + rx_len = 0 + tx_len = 0 + try: + self.lock_data() + rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) + tx_port = filter(lambda x: x[0] == "SOC2", self.data_cache) + self.data_cache = [] + finally: + self.unlock_data() + + if len(rx_port) == 1: + rx_len = len(rx_port[0][1]) + self.at_data_recv_total += rx_len + if validation_required is True: + self.temp_data_wifi2at += rx_port[0][1] + if len(tx_port) == 1: + tx_len = len(tx_port[0][1]) + self.pc_data_recv_total += tx_len + if validation_required is True: + self.temp_data_at2wifi += tx_port[0][1] + + self.result_array.append(["TX %8d %s" % + (tx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) + self.result_array.append(["RX %8d %s" % + (rx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) + + if validation_required is True: + with open(file_name_at2wifi, "ab+") as f: + f.write(self.temp_data_at2wifi) + with open(file_name_wifi2at, "ab+") as f: + f.write(self.temp_data_wifi2at) + + def get_validation_data(self): + return self.temp_data_at2wifi, self.temp_data_wifi2at + + def get_test_results(self): + return self.result_array, self.at_data_recv_total, self.pc_data_recv_total + + +class TCPTransparent(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.timestamp = time.strftime("%d%H%M%S", time.localtime()) + + pass + + def cleanup(self): + # close current result check context + self.result_cntx.stop_thread() + self.result_cntx.join() + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + # restore to read line mode + self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) + + # make sure enter condition that can respond to AT command + self.result_cntx = TCActionBase.ResultCheckContext(self, self.test_env, self.tc_name) + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + checker_stings = ["ATR AT1 R *"] + test_action_string = ["ATSO AT1 +++", "DELAY 0.1", "ATS AT1 AT"] + fail_string = "Fail, Fail to reconfig UART" + + result = False + + while result is False: + result = self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + + # reset baudrate + + checker_stings = ["ATR AT1 L OK"] + test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,3" % 115200] + fail_string = "Fail, Fail to reconfig UART" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + test_action = CmdHandler.parse_action("UART AT1 %d" % 115200, self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + TCActionBase.CommonTCActionBase.cleanup(self) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + # at send data len + at_send_data_len = self.at_send_data_len + # pc send data len + pc_send_data_len = self.pc_send_data_len + # sleep time between each send, test count + test_dispatch = self.test_dispatch + # enable target TCP TX + tx_enable = self.tx_enable + # enable target TCP RX + rx_enable = self.rx_enable + # if need to record tx/rx data to file + data_validation = self.data_validation + # UART baudrate + baudrate = self.baudrate + # HW flow control + rtscts = self.rtscts + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step0 reconfig baudrate + if baudrate != 0: + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)] + fail_string = "Fail, Fail to reconfig UART" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + test_action = CmdHandler.parse_action("UART AT1 %d %d" % (baudrate, rtscts), self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + + # step1 create PC server + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 LISTEN "] + fail_string = "Fail, Fail on create PC server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 target connect, switch to transparent + checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] + fail_string = "Fail, Fail on connect to PC server" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC2"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_strings = ["ATS AT1 AT+CIPMODE=1"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 + # turn off AT UART logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + # uart try to return data ASAP + self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) + + # switch to new result check context + self.result_cntx.stop_thread() + self.result_cntx.join() + self.result_cntx = TransparentResultCheckCntx(self, self.test_env, self.tc_name) + self.result_cntx.start() + + at_data_sent_total = 0 + pc_data_sent_total = 0 + at2wifi_data = "" + wifi2at_data = "" + + for j in range(0, len(at_send_data_len) * len(pc_send_data_len)): + at_data_len = at_send_data_len[j / len(pc_send_data_len)] + pc_data_len = pc_send_data_len[j % len(pc_send_data_len)] + # data = "".join(["A"] * at_data_len) + chars = string.ascii_lowercase + data_list = ["".join([random.choice(chars) for m in range(at_data_len-16)])] + chars = string.ascii_uppercase + data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) + chars = string.digits + data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) + + for i in range(0, len(test_dispatch)): + for k in range(0, test_dispatch[i][1]): + data_str = "%.2d%.2d%.10d%s\r\n" % (j, i, k, data_list[k % 3]) + # time1 = time.time() + if tx_enable is True: + test_action = CmdHandler.parse_action("ATSO AT1 %s" % data_str, self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + at_data_sent_total += at_data_len + if data_validation is True: + at2wifi_data += data_str + # time2 = time.time() + if rx_enable is True: + if tx_enable is True: + test_action = CmdHandler.parse_action("SOC SOC2 SENDNB %d %s" % (pc_data_len, data_str), + self.test_env) + else: + test_action = CmdHandler.parse_action("SOC SOC2 SEND %d %s" % (pc_data_len, data_str), + self.test_env) + sent_len = CmdHandler.do_action(test_action[0], self.test_env) + pc_data_sent_total += sent_len + if data_validation is True: + wifi2at_data += data_str[:sent_len] + # time3 = time.time() + # if time3-time2 > 0.1: + # break + if test_dispatch[i][0] != 0: + time.sleep(test_dispatch[i][0]) + time.sleep(3) # wait 3 seconds + + # write send data to file for data validation + if data_validation is True: + path = os.path.split(self.log_file_name) + with open(os.path.join(path[0], "%s_at2wifi_at.bin" % self.timestamp), "ab+") as f: + f.write(at2wifi_data) + with open(os.path.join(path[0], "%s_wifi2at_pc.bin" % self.timestamp), "ab+") as f: + f.write(wifi2at_data) + + temp_data_at2wifi, temp_data_wifi2at = self.result_cntx.get_validation_data() + if temp_data_at2wifi != at2wifi_data: + NativeLog.add_prompt_trace("[Validation Fail] at2wifi") + if temp_data_wifi2at != wifi2at_data: + NativeLog.add_prompt_trace("[Validation Fail] wifi2at") + + throughput_results, at_data_recv_total, pc_data_recv_total = self.result_cntx.get_test_results() + result_str = "AT sent %15d\r\n" % at_data_sent_total + result_str += "PC recv %15d\r\n" % pc_data_recv_total + result_str += "PC sent %15d\r\n" % pc_data_sent_total + result_str += "AT recv %15d\r\n" % at_data_recv_total + for _result in throughput_results: + result_str += "%s\r\n" % _result + with open(self.log_file_name, "ab+") as f: + f.write(result_str) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/UDPMulti.py b/components/test/TestCaseScript/ATStress/UDPMulti.py new file mode 100755 index 000000000..4423db3ce --- /dev/null +++ b/components/test/TestCaseScript/ATStress/UDPMulti.py @@ -0,0 +1,113 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import time + + +class UDPMulti(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.max_conn = test_env.get_variable_by_name("max_conn")[1] + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + target_ip_str = self.target_ip_str + tx_enable = self.tx_enable + rx_enable = self.rx_enable + enable_log = self.enable_log + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for UDPMulti script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # step1, bind one PC UDP port + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 BIND "] + fail_string = "Fail, Fail on binding socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 2 create 5 UDP link on target + for i in range(0, self.max_conn): + checker_stings = ["R AT1 C CONNECT L OK"] + test_action_strings = ["ATC AT1 CIPSTART %d \"UDP\" 1" + % (i, i+1)] + fail_string = "Fail, Fail on create UDP link" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 send recv data + # turn off AT UART logging + if enable_log is False: + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + + for j in range(0, test_count): + data = "A" * at_send_length + fail_string = "Fail, Fail on send/recv data" + + if tx_enable is True: + # target link 0-5 sendto PC + for i in range(0, self.max_conn): + checker_stings = ["P AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Target fail on send cmd on link %d" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + + checker_stings = ["P SOC_COM C RECV_LEN=%d P " % (at_send_length, i+1), + "P AT1 C OK"] + test_action_strings = ["ATSO AT1 %s" % data] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Target sent UDP packet error on link %d" % i) + NativeLog.add_trace_critical("Test count is %d" % j) + + if rx_enable is True: + # PC send to target + checker_stings = [] + test_action_strings = [] + for i in range(0, self.max_conn): + checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) + test_action_strings.extend(["SOC SOC1 SENDTO %d %s" + % (soc_send_length, i+1, target_ip_str)]) + + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("PC sent UDP packet error") + NativeLog.add_trace_critical("Test count is %d" % j) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/UDPSingle.py b/components/test/TestCaseScript/ATStress/UDPSingle.py new file mode 100755 index 000000000..0f30330ab --- /dev/null +++ b/components/test/TestCaseScript/ATStress/UDPSingle.py @@ -0,0 +1,105 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class UDPSingle(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + TCActionBase.CommonTCActionBase.cleanup(self) + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + try: + at_send_length = self.at_send_length + soc_send_length = self.soc_send_length + test_count = self.test_count + target_ip_str = self.target_ip_str + tx_enable = self.tx_enable + rx_enable = self.rx_enable + enable_log = self.enable_log + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for UDPSingle script, error is %s" % e) + raise StandardError("Error configuration") + # configurable params + + # step1, bind one PC UDP port + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 BIND "] + fail_string = "Fail, Fail on binding UDP socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 2 create UDP link on target + checker_stings = ["R AT1 C CONNECT L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"UDP\" 1"] + fail_string = "Fail, Fail on create UDP link" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 send recv data + # turn off AT UART logging + if enable_log is False: + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + + for j in range(0, test_count): + data = "A" * at_send_length + fail_string = "Fail, Fail on send recv data" + + # target sendto PC + if tx_enable is True: + checker_stings = ["P AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d" % at_send_length] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Target fail on send cmd") + NativeLog.add_trace_critical("Test count is %d" % j) + + checker_stings = ["P SOC_COM C RECV_LEN=%d P " % at_send_length, + "P AT1 C OK"] + test_action_strings = ["ATSO AT1 %s" % data] + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Target sent UDP packet error") + NativeLog.add_trace_critical("Test count is %d" % j) + + # PC send to target + if rx_enable is True: + checker_stings = (["P AT1 DL S+%d" % soc_send_length]) + test_action_strings = (["SOC SOC1 SENDTO %d %s" % (soc_send_length, target_ip_str)]) + + if self.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("PC sent UDP packet error") + NativeLog.add_trace_critical("Test count is %d" % j) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/UDPTransparent.py b/components/test/TestCaseScript/ATStress/UDPTransparent.py new file mode 100755 index 000000000..699d2b1ad --- /dev/null +++ b/components/test/TestCaseScript/ATStress/UDPTransparent.py @@ -0,0 +1,262 @@ +from TCAction import TCActionBase +from TCAction import CmdHandler +from NativeLog import NativeLog +import time +import random +import string +import os + + +class TransparentResultCheckCntx(TCActionBase.ResultCheckContext): + + def __init__(self, test_action, test_env, name): + TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) + self.result_array = [] + self.at_data_recv_total = 0 + self.pc_data_recv_total = 0 + pass + + def run(self): + validation_required = self.test_action.data_validation + temp_data_at2wifi = "" + temp_data_wifi2at = "" + path = os.path.split(self.test_action.log_file_name) + file_name_at2wifi = os.path.join(path[0], "%s_at2wifi_pc.bin" % self.test_action.timestamp) + file_name_wifi2at = os.path.join(path[0], "%s_wifi2at_at.bin" % self.test_action.timestamp) + + while True: + exit_flag = self.wait_exit_event(2) + # force exit + if exit_flag is True: + break + rx_len = 0 + tx_len = 0 + try: + self.lock_data() + rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) + tx_port = filter(lambda x: x[0] == "SOC1", self.data_cache) + self.data_cache = [] + finally: + self.unlock_data() + + if len(rx_port) == 1: + rx_len = len(rx_port[0][1]) + self.at_data_recv_total += rx_len + if validation_required is True: + temp_data_wifi2at += rx_port[0][1] + if len(tx_port) == 1: + tx_len = len(tx_port[0][1]) + self.pc_data_recv_total += tx_len + if validation_required is True: + temp_data_at2wifi += tx_port[0][1] + + self.result_array.append(["TX %8d %s" % + (tx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) + self.result_array.append(["RX %8d %s" % + (rx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) + + if validation_required is True: + with open(file_name_at2wifi, "ab+") as f: + f.write(temp_data_at2wifi) + with open(file_name_wifi2at, "ab+") as f: + f.write(temp_data_wifi2at) + + def get_test_results(self): + return self.result_array, self.at_data_recv_total, self.pc_data_recv_total + + +class UDPTransparent(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.timestamp = time.strftime("%d%H%M%S", time.localtime()) + + pass + + def cleanup(self): + # close current result check context + self.result_cntx.stop_thread() + self.result_cntx.join() + # turn on logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) + # restore to read line mode + self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) + + # make sure enter condition that can respond to AT command + self.result_cntx = TCActionBase.ResultCheckContext(self, self.test_env, self.tc_name) + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + checker_stings = ["R AT1 R *"] + test_action_string = ["ATSO AT1 +++", "DELAY 0.1", "ATS AT1 AT"] + fail_string = "Fail, Fail to reconfig UART" + + result = False + + while result is False: + result = self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + + # reset baudrate + + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,3" % 115200] + fail_string = "Fail, Fail to reconfig UART" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + test_action = CmdHandler.parse_action("UART AT1 %d" % 115200, self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + TCActionBase.CommonTCActionBase.cleanup(self) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + # at send data len + at_send_data_len = self.at_send_data_len + # pc send data len + pc_send_data_len = self.pc_send_data_len + # sleep time between each send, test count + test_dispatch = self.test_dispatch + # enable target TCP TX + tx_enable = self.tx_enable + # enable target TCP RX + rx_enable = self.rx_enable + # if need to record tx/rx data to file + data_validation = self.data_validation + # UART baudrate + baudrate = self.baudrate + # HW flow control + rtscts = self.rtscts + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step0 reconfig baudrate + if baudrate != 0: + checker_stings = ["R AT1 L OK"] + test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)] + fail_string = "Fail, Fail to reconfig UART" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + test_action = CmdHandler.parse_action("UART AT1 %d %d" % (baudrate, rtscts), self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + + # step1 create PC server + checker_stings = ["R SOC_COM L OK"] + test_action_string = ["SOC SOC1 BIND "] + fail_string = "Fail, Fail on create PC server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2 target connect, switch to transparent + checker_stings = ["R AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART \"UDP\" 0"] + fail_string = "Fail, Fail on connect to PC server" + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R AT1 L OK"] + test_action_strings = ["ATS AT1 AT+CIPMODE=1"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + checker_stings = ["R AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND"] + if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: + return + + # step 3 + # turn off AT UART logging + self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) + # restore to read data asap + self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) + + # switch to new result check context + self.result_cntx.stop_thread() + self.result_cntx.join() + self.result_cntx = TransparentResultCheckCntx(self, self.test_env, self.tc_name) + self.result_cntx.start() + + at_data_sent_total = 0 + pc_data_sent_total = 0 + at2wifi_data = "" + wifi2at_data = "" + + for j in range(0, len(at_send_data_len) * len(pc_send_data_len)): + at_data_len = at_send_data_len[j / len(pc_send_data_len)] + pc_data_len = pc_send_data_len[j % len(pc_send_data_len)] + # data = "".join(["A"] * at_data_len) + chars = string.ascii_lowercase + data_list = ["".join([random.choice(chars) for m in range(at_data_len-16)])] + chars = string.ascii_uppercase + data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) + chars = string.digits + data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) + + for i in range(0, len(test_dispatch)): + for k in range(0, test_dispatch[i][1]): + data_str = "%.2d%.2d%.10d%s\r\n" % (j, i, k, data_list[k % 3]) + # time1 = time.time() + if tx_enable is True: + test_action = CmdHandler.parse_action("ATSO AT1 %s" % data_str, self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + at_data_sent_total += at_data_len + if data_validation is True: + at2wifi_data += data_str + # time2 = time.time() + if rx_enable is True: + test_action = CmdHandler.parse_action("SOC SOC1 SENDTO %d %s %s %s" + % (pc_data_len, "", + "", data_str), self.test_env) + CmdHandler.do_actions(test_action, self.test_env) + pc_data_sent_total += pc_data_len + if data_validation is True: + wifi2at_data += data_str + # time3 = time.time() + # if time3-time2 > 0.1: + # pass + if test_dispatch[i][0] != 0: + time.sleep(test_dispatch[i][0]) + time.sleep(3) # wait 3 seconds + + # write send data to file for data validation + if data_validation is True: + path = os.path.split(self.log_file_name) + with open(os.path.join(path[0], "%s_at2wifi_at.bin" % self.timestamp), "ab+") as f: + f.write(at2wifi_data) + with open(os.path.join(path[0], "%s_wifi2at_pc.bin" % self.timestamp), "ab+") as f: + f.write(wifi2at_data) + throughput_results, at_data_recv_total, pc_data_recv_total = self.result_cntx.get_test_results() + result_str = "AT sent %15d\r\n" % at_data_sent_total + result_str += "PC recv %15d\r\n" % pc_data_recv_total + result_str += "PC sent %15d\r\n" % pc_data_sent_total + result_str += "AT recv %15d\r\n" % at_data_recv_total + for _result in throughput_results: + result_str += "%s\r\n" % _result + with open(self.log_file_name, "ab+") as f: + f.write(result_str) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/ATStress/__init__.py b/components/test/TestCaseScript/ATStress/__init__.py new file mode 100755 index 000000000..5a3bbc44d --- /dev/null +++ b/components/test/TestCaseScript/ATStress/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["TCPClientMulti", "TCPClientSingle", "TCPServerMulti", + "TCPTransparent", "UDPMulti", "UDPSingle"] \ No newline at end of file diff --git a/components/test/TestCaseScript/IOT/SCIOT.py b/components/test/TestCaseScript/IOT/SCIOT.py new file mode 100755 index 000000000..5ced3ef12 --- /dev/null +++ b/components/test/TestCaseScript/IOT/SCIOT.py @@ -0,0 +1,357 @@ +import Queue + +from TCAction import TCActionBase +from NativeLog import NativeLog +from SCUDPServer import * +from TCAction.CmdExecutor import CmdExecutorBasic +from Utility import MakeFolder + +TEST_RESULT_CATEGORY = ("AP", "Phone") +TEST_RESULT_PROPERTY = ("model", "total", "succeed", "failed", "total time1", "total time2") +SINGLE_TEST_RESULT = ("AP", "Phone", "result", "time1", "time2") + +LOG_FILES = ("by_ap.tmp", "by_phone.tmp", "failed_item.tmp", "disqualified_item.tmp", "total.tmp") + +LOG_PATH = os.path.join("AT_LOG", "IOT") + + +def make_session_id(mac, test_id): + return mac_to_bytes(mac) + chr((test_id & 0xFF00) >> 8) + chr(test_id & 0xFF) + + +class TestHandler(threading.Thread): + def __init__(self, session_id, ap, phone, udp_server, test_action): + threading.Thread.__init__(self) + self.setDaemon(True) + self.udp_server = udp_server + self.session_id = session_id + self.ap = ap + self.phone = phone + self.test_action = test_action + self.recv_queue = Queue.Queue(10) + self.abort_event = threading.Event() + self.start_time = time.time() + self.test_result = None + udp_server.register_test_handler(session_id, self) + pass + + def req_receiver(self, msg, address): + self.recv_queue.put([msg, address]) + pass + + def res_receiver(self, msg, address): + self.recv_queue.put([msg, address]) + pass + + def abort_handler(self): + NativeLog.add_prompt_trace("[Test Handler][Debug] test aborted") + self.abort_event.set() + self.test_action.remove_from_available_list(self.phone) + pass + + def wait_result(self, event, timeout=None): + time_start = time.time() + while True: + if self.abort_event.isSet() is True: + return False + + if time.time() - self.start_time > ABORT_TIMEOUT: + return False + + if timeout is not None: + if time.time() - time_start > timeout: + return False + + if event == "ACK" or event == "result": + try: + ret = self.recv_queue.get(timeout=0.5) + except Queue.Empty, e: + continue + else: + msg = ret[0] + value_list = get_value_from_msg("type", msg) + msg_typ = ord(value_list[0]) + if msg_typ == TYPE_VAL[event]: + NativeLog.add_prompt_trace("[Test Handler][Debug] wait message succeed") + return msg + elif (msg_typ & 0x80) == 0: # invalid request + self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["Not support"]], + [VALUE_NAME["session id"], self.session_id]], + ret[1]) + pass + else: + pass + pass + + def run(self): + for i in range(1): + # step1 send broadcast to SP + msg = [[VALUE_NAME["type"], TYPE_VAL["Init new test"]], + [VALUE_NAME["session id"], self.session_id]] + self.udp_server.send_request(("", self.udp_server.udp_port), self.session_id, msg) + # wait response + if self.wait_result("ACK") is False: + break + NativeLog.add_prompt_trace("[Step1] Initial new test succeed") + + # step2 start smart config + checker_stings = ["ATR AT1 L OK"] + test_action_string = ["ATS AT1 AT+CWSTOPSMART"] + fail_string = "Fail, Failed to start smart config" + if self.test_action.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + NativeLog.add_prompt_trace(fail_string) + break + checker_stings = ["ATR AT1 L OK"] + test_action_string = ["ATS AT1 AT+CWSTARTSMART=1"] + if self.test_action.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + NativeLog.add_prompt_trace(fail_string) + break + NativeLog.add_prompt_trace("[Step2] Start smart config succeed") + + # step3 send test request to SP + msg = [[VALUE_NAME["type"], TYPE_VAL["test request"]], + [VALUE_NAME["session id"], self.session_id], + [VALUE_NAME["ap ssid"], self.ap["ssid"]], + [VALUE_NAME["ap password"], self.ap["password"]], + [VALUE_NAME["ap bssid"], mac_to_bytes(self.ap["bssid"])], + # [VALUE_NAME["ET version"], 0x20], + [VALUE_NAME["ssid hidden"], self.ap["is_hidden"]], + [VALUE_NAME["ap encryption"], AP_ENCRYPTION_VAL[self.ap["encryption"]]] + ] + self.udp_server.send_request((self.phone["ip"], self.udp_server.udp_port), self.session_id, msg) + # wait SP reply + if self.wait_result("ACK") is False: + break + NativeLog.add_prompt_trace("[Step3] Send test request succeed") + time_base = time.time() + + # step4 wait target smart config succeed + checker_stings = ["ATR AT1 C get%%20wifi%%20info C %s C %s" + % (self.ap["ssid"], self.ap["password"])] + test_action_string = [] + fail_string = "Fail, Fail to get ap info" + # if check target get smart config result fail, continue and get result from SP + ret = self.test_action.load_and_exe_one_step(checker_stings, test_action_string, + fail_string, check_time=600) + if ret is False: + NativeLog.add_prompt_trace("[Step4] Target smart config fail") + step_4_fail = True + else: + NativeLog.add_prompt_trace("[Step4] Target smart config succeed") + step_4_fail = False + time_target_succeed = time.time() - time_base + + # step5 wait SP result + msg = self.wait_result("result") + if msg is False: + NativeLog.add_prompt_trace("[Test Handler][Debug] Failed to get result from SP") + break + else: + self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["ACK"]], + [VALUE_NAME["session id"], self.session_id]], + (self.phone["ip"], self.udp_server.udp_port)) + tmp = get_value_from_msg(["result code", "start SC time", "recv UDP time"], msg) + result_code = ord(tmp[0]) + if result_code == RESULT_CODE_VAL["OK"]: + sp_start_time = bytes_to_time(tmp[1]) + sp_recv_udp_time = bytes_to_time(tmp[2]) + smart_config_protocol_cost = time_target_succeed - sp_start_time + user_experience_time = sp_recv_udp_time - sp_start_time + self.test_result = ["Succeed", smart_config_protocol_cost, user_experience_time] + elif result_code == RESULT_CODE_VAL["recv UDP fail"]: + sp_start_time = bytes_to_time(tmp[1]) + if step_4_fail is True: + smart_config_protocol_cost = 0 + else: + smart_config_protocol_cost = time_target_succeed - sp_start_time + self.test_result = ["Failed", smart_config_protocol_cost, 0] + pass + else: + NativeLog.add_prompt_trace("[Test Handler][Debug] Disqualified message: %s" % tmp) + + for k in range(RETRANSMIT_COUNT - 1): + if self.wait_result("result", RETRANSMIT_TIMEOUT) is not False: + self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["ACK"]], + [VALUE_NAME["session id"], self.session_id]], + (self.phone["ip"], self.udp_server.udp_port)) + + NativeLog.add_prompt_trace("[Step5] Receive test result from SP") + + if self.test_result is None: + self.test_result = ["Disqualified", 0, 0] + self.udp_server.deregister_test_handler(self.session_id) + NativeLog.add_prompt_trace("One Test Done") + pass + + def get_result(self): + if self.test_result is None: + NativeLog.add_trace_critical("Get result before test finish") + return self.test_result + pass + + +class SCIOT(TCActionBase.CommonTCActionBase): + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.ap_list = [] + self.test_result = dict.fromkeys(TEST_RESULT_CATEGORY) + self.test_result["AP"] = [] + self.test_result["Phone"] = [] + self.available_phone_list = [] + self.pc_ip = "" + self.udp_port = "" + self.test_id = 0x00 + self.resource_lock = threading.Lock() + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROPERTY, " + cmd_set[i][1][j] + ")))" + exec cmd_string + for ap in self.ap_list: + self.test_result["AP"].append(dict(zip(TEST_RESULT_PROPERTY, [ap["ssid"], 0, 0, 0, 0, 0]))) + + self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, "TEST_%s" + % (time.strftime("%y%m%d%H%M%S", time.localtime())))) + self.log_files = dict.fromkeys(LOG_FILES) + for _file in self.log_files: + self.log_files[_file] = os.path.join(self.log_folder, + (time.strftime("%H%M%S", time.localtime())) + _file) + pass + + def update_phone_list(self, phone): + with self.resource_lock: + tmp = filter(lambda x: x["model"] == phone["model"], self.available_phone_list) + if len(tmp) == 1: + tmp[0]["ip"] = phone["ip"] + else: + self.available_phone_list.append(phone) + + tmp = filter(lambda x: x["model"] == phone["model"], self.test_result["Phone"]) + if len(tmp) == 0: + self.test_result["Phone"].append(dict(zip(TEST_RESULT_PROPERTY, [phone["model"], 0, 0, 0, 0, 0]))) + pass + + def remove_from_available_list(self, phone): + with self.resource_lock: + tmp = filter(lambda x: x["model"] == phone["model"], self.available_phone_list) + if len(tmp) == 1: + self.available_phone_list.remove(tmp[0]) + pass + + def allocate_test(self): + phone = None + test_count = 0xFFFF + with self.resource_lock: + for _phone in self.available_phone_list: + tmp = filter(lambda x: x["model"] == _phone["model"], self.test_result["Phone"]) + if len(tmp) == 1: + _count = tmp[0]["total"] + if _count < test_count: + test_count = _count + phone = _phone + ap_list = self.ap_list[test_count % len(self.ap_list):] + return phone, ap_list + pass + + def output_test_result(self, ap, phone, test_result): + result_str = "Time stamp" + ":\t" + NativeLog.generate_timestamp() + "\r\n" + result_str += "AP model" + ":\t" + str(ap["ssid"]) + "\r\n" + result_str += "AP encryption" + ":\t" + str(ap["encryption"]) + "\r\n" + result_str += "AP HT" + ":\t" + str(ap["ht"]) + "\r\n" + result_str += "AP ssid hidden" + ":\t" + str(ap["is_hidden"]) + "\r\n" + result_str += "Phone model" + ":\t" + str(phone["model"]) + "\r\n" + result_str += "Result" + ":\t" + str(test_result[0]) + "\r\n" + result_str += "Time1" + ":\t" + str(test_result[1]) + "\r\n" + result_str += "Time2" + ":\t" + str(test_result[2]) + "\r\n" + + with self.resource_lock: + tmp = [filter(lambda x: x["model"] == ap["ssid"], self.test_result["AP"])[0], + filter(lambda x: x["model"] == phone["model"], self.test_result["Phone"])[0]] + if test_result[0] == "Succeed": + for _tmp in tmp: + _tmp["total"] += 1 + _tmp["succeed"] += 1 + _tmp["total time1"] += test_result[1] + _tmp["total time2"] += test_result[2] + pass + elif test_result[0] == "Disqualified": + for _tmp in tmp: + _tmp["total"] += 1 + pass + else: + for _tmp in tmp: + _tmp["total"] += 1 + _tmp["failed"] += 1 + pass + tmp_result = dict(zip(TEST_RESULT_CATEGORY, ["", ""])) + for category in self.test_result: + for _result in self.test_result[category]: + for n in _result: + tmp_result[category] += str(n) + ":\t" + str(_result[n]) + "\r\n" + + # update to log file + with open(self.log_files["by_ap.tmp"], "wb+") as f: + f.write(tmp_result["AP"]) + with open(self.log_files["by_phone.tmp"], "wb+") as f: + f.write(tmp_result["Phone"]) + + with open(self.log_files["total.tmp"], "ab+") as f: + f.write(result_str) + if test_result[0] == "Failed": + with open(self.log_files["failed_item.tmp"], "ab+") as f: + f.write(result_str) + elif test_result[0] == "Disqualified": + with open(self.log_files["disqualified_item.tmp"], "ab+") as f: + f.write(result_str) + + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + pc_ip = CmdExecutorBasic.extract_parameter(self.pc_ip, self.test_env) + if isinstance(self.udp_port, int) is False: + udp_port = CmdExecutorBasic.extract_parameter(self.udp_port, self.test_env) + else: + udp_port = self.udp_port + + server = UDPServer(pc_ip, udp_port, self.update_phone_list) + server.start() + + while True: + phone, ap_list = self.allocate_test() + if phone is None: + time.sleep(5) + continue + for ap in ap_list: + NativeLog.add_prompt_trace("AP is %s, Phone is %s" % (ap["ssid"], phone["model"])) + session_id = make_session_id(phone["mac"], self.test_id) + self.test_id += 1 + test_handler = TestHandler(session_id, ap, phone, server, self) + test_handler.start() + test_handler.join() + result = test_handler.get_result() + self.output_test_result(ap, phone, result) + + # finally, execute done + server.join() + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/IOT/SCUDPServer.py b/components/test/TestCaseScript/IOT/SCUDPServer.py new file mode 100755 index 000000000..75f24f79a --- /dev/null +++ b/components/test/TestCaseScript/IOT/SCUDPServer.py @@ -0,0 +1,378 @@ +import socket +import time +import os +import threading + +from NativeLog import NativeLog + + +RETRANSMIT_COUNT = 5 +RETRANSMIT_TIMEOUT = 0.5 +ABORT_TIMEOUT = 120 +BEACON_SEND_RATE = 30 + + +VALUE_NAME = {"type": 0x00, + "session id": 0x01, + "result code": 0x02, + "ap ssid": 0x03, + "ap password": 0x04, + "start SC time": 0x05, + "recv UDP time": 0x06, + "SP model": 0x07, + "SP mac": 0x08, + "ET version": 0x09, + "ap bssid": 0x0A, + "ssid hidden": 0x0B, + "ap encryption": 0x0C, + } + +TYPE_VAL = {"Init new test": 0x00, + "test request": 0x01, + "result": 0x02, + "query phone": 0x03, + "ACK": 0x80, + "phone report": 0x81, + "Not support": 0xFF, + "invalid session": 0xFE, + } + +RESULT_CODE_VAL = {"OK": 0x80, + "JAP fail": 0x81, # SP join AP fail, should disqualify this result + "recv UDP fail": 0x82, # SP did not receive UDP sent by target + } + +AP_ENCRYPTION_VAL = {"OPEN": 0x00, + "WEP": 0x01, + "WPA": 0x02, + } + +AP_PROPERTY = ("ssid", "password", "bssid", "is_hidden", "encryption", "ht") +PHONE_PROPERTY = ("ip", "mac", "model") + + +SERIAL_PORT_NUM = 3 +LOG_FILE_PREFIX = "SC_IOT" +LOG_FOLDER = os.path.join("AT_LOG", "TEMP") +LOG_FILE_NAME = os.path.join(LOG_FOLDER, "%s_%s.log" % (LOG_FILE_PREFIX, time.strftime("%d%H%M%S", time.localtime()))) + + +REQUEST_LOCK = threading.Lock() +HANDLER_LOCK = threading.Lock() + + +def sync_request_list(func): + def handle_args(*args, **kwargs): + with REQUEST_LOCK: + ret = func(*args, **kwargs) + return ret + return handle_args + + +def sync_handler_list(func): + def handle_args(*args, **kwargs): + with HANDLER_LOCK: + ret = func(*args, **kwargs) + return ret + return handle_args + + +def _process_one_tlv_pair(data): + typ = ord(data[0]) + length = ord(data[1]) + value = data[2:2+length] + processed_data = data[2+length:] + return (typ, value), processed_data + pass + + +def bytes_to_msg(data): + data_to_process = data + msg = [] + while True: + one_pair, data_to_process = _process_one_tlv_pair(data_to_process) + msg.append(one_pair) + if len(data_to_process) == 0: + break + return msg + pass + + +def msg_to_bytes(msg): + byte_str = "" + for pair in msg: + byte_str += chr(pair[0]) + if isinstance(pair[1], list) is True: + byte_str += chr(len(pair[1])) + byte_str.join([chr(m) for m in pair[1]]) + elif isinstance(pair[1], str) is True: + byte_str += chr(len(pair[1])) + byte_str += pair[1] + elif isinstance(pair[1], int) is True: + byte_str += chr(1) + byte_str += chr(pair[1]) + else: + raise TypeError("msg content only support list and string type") + return byte_str + + +def get_value_from_msg(type_list, msg): + if isinstance(type_list, str) is True: + type_list = [type_list] + ret = [""] * len(type_list) + for pair in msg: + for i in range(len(type_list)): + if pair[0] == VALUE_NAME[type_list[i]]: + ret[i] = pair[1] + if "" not in ret: + # all type value found + break + else: + NativeLog.add_prompt_trace("missing required type in msg") + return ret + + +def bytes_to_time(bytes_in): + if len(bytes_in) != 4: + return 0 + t = float(ord(bytes_in[0])*256*256*256 + ord(bytes_in[1])*256*256 + + ord(bytes_in[2])*256 + ord(bytes_in[2]))/1000 + return t + pass + + +def mac_to_bytes(mac): + tmp = mac.split(':') + return "".join([chr(int(m[:2], base=16)) for m in tmp]) + pass + + +def bytes_to_mac(bytes_in): + mac = "".join(["%x:" % ord(m) for m in bytes_in] ) + return mac[:-1] + + +class RetransmitHandler(threading.Thread): + def __init__(self, udp_server): + threading.Thread.__init__(self) + self.setDaemon(True) + self.udp_server = udp_server + self.exit_event = threading.Event() + pass + + @sync_request_list + def find_required_retransmit_msg(self): + time_now = time.time() + aborted_sessions = [] + retransmit_msg = [] + msgs = filter(lambda x: time_now - x[4] >= RETRANSMIT_TIMEOUT, self.udp_server.unconfirmed_request) + for msg in msgs: + if msg[3] == 0: + aborted_sessions.append(msg[0]) + self.udp_server.unconfirmed_request.remove(msg) + else: + msg[3] -= 1 + msg[4] = time_now + retransmit_msg.append(msg) + pass + return aborted_sessions, retransmit_msg + pass + + def run(self): + while True: + self.exit_event.wait(0.1) + if self.exit_event.isSet() is True: + break + aborted_sessions, retransmit_msg = self.find_required_retransmit_msg() + for msg in retransmit_msg: + self.udp_server.udp_socket.sendto(msg[1], msg[2]) + for session_id in aborted_sessions: + self.udp_server.session_aborted(session_id) + + def exit(self): + self.exit_event.set() + pass + + +class SendBeacon(threading.Thread): + def __init__(self, sock, udp_port): + threading.Thread.__init__(self) + self.setDaemon(True) + self.udp_sock = sock + self.udp_port = udp_port + self.exit_event = threading.Event() + + def run(self): + while True: + msg = [[VALUE_NAME["type"], TYPE_VAL["query phone"]]] + data = msg_to_bytes(msg) + self.udp_sock.sendto(data, ("", self.udp_port)) + for i in range(BEACON_SEND_RATE): + self.exit_event.wait(1) + if self.exit_event.isSet() is True: + return + pass + + def exit(self): + self.exit_event.set() + pass + + +class UDPServer(threading.Thread): + def __init__(self, pc_ip, udp_port, update_phone_handler): + threading.Thread.__init__(self) + self.setDaemon(True) + sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) + sock.bind((pc_ip, udp_port)) + sock.settimeout(1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) + self.udp_socket = sock + self.unconfirmed_request = [] + self.test_handler_list = [] + self.pc_ip = pc_ip + self.udp_port = udp_port + self.update_phone_handler = update_phone_handler + self.retransmit_thread = RetransmitHandler(self) + self.beacon_thread = SendBeacon(self.udp_socket, self.udp_port) + self.retransmit_thread.start() + self.beacon_thread.start() + self.exit_event = threading.Event() + pass + + @sync_handler_list + def register_test_handler(self, session_id, test_handler): + tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) + if len(tmp) > 0: + NativeLog.add_prompt_trace("handler with same session id exist") + else: + self.test_handler_list.append([session_id, test_handler]) + pass + + @sync_handler_list + def deregister_test_handler(self, session_id): + tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) + if len(tmp) > 1: + NativeLog.add_prompt_trace("deregister test handler fail") + elif len(tmp) == 1: + self.test_handler_list.remove(tmp[0]) + pass + + @sync_handler_list + def get_test_handler(self, session_id): + ret = None + tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) + if len(tmp) != 1: + NativeLog.add_prompt_trace("failed to get test handler, " + "%d handler found, session id %s" % (len(tmp), session_id)) + elif len(tmp) == 1: + ret = tmp[0][1] + return ret + pass + + def session_aborted(self, session_id): + test_handler = self.get_test_handler(session_id) + if test_handler is not None: + test_handler.abort_handler() + pass + + def confirm_request(self, session_id, msg, address): + test_handler = self.get_test_handler(session_id) + if test_handler is not None: + test_handler.res_receiver(msg, address) + self.remove_pending_request(session_id) + pass + + def receive_request(self, msg, address): + result = get_value_from_msg(["type", "session id"], msg) + msg_type = ord(result[0]) + session_id = result[1] + if msg_type != TYPE_VAL["result"]: + self.send_response([[VALUE_NAME["type"], TYPE_VAL["Not support"]]], address) + else: + test_handler = self.get_test_handler(session_id) + if test_handler is None: + self.send_response([[VALUE_NAME["type"], TYPE_VAL["invalid session"]], + [VALUE_NAME["session id"], session_id]], + address) + pass + else: + test_handler.req_receiver(msg, address) + pass + + @sync_request_list + def add_request_to_queue(self, dest_addr, session_id, data): + tmp = filter(lambda x: x[0] == session_id, self.unconfirmed_request) + if len(tmp) != 0: + NativeLog.add_prompt_trace("One pending request belong to same session id %s" % session_id) + pass + else: + self.unconfirmed_request.append([session_id, data, + dest_addr, RETRANSMIT_COUNT-1, time.time()]) + + def send_request(self, dest_addr, session_id, msg): + data = msg_to_bytes(msg) + self.add_request_to_queue(dest_addr, session_id, data) + self.udp_socket.sendto(data, dest_addr) + pass + + def send_response(self, msg, address): + self.udp_socket.sendto(msg_to_bytes(msg), address) + + @sync_request_list + def remove_pending_request(self, session_id): + tmp = filter(lambda x: x[0] == session_id, self.unconfirmed_request) + if len(tmp) > 0: + self.unconfirmed_request.remove(tmp[0]) + pass + pass + + def handle_response(self, msg, address): + result = get_value_from_msg(["type", "session id"], msg) + msg_type = ord(result[0]) + session_id = result[1] + if msg_type == TYPE_VAL["ACK"]: + self.confirm_request(session_id, msg, address) + elif msg_type == TYPE_VAL["phone report"]: + # add new available phone + tmp = get_value_from_msg(["SP model", "SP mac"], msg) + phone = dict(zip(PHONE_PROPERTY, [address[0], bytes_to_mac(tmp[1]), tmp[0]])) + self.update_phone_handler(phone) + pass + elif msg_type == TYPE_VAL["Not support"] or msg_type == TYPE_VAL["invalid session"]: + self.session_aborted(session_id) + pass + + def run(self): + while self.exit_event.isSet() is False: + try: + data, address = self.udp_socket.recvfrom(65535) + except socket.error, e: + continue + + if address[0] == self.pc_ip: + continue + + msg = bytes_to_msg(data) + msg_type = get_value_from_msg(["type"], msg)[0] + + if msg_type is None: + NativeLog.add_prompt_trace("invalid incoming msg: %s" % "".join(["0x%X, " % m for m in data])) + else: + msg_type = ord(msg_type) + # check if request or reply + if (msg_type & 0x80) != 0: + self.handle_response(msg, address) + else: + self.receive_request(msg, address) + pass + + self.retransmit_thread.exit() + self.beacon_thread.exit() + self.retransmit_thread.join() + self.beacon_thread.join() + pass + + def exit(self): + self.exit_event.set() + pass diff --git a/components/test/TestCaseScript/IOT/WifiConnUtility.py b/components/test/TestCaseScript/IOT/WifiConnUtility.py new file mode 100755 index 000000000..d50474561 --- /dev/null +++ b/components/test/TestCaseScript/IOT/WifiConnUtility.py @@ -0,0 +1,244 @@ +from NativeLog import NativeLog +import time +import random +import string + + +ERROR_AP_PROP = {"ssid": "123456789012345678901234567890", + "ssid_len": 30, + "pwd": "12345678901234567890", + "pwd_len": 20, + "channel": 10, + "enc": 3, + "apc": 9, # invalid apc count + } + + +class WifiConnUtilError(StandardError): + pass + + +class WifiConnUtility(object): + + def __init__(self, tc_action): + self.tc_action = tc_action + self.target_type = tc_action.target_type + pass + + def set_mode(self, mode): + ret = True + fail_string = "set mode fail" + cmd = [] + checker_stings = [] + for i in range(2): + if self.target_type[0] == "SSC": + cmd.append("SSCC SSC%d op -S -o %d" % (i+1, mode[i])) + checker_stings.append("SSCP SSC%d C cur_mode C %d" % (i+1, mode[i])) + pass + else: + cmd.append("ATC AT%d CWMODE %d" % (i+1, mode[i])) + checker_stings.append("ATP AT%d L OK" % (i+1)) + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Failed to set mode") + ret = False + return ret + pass + + def _apc_switch(self, outlet_list, action_list): + checker_stings = ["R PC_COM C OK"] + switch_cmd = "APC APC1" + fail_string = "Error when switching APC" + ret = True + + for [_outlet, _action] in zip(action_list, outlet_list): + switch_cmd += " %s %d" % (_action, _outlet) + + if self.tc_action.load_and_exe_one_step(checker_stings, [switch_cmd], + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Error when switching APC") + ret = False + return ret + pass + + def _set_target_ap(self, ap_prop): + ret = True + fail_string = "set target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + if self.target_type[1] == "SSC": + if ap_prop["pwd"] == "": + cmd = ["SSCC SSC2 ap -S -s %s -t %d" % (ap_prop["ssid"], + ap_prop["enc"]) + ] + else: + cmd = ["SSCC SSC2 ap -S -s %s -p %s -t %d" % (ap_prop["ssid"], + ap_prop["pwd"], + ap_prop["enc"]) + ] + checker_stings = ["SSCP SSC2 C +SAP:OK"] + pass + else: + cmd = ["ATC AT2 CWSAP \"%s\" \"%s\" %d %d" % (ap_prop["ssid"], + ap_prop["pwd"], + ap_prop["channel"], + ap_prop["enc"]) + ] + checker_stings = ["ATR AT2 L OK"] + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("set target ap fail") + ret = False + return ret + pass + + def setup_ap(self, ap_type, ap_prop): + if ap_type == "target": + ret = self._set_target_ap(ap_prop) + pass + else: + ret = self._apc_switch(["ON"], [ap_prop["apc"]]) + # delay for 5 seconds, wait AP ready + time.sleep(5) + pass + return ret + + def do_scan(self, ap_prop): + fail_string = "Scan fail" + ret = True + # do not check if the set AP can be scanned + if self.target_type[1] == "SSC": + cmd = ["SSCC SSC1 sta -S"] + checker_stings = ["SSCR SSC1 C ssc%20scan%20done"] + pass + else: + cmd = ["ATS AT1 AT+CWLAP"] + checker_stings = ["ATR AT1 L OK"] + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=100) is False: + NativeLog.add_trace_critical("Scan fail") + ret = False + return ret + pass + + def _switch_off_target_ap(self, delay): + time.sleep(delay) + self._set_target_ap(ERROR_AP_PROP) + pass + + def _switch_on_target_ap(self, ap_prop, delay): + time.sleep(delay) + self._set_target_ap(ap_prop) + pass + + def _switch_off_ap(self, ap_type, ap_prop, delay_range): + delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 + if ap_type == "target": + self._switch_off_target_ap(delay) + else: + delay -= 1.5 + time.sleep(delay if delay > 0 else 0) + self._apc_switch(["OFF"], [ap_prop["apc"]]) + pass + + def _switch_on_ap(self, ap_type, ap_prop, delay_range): + delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 + if ap_type == "target": + self._switch_on_target_ap(ap_prop, delay) + else: + delay -= 1.5 + time.sleep(delay if delay > 0 else 0) + self._apc_switch(["ON"], [ap_prop["apc"]]) + pass + + def _join_ap(self, ap_prop, test_method): + fail_string = "join target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + if self.target_type[1] == "SSC": + cmd = ["SSCC SSC1 ap -C -s %s -p %s" % (ap_prop["ssid"], + ap_prop["pwd"],) + ] + checker_stings = ["SSCR SSC1 C %s" % ap_prop["ssid"], + "SSCR SSC1 C dhcp%20client%20start", + "SSCR SSC1 C ip C mask C gw"] + pass + else: + cmd = ["ATC AT1 CWJAP \"%s\" \"%s\"" % (ap_prop["ssid"], + ap_prop["pwd"]) + ] + checker_stings = ["ATR AT1 NC ERROR NC FAIL L OK"] + pass + if test_method == "Normal": + ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_freq=0.1, check_time=350) + if ret is not False: + ret *= 0.1 + else: + ret = self.tc_action.load_and_exe_one_step([], cmd, fail_string) + return ret + pass + + def _check_join_ap_result(self, ap_prop): + ret = False + fail_string = "join ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + + if self.target_type[1] == "SSC": + checker_stings = ["SSCR SSC1 C dhcp%20client%20start", + "SSCR SSC1 C ip C mask C gw"] + ret = self.tc_action.load_and_exe_one_step(checker_stings, ["DELAY 0"], + fail_string, check_freq=1, check_time=120) + pass + else: + cmd = ["ATS AT1 AT+CWJAP?"] + checker_stings = ["ATR AT1 NC busy NC No%20AP C +CWJAP"] + for i in range(3): + ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_freq=1, check_time=2) + if ret is not False: + break + time.sleep(15) + + return ret + pass + + def join_ap(self, join_test_method, ap_type, ap_prop, delay): + + if join_test_method == "WRONG_PROP": + _prop = ERROR_AP_PROP + else: + _prop = ap_prop + + ret = self._join_ap(_prop, join_test_method) + + if join_test_method == "OFF_ON": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + self._switch_on_ap(ap_type, ap_prop, delay[1]) + ret = self._check_join_ap_result(_prop) + pass + elif join_test_method == "OFF": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + time.sleep(25) + pass + + return ret + pass + + def do_reconnect(self, reconnect_test_method, ap_type, ap_prop, delay): + ret = True + if reconnect_test_method == "OFF_ON": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + self._switch_on_ap(ap_type, ap_prop, delay[1]) + ret = self._check_join_ap_result(ap_prop) + pass + elif reconnect_test_method == "OFF": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + pass + return ret + pass + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/IOT/WifiJAP.py b/components/test/TestCaseScript/IOT/WifiJAP.py new file mode 100755 index 000000000..0bb629295 --- /dev/null +++ b/components/test/TestCaseScript/IOT/WifiJAP.py @@ -0,0 +1,183 @@ +import os +import random +import time + +import WifiConnUtility +from NativeLog import NativeLog +from TCAction import TCActionBase +from Utility import Encoding +from Utility import MakeFolder + +STEPS = {"SCAN1": 0x01, "JAP": 0x02, "SCAN2": 0x04, "RECONNECT": 0x08} + +AP_PROP = ("ssid", "ssid_len", "pwd", + "pwd_len", "channel", "enc", "apc") + +JAP_TEST_METHOD = ("Normal", "OFF_ON", "OFF", "WRONG_PROP") + +RECONNECT_TEST_METHOD = ("OFF_ON", "OFF") + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") + + +SSID_LEN_RANGE = (1, 32) # in bytes +ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP +PWD_RANGE = {0: [0, 0], + 1: [5, 5], + 2: [8, 63], + 3: [8, 63], + 4: [8, 63], + } + + +class WifiJAP(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # default value for optional configurable params + self.pwd_len = [8, 64] + self.step_config = [0x03, 0x01, 0x02, 0x0B, 0x0F] + self.join_test_method = ["Normal"] + self.join_delay = [[1.5, 5], [1.5, 5]] + self.reconnect_test_method = ["OFF_ON"] + self.reconnect_delay = [[1.5, 5], [1.5, 6]] + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # read AP list + self.ap_list = [] + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROP, " + cmd_set[i][1][j] + ")))" + exec cmd_string + + folder_path = MakeFolder.make_folder(LOG_FOLDER) + file_name = "JAP_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) + self._performance_log_file = os.path.join(folder_path, file_name) + + # test statistics + self._succeed_count = self._fail_count = self._time_cost_count = 0 + self._total_time = self._longest_time = 0 + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + # get target type "SSC" or "AT" + self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] + self.target_type.append("SSC" if test_env.get_port_by_name("AT1") is None else "AT") + self._utility = WifiConnUtility.WifiConnUtility(self) + pass + + def _generate_random_ap_prop(self): + ap_prop = dict.fromkeys(AP_PROP) + # generate target ap_value + ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) + ap_prop["channel"] = random.choice(range(1, 14)) + ap_prop["enc"] = random.choice(ENC_TYPE) + ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) + # generate string + if self.target_type[0] == self.target_type[1] == "AT": + ap_prop["ssid"] = Encoding.generate_random_utf8_str(ap_prop["ssid_len"]) + ap_prop["pwd"] = Encoding.generate_random_utf8_str(ap_prop["pwd_len"]) + # NativeLog.add_trace_info("ssid hex is : %x" % ap_prop["ssid"]) + # NativeLog.add_trace_info("pwd hex is : %x" % ap_prop["pwd"]) + else: + ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) + ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) + + return ap_prop + + def _logging_performance(self, ssid, join_method="Normal", time_cost=0): + # log performance to performance log file + with open(self._performance_log_file, "ab+") as f: + # log time and ssid + f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % + (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) + if join_method == "Normal" or join_method == "OFF_ON": + if time_cost is not False: + self._succeed_count += 1 + if join_method == "Normal": + f.write("[Succeed][%f]\r\n" % time_cost) + self._longest_time = (time_cost > self._longest_time and + [time_cost] or [self._longest_time])[0] + self._time_cost_count += 1 + self._total_time += time_cost + else: + f.write("[Succeed][%s]\r\n" % join_method) + else: + self._fail_count += 1 + f.write("[Fail][%s]\r\n" % join_method) + pass + + def _logging_fail_step(self, ssid, step): + with open(self._performance_log_file, "ab+") as f: + f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % + (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) + f.write("[Fail][%s]\r\n" % step) + pass + + def _generate_performance_report(self): + with open(self._performance_log_file, "ab+") as f: + f.write("[Test report] Succeed: %d\r\n" % self._succeed_count) + f.write("[Test report] Failed: %d\r\n" % self._fail_count) + if self._succeed_count > 0 or self._fail_count > 0: + f.write("[Test report] Pass Rate: %f\r\n" % + (self._succeed_count/(self._fail_count+self._succeed_count))) + if self._time_cost_count > 0: + f.write("[Test report] Average time: %f\r\n" % (self._total_time/self._time_cost_count)) + f.write("[Test report] Longest time: %f\r\n" % self._longest_time) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # mandatory configurable params + try: + target_ap_num = self.target_ap_num + test_count = self.test_count + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) + raise StandardError("Error configuration") + + # prepare ap list + _ap_list = [["target", None]] * target_ap_num + for _ap_prop in self.ap_list: + _ap_list.append(["AP", _ap_prop]) + + # set to correct mode first + # self._utility.set_mode([1, 2]) + + for _ap in _ap_list: + # arrange ap + _ap_type = _ap[0] + _ap_prop = _ap[1] + if _ap_type == "target": + _ap_prop = self._generate_random_ap_prop() + + for i in xrange(test_count): + # step 3 : mandatory step, join AP + _join_test_method = "Normal" + time_cost = self._utility.join_ap(_join_test_method, _ap_type, _ap_prop, self.join_delay) + # log performance to performance log file + self._logging_performance(_ap_prop["ssid"], _join_test_method, time_cost) + NativeLog.add_prompt_trace("[Step] Join AP done") + + NativeLog.add_prompt_trace("[WifiJAP] One AP Done") + + # generate report and cleanup + self._generate_performance_report() + + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/IOT/__init__.py b/components/test/TestCaseScript/IOT/__init__.py new file mode 100755 index 000000000..db0afd1fc --- /dev/null +++ b/components/test/TestCaseScript/IOT/__init__.py @@ -0,0 +1 @@ +__author__ = 'Administrator' diff --git a/components/test/TestCaseScript/MeshStress/MeshSendRecv.py b/components/test/TestCaseScript/MeshStress/MeshSendRecv.py new file mode 100755 index 000000000..bad4619a7 --- /dev/null +++ b/components/test/TestCaseScript/MeshStress/MeshSendRecv.py @@ -0,0 +1,525 @@ +from __future__ import division +import time +import threading +import re +import random +import os +import binascii + +from TCAction import PerformanceTCBase +from NativeLog import NativeLog +from NativeLog import HTMLGenerator +from comm import MeshPort +from Utility import Encoding + +# check frequency in second +CHECK_FREQ = 0.05 +# check timeout in seconds +CHECK_TIMEOUT = 30 +# multicast group len +MULTICAST_GROUP_LEN = 2 + + +LOG_PATH = os.path.join("..", "log") + +def _convert_to_mesh_mac_format(value_in): + value_out = "" + match_list = re.findall("([0-9a-fA-F]+)", value_in) + try: + for i in range(6): + value_out += "%02X" % int(match_list[i], base=16) + pass + except StandardError, e: + NativeLog.add_exception_log(e) + raise e + return value_out + +class SendRecvTime(threading.Thread): + def __init__(self): + threading.Thread.__init__(self) + self.setDaemon(True) + self.send_time = dict() + self.recv_time = dict() + self.send_time_lock = threading.Lock() + self.recv_time_lock = threading.Lock() + + def add_send_time(self, key, timestamp): + with self.send_time_lock: + self.send_time[key] = timestamp + + def add_recv_time(self, key, timestamp): + with self.recv_time_lock: + if key in self.recv_time.keys(): + self.recv_time[key].append(timestamp) + else: + self.recv_time[key] = [timestamp] + + def calculate(self): + # add compute delay time code here + print 'send dict len:', len(self.send_time) + print 'recv dict len:', len(self.recv_time) + recv_time_keys = self.recv_time.keys() + Max_delay_time = 0.0 + Total_delay_time = 0.0 + # for i in range(len(recv_time_keys)): + # key = recv_time_keys[i] + for key in recv_time_keys: + Total_delay_time_t = 0.0 + if isinstance(self.recv_time[key], list): + for time1 in self.recv_time[key]: + if time1 - self.send_time[key] >= Max_delay_time: + Max_delay_time = time1 - self.send_time[key] + Total_delay_time_t += (time1 - self.send_time[key]) + else: + pass + else: + if self.recv_time[key] - self.send_time[key] > Max_delay_time: + Max_delay_time = self.recv_time[key] - self.send_time[key] + Total_delay_time_t += (self.recv_time[key] - self.send_time[key]) + Total_delay_time_t += (Total_delay_time_t / len(self.recv_time[key])) + Total_delay_time += Total_delay_time_t + Avg_delay_time = Total_delay_time / len(recv_time_keys) + loss_rate = (len(self.send_time.keys()) - len(self.recv_time.keys())) / len(self.send_time.keys()) + return [Max_delay_time, Avg_delay_time, loss_rate] + pass + +class EntitySendThread(threading.Thread): + def __init__(self, port, behavior, unicast_addr, send_delay, typ, device_mac_list, server_addr, send_recv_time): + threading.Thread.__init__(self) + self.setDaemon(True) + self.recv_data_cache = "" + self.packets_sent = 0 + self.port = port + self.behavior = behavior + self.typ = typ + self.unicast_addr = unicast_addr + self.node_num = len(device_mac_list) + self.device_mac_list = list(device_mac_list) + self.server_addr = server_addr + if typ != "SERVER": + self.device_mac_list.remove(port.device_mac) + self.send_delay = send_delay + self.cache_lock = threading.Lock() + self.exit_event = threading.Event() + self.send_recv_time = send_recv_time + pass + + def data_recv_callback(self, data): + with self.cache_lock: + self.recv_data_cache += data + if self.typ == "SSC": + while True: + if self.recv_data_cache is not None: + match = re.compile(".+\+MSEND1:\d+:OK", re.DOTALL) + res = match.search(self.recv_data_cache) + index = re.search("\+MSEND1:(\d+):OK", self.recv_data_cache) + if index is not None: + time1 = time.time() + index1 = int(index.group(1)) + self.send_recv_time.add_send_time(index1, time1) + #print 'send index:', index1 + process_index = res.group().split("MSEND1") + if len(process_index) > 1: + process_index_t = len(process_index[0]) + len("MSEND1") + self.recv_data_cache = self.recv_data_cache[process_index_t:] + else: + self.recv_data_cache = self.recv_data_cache[len(res.group()):] + else: + break + else: + break + pass + + + def __server_send_packet(self, dst_addr, option_list=None, group_addr=None): + ver = 0x0 + flags = 0x0 + proto = 0x0 + index = random.randint(10000, 999999999) + if group_addr is not None: + len_t = hex(len(group_addr) * 6).split("0x") + if len(group_addr) <= 2: + option_list = "070" + len_t[1] + else: + option_list = "07" + len_t[1] + group = "" + for addr in group_addr: + group += _convert_to_mesh_mac_format(addr) + option_list += group + else: + option_list = None + if self.behavior == "broadcast": + dst_addr = "00:00:00:00:00:00" + elif self.behavior == "unicast": + if self.unicast_addr == "random": + dst_addr = random.choice(self.device_mac_list) + else: + dst_addr = self.unicast_addr + elif self.behavior == "p2p": + proto = 0x2 + if self.unicast_addr == "random": + dst_addr = random.choice(self.device_mac_list) + else: + dst_addr = self.unicast_addr + packet = MeshPort.Packet(ver=ver, flags=flags, proto=proto, + dst_addr=dst_addr, src_addr=self.server_addr, option_list=option_list, data="A" * 100, index=index) + send_data = packet.dumps + try: + self.port.socket.send(send_data) + time2 = time.time() + self.send_recv_time.add_send_time(index, time2) + except StandardError, e: + NativeLog.add_exception_log(e) + return False + + def __server_do_send(self): + if self.behavior == "broadcast": + if self.__server_send_packet(dst_addr="00:00:00:00:00:00", group_addr=None) is True: + self.packets_sent += self.node_num + elif self.behavior == "multicast": + random.shuffle(self.device_mac_list) + group_addr_list = self.device_mac_list[:MULTICAST_GROUP_LEN] + if self.__server_send_packet(dst_addr="01:00:5E:00:00:00", group_addr=group_addr_list) is True: + self.packets_sent += MULTICAST_GROUP_LEN + elif self.behavior == "unicast": + if self.__server_send_packet(dst_addr=random.choice(self.device_mac_list), group_addr=None) is True: + self.packets_sent += 1 + elif self.behavior == "p2p": + if self.__server_send_packet(dst_addr=random.choice(self.device_mac_list), group_addr=None) is True: + self.packets_sent += 1 + else: + NativeLog.add_trace_critical("unsupported behavior [%s]" % self.behavior) + self.exit() + return + + def __node_send_packet(self, dst_addr, group_addr=None): + send_data = "" + ret = False + if group_addr is not None: + len_t = hex(len(group_addr) * 6).split("0x") + if len(group_addr) <= 2: + option_list = "070" + len_t[1] + else: + option_list = "07" + len_t[1] + group = "" + for addr in group_addr: + group += _convert_to_mesh_mac_format(addr) + option_list += group + dst_addr = "01:00:5E:00:00:00" + send_data = "meshsend -S -d %s -o %s -l 100\r\n" % (dst_addr, option_list) + else: + if self.behavior == "broadcast": + dst_addr = "00:00:00:00:00:00" + send_data = "meshsend -S -d %s -l 100\r\n" % dst_addr + elif self.behavior == "unicast": + if self.unicast_addr == "random": + dst_addr = random.choice(self.device_mac_list) + else: + dst_addr = self.unicast_addr + send_data = "meshsend -S -d %s -l 100\r\n" % dst_addr + elif self.behavior == "p2p": + if self.unicast_addr == "random": + dst_addr = random.choice(self.device_mac_list) + else: + dst_addr = self.unicast_addr + send_data = "meshsend -S -d %s -t 1 -l 100\r\n" % dst_addr + try: + self.port.write(send_data) + except StandardError, e: + NativeLog.add_exception_log(e) + pass + for i in range(int(CHECK_TIMEOUT / CHECK_FREQ)): + time.sleep(CHECK_FREQ) + with self.cache_lock: + if self.recv_data_cache.find("+MESHSEND:OK") != -1: + ret = True + break + elif self.recv_data_cache.find("+MESHSEND:ERROR") != -1: + break + return ret + + + def __node_do_send(self): + if self.behavior == "broadcast": + if self.__node_send_packet("00:00:00:00:00:00", group_addr=None) is True: + self.packets_sent += self.node_num + elif self.behavior == "multicast": + random.shuffle(self.device_mac_list) + group_addr_list = self.device_mac_list[:MULTICAST_GROUP_LEN] + if self.__node_send_packet("01:00:5E:00:00:00", group_addr_list) is True: + self.packets_sent += MULTICAST_GROUP_LEN + elif self.behavior == "unicast": + if self.__node_send_packet(random.choice(self.device_mac_list), group_addr=None) is True: + self.packets_sent += 1 + elif self.behavior == "p2p": + if self.__node_send_packet(random.choice(self.device_mac_list), group_addr=None) is True: + self.packets_sent += 1 + else: + NativeLog.add_trace_critical("unsupported behavior [%s]" % self.behavior) + self.exit() + return + + def get_sent_packets(self): + return self.packets_sent + + def exit(self): + self.exit_event.set() + pass + + def run(self): + while self.exit_event.isSet() is False: + if self.typ == "SSC": + self.__node_do_send() + elif self.typ == "SERVER": + self.__server_do_send() + else: + NativeLog.add_trace_critical("type [%s] is neither SSC nor SERVER" % self.typ) + break + time.sleep(self.send_delay) + + pass + + +class EntityRecvThread(threading.Thread): + def __init__(self, port, typ, send_recv_time): + threading.Thread.__init__(self) + self.setDaemon(True) + self.recv_data_cache = "" + self.packets_recv = 0 + self.port = port + self.typ = typ + self.cache_lock = threading.Lock() + self.exit_event = threading.Event() + self.send_recv_time = send_recv_time + pass + + def data_recv_callback(self, data): + # if self.typ == "SERVER": + # NativeLog.add_prompt_trace("[data_recv_callback] server recv len %d" % len(data)) + with self.cache_lock: + self.recv_data_cache += data + pass + + def __server_do_recv(self): + while True: + if self.recv_data_cache: + data_cache = self.recv_data_cache + data_cache_hex = binascii.hexlify(data_cache) + packet_len = int(data_cache_hex[2:6], 16) + if len(self.recv_data_cache) >= packet_len: + time3 = time.time() + data_catch_t = self.recv_data_cache[:packet_len] + packet = binascii.hexlify(data_catch_t) + index3 = int(packet[-8:], 16) + self.send_recv_time.add_recv_time(index3, time3) + self.recv_data_cache = self.recv_data_cache[packet_len:] + else: + break + #self.packets_recv += 1 + else: + break + + def __node_do_recv(self): + with self.cache_lock: + while True: + if self.recv_data_cache: + match = re.search("\+MESHRECV:\d+", self.recv_data_cache) + index = re.search(",(\d+),OK", self.recv_data_cache) + res = re.compile(".+,\d+,OK", re.DOTALL) + res_t = res.search(self.recv_data_cache) + if match is not None: + time4 = time.time() + if index is not None: + index4 = int(index.group(1)) + self.send_recv_time.add_recv_time(index4, time4) + if len(res_t.group()) > 1: + process_index = len(res_t.group(0)) + self.recv_data_cache = self.recv_data_cache[process_index:] + else: + process_index = len(res_t.group()) + self.recv_data_cache = self.recv_data_cache[process_index:] + else: + break + else: + break + # self.packets_recv += 1 + else: + break + pass + + def get_recv_packets(self): + return self.packets_recv + + def exit(self): + self.exit_event.set() + pass + + def run(self): + while self.exit_event.isSet() is False: + if self.typ == "SSC": + self.__node_do_recv() + elif self.typ == "SERVER": + self.__server_do_recv() + else: + NativeLog.add_trace_critical("type [%s] is neither SSC nor SERVER" % self.typ) + break + time.sleep(CHECK_FREQ) + + pass + + +class MeshSendRecv(PerformanceTCBase.PerformanceTCBase): + def __init__(self, name, test_env, cmd_set, timeout, log_path): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.send_config = [] + self.test_time = 0 + self.loss_rate_standard = 0.8 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # load node send config + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.send_config.extend([" + cmd_set[i][1][j] + "])" + exec cmd_string + node_num = self.get_parameter("node_num") + self.recv_cb = dict.fromkeys(["SSC%s" % (x + 1) for x in range(int(node_num))] + ["GSOC1"]) + self.recv_cb_lock = threading.Lock() + pass + + def register_recv_callback(self, port_name, callback): + with self.recv_cb_lock: + if self.recv_cb[port_name] is None: + self.recv_cb[port_name] = [callback] + else: + self.recv_cb[port_name].append(callback) + pass + + def process(self): + try: + test_time = self.test_time * 60 + send_config = self.send_config + loss_rate_standard = self.loss_rate_standard + node_num = self.get_parameter("node_num") + pc_ip_list = self.get_parameter("pc_ip").split(".") + port = self.get_parameter("test_tcp_port1") + send_recv_time = SendRecvTime() + except StandardError: + return + #create server_addr + server_addr = "" + for i in range(len(pc_ip_list)): + if pc_ip_list[i] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: + server_addr = server_addr + "0" + pc_ip_list[i] + else: + list_t = hex(int(pc_ip_list[i])).split("0x") + server_addr += list_t[1] + port_t = hex(port).split("0x") + port_t_list = list(port_t[1]) + server_addr = server_addr + port_t_list[2] + port_t_list[3] + port_t_list[0] + port_t_list[1] + server_port = self.test_env.get_port_by_name("GSOC1") + if server_port is None: + return + + # create thread dict + thread_dict = dict.fromkeys(["SSC%s" % (x + 1) for x in range(int(node_num))] + ["GSOC1"]) + for port_name in thread_dict: + thread_dict[port_name] = dict(zip(["tx", "rx"], [None, None])) + device_mac_list = [] + # init recv thread & register port for SSC + for port_name in ["SSC%s" % (x + 1) for x in range(int(node_num))]: + port = self.test_env.get_port_by_name(port_name) + thread_dict[port_name]["rx"] = EntityRecvThread(port, "SSC", send_recv_time) + self.register_recv_callback(port_name, thread_dict[port_name]["rx"].data_recv_callback) + device_mac_list.append(port.device_mac) + + thread_dict["GSOC1"]["rx"] = EntityRecvThread(server_port, "SERVER", send_recv_time) + self.register_recv_callback("GSOC1", thread_dict["GSOC1"]["rx"].data_recv_callback) + + # config[0]: target_name; config[1]: behavior; config[2]: destination; config[3]:send_delay; + for config in send_config: + port = self.test_env.get_port_by_name(config[0]) + name = port.name + if config[2] == "GSOC1": + dst = server_addr[:2] + ":" + server_addr[2:4] + ":" + server_addr[4:6] + ":" + server_addr[6:8] + \ + ":" + server_addr[8:10] + ":" + server_addr[10:12] + elif config[2] == "random": + dst = "random" + else: + dst = self.test_env.get_port_by_name(config[2]).device_mac + if name != "GSOC1": + server_addr = None + if config[1] == "broadcast" or config[1] == "multicast": + dst = None + typ = "SSC" if isinstance(port, MeshPort.MeshPort) is False else "SERVER" + thread_dict[name]["tx"] = EntitySendThread(port, config[1], dst, config[3], typ, device_mac_list, + server_addr, send_recv_time) + self.register_recv_callback(name, thread_dict[name]["tx"].data_recv_callback) + pass + + # start all thread + for port_name in thread_dict: + if thread_dict[port_name]["rx"] is not None: + thread_dict[port_name]["rx"].start() + if thread_dict[port_name]["tx"] is not None: + thread_dict[port_name]["tx"].start() + + # wait test time + time.sleep(test_time) + # close all send thread + for port_name in thread_dict: + if thread_dict[port_name]["tx"] is not None: + thread_dict[port_name]["tx"].exit() + thread_dict[port_name]["tx"].join() + # make sure all packet received before close recv thread + time.sleep(10) + # close all recv thread + for port_name in thread_dict: + if thread_dict[port_name]["rx"] is not None: + thread_dict[port_name]["rx"].exit() + thread_dict[port_name]["rx"].join() + + [max_delay_time, avg_delay_time, loss_rate] = send_recv_time.calculate() + + NativeLog.add_trace_critical("[Mesh Send Recv Test] MAX Delay Time is %.3f" % max_delay_time) + NativeLog.add_trace_critical("[Mesh Send Recv Test] Avg Delay Time is %.3f" % avg_delay_time) + NativeLog.add_trace_critical("[Mesh Send Recv Test] loss rate is %.2f%%" % (loss_rate * 100)) + + # set succeed if loss rate higher than required + if loss_rate < loss_rate_standard: + self.set_result("Succeed") + pass + + @Encoding.encode_utf8(3) + def result_check(self, port_name, data): + if port_name in self.recv_cb: + # if port_name == "GSOC1": + # NativeLog.add_prompt_trace("[result_check] recv GSOC1 data len %s" % len(data)) + with self.recv_cb_lock: + callback_list = self.recv_cb[port_name] + if callback_list is not None: + for callback in callback_list: + callback(data) + + # do logging + timestamp = NativeLog.generate_timestamp() + with self.sync_lock: + _formatted_data = HTMLGenerator.process_one_log_item(data, self.log_index, port_name, timestamp) + self.log_index += 1 + + self.append_to_log_file(_formatted_data) + + NativeLog.add_all_tc_log(data, port_name, timestamp) + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/MeshStress/__init__.py b/components/test/TestCaseScript/MeshStress/__init__.py new file mode 100755 index 000000000..6e94287c4 --- /dev/null +++ b/components/test/TestCaseScript/MeshStress/__init__.py @@ -0,0 +1 @@ +__all__ = ["StableCase1"] \ No newline at end of file diff --git a/components/test/TestCaseScript/SSLTest/Capability.py b/components/test/TestCaseScript/SSLTest/Capability.py new file mode 100755 index 000000000..efdb6eeb9 --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/Capability.py @@ -0,0 +1,90 @@ + + +class SSLCapability(object): + CAPABILITY_TYPE = ["version", "cipher_suite", "fragment_size", # for hello capability negotiation + "verify_server", "verify_client", # if support verify server/client + "key_algorithm", "key_encoding", "pem_encryption", # what kind of private it supports + "certificate_encoding", "certificate_digest", # what kind of certificate it supports + ] + SSL_TYPE = ("TargetClient", "TargetServer", "PCClient", "PCServer") + + def __init__(self, typ, **kwargs): + assert typ in self.SSL_TYPE + self.type = typ + self.capability = dict.fromkeys(self.CAPABILITY_TYPE, None) + for kw in kwargs: + self.capability[kw] = kwargs[kw] + for kw in self.capability: + assert self.capability[kw] is not None + pass + + def get(self, kw): + return self.capability[kw] + + def set(self, **kwargs): + for kw in kwargs: + self.capability[kw] = kwargs[kw] + pass + + +class TargetSSLCapability(SSLCapability): + DEFAULT_CAPABILITY = { + "version": ["SSLv23_2"], + "cipher_suite": ["TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_RC4_128_SHA", + "TLS_RSA_WITH_RC4_128_MD5"], + "fragment_size": [2048, 4096, 8192], + "verify_server": True, + "verify_client": False, + "key_algorithm": ["RSA512", "RSA1024", "RSA2048", "RSA4096"], + "key_encoding": ["PEM", "DER"], + "pem_encryption": [None, "aes128", "aes256"], + "certificate_encoding": ["PEM", "DER"], + "certificate_digest": ["md5", "sha1", "sha256", "sha384", "sha512"], + } + + def __init__(self, typ, **kwargs): + assert typ == "TargetClient" or typ == "TargetServer" + capability = dict(self.DEFAULT_CAPABILITY) + for kw in kwargs: + capability[kw] = kwargs[kw] + SSLCapability.__init__(self, typ, **capability) + pass + pass + + +class PCSSLCapability(SSLCapability): + DEFAULT_CAPABILITY = { + "version": ["SSLv23", "SSLv20", "SSLv30", "TLSv10", "TLSv11", "TLSv12"], + "cipher_suite": ["TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_RC4_128_SHA", + "TLS_RSA_WITH_RC4_128_MD5", + "TLS_DH_DSS_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"], + "fragment_size": [16384], + "verify_server": True, + "verify_client": True, + "key_algorithm": ["RSA512", "RSA1024", "RSA2048", "RSA4096"], + "key_encoding": ["PEM"], + "pem_encryption": [None], + "certificate_encoding": ["PEM"], + "certificate_digest": ["md5", "sha1", "sha256", "sha384", "sha512"], + } + + def __init__(self, typ): + assert typ == "PCClient" or typ == "PCServer" + SSLCapability.__init__(self, typ, **self.DEFAULT_CAPABILITY) + pass + pass + + +def main(): + pc = PCSSLCapability("PCClient") + target = TargetSSLCapability("TargetClient") + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/ConfigUtility.py b/components/test/TestCaseScript/SSLTest/ConfigUtility.py new file mode 100755 index 000000000..f36fe44fe --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/ConfigUtility.py @@ -0,0 +1,333 @@ +from PKI import PKIDict, PKIItem +import Parameter + + +def multiply_2_lists(list1, list2): + def make_list(li): + if not isinstance(li, list): + li = [li] + return li + list1 = make_list(list1) + list2 = make_list(list2) + ret = [] + for a in list1: + for b in list2: + ret.append(make_list(a) + make_list(b)) + return ret + + +def list_multiply(list1, *args): + ret = list1 + for arg in args: + ret = multiply_2_lists(ret, arg) + return ret + + +def list_and(list1, list2): + ret = [] + for item in list1: + if item in list2: + ret.append(item) + return ret + + +class ComputeResult(object): + NEGOTIATION_CONFIG = ["client_version", "client_cipher_suite", "client_fragment_size", + "server_version", "server_cipher_suite", "server_fragment_size"] + CERT_KEY_CONFIG = ["verify_server", "verify_client", + "client_trust_anchor", "client_certificate", "client_key", + "server_trust_anchor", "server_certificate", "server_key"] + + TYPE_CONTEXT = "context" + TYPE_NEGOTIATION = "negotiation" + TYPE_CERT_KEY = "cert_key" + TYPE_SEND_PARAM = "send_param" + + # results + SUCCEED = 0 + CREATE_CONTEXT_FAIL = 1 + HANDSHAKE_FAIL = 2 + CERT_KEY_FAIL = 3 + + def __init__(self, client_capability, server_capability): + self.client_capability = client_capability + self.server_capability = server_capability + pass + + @staticmethod + def __check_cert(cert, capability, check_encoding=True): + ret = True + if cert.name is not None: + if check_encoding is True: + if cert.digest not in capability.get("certificate_digest") \ + or cert.key_algorithm not in capability.get("key_algorithm") \ + or cert.file_encoding not in capability.get("certificate_encoding"): + ret = False + else: + if cert.digest not in capability.get("certificate_digest") \ + or cert.key_algorithm not in capability.get("key_algorithm"): + ret = False + return ret + + @staticmethod + def __check_key(key, capability, check_encoding=True): + ret = True + if key.name is not None: + if check_encoding is True: + if key.algorithm not in capability.get("key_algorithm") \ + or key.file_encoding not in capability.get("key_encoding") \ + or key.file_encryption not in capability.get("pem_encryption"): + ret = False + else: + if key.algorithm not in capability.get("key_algorithm") \ + or key.file_encryption not in capability.get("pem_encryption"): + ret = False + return ret + + # compute result functions + def check_context(self, config): + result = self.SUCCEED + check_list = [(self.__check_cert, PKIItem.Certificate(config["client_trust_anchor"]), + self.client_capability), + (self.__check_cert, PKIItem.Certificate(config["client_certificate"]), + self.client_capability), + (self.__check_key, PKIItem.PrivateKey(config["client_key"]), + self.client_capability), + (self.__check_cert, PKIItem.Certificate(config["server_trust_anchor"]), + self.server_capability), + (self.__check_cert, PKIItem.Certificate(config["server_certificate"]), + self.server_capability), + (self.__check_key, PKIItem.PrivateKey(config["server_key"]), + self.server_capability)] + for _check in check_list: + if _check[0](_check[1], _check[2]) is False: + result = self.CREATE_CONTEXT_FAIL + break + return result + + def check_negotiation_param(self, config): + result = self.SUCCEED + # first check version + while True: + if Parameter.VERSION[config["client_version"]]\ + & Parameter.VERSION[config["server_version"]] == 0: + result = self.HANDSHAKE_FAIL + break + # check cipher suite + supported_cipher_suite = list_and(self.client_capability.get("cipher_suite"), + self.server_capability.get("cipher_suite")) + if config["client_cipher_suite"] not in supported_cipher_suite\ + or config["server_cipher_suite"] not in supported_cipher_suite\ + or config["client_cipher_suite"] != config["server_cipher_suite"]: + result = self.HANDSHAKE_FAIL + break + break + return result + + # check cert key, if it can be supported by both client and server, if it matches + def __check_cert_key_content(self, cert, key): + if self.__check_cert(cert, self.client_capability, check_encoding=False) is True\ + and self.__check_cert(cert, self.server_capability, check_encoding=False) is True \ + and self.__check_key(key, self.client_capability, check_encoding=False) is True \ + and self.__check_key(key, self.server_capability, check_encoding=False) is True \ + and key.name.find(cert.private_key) != -1: + result = True + else: + result = False + return result + + def __verify_ca(self, ca, cert, capability): + result = True + while True: + # if ca supported + if self.__check_cert(ca, capability) is False: + result = False + break + # check if ca in cert chain + try: + index = cert.cert_chain.index(ca.name) + except StandardError: + result = False + break + + # for pem cert, it contains cert chain to issuer, any cert in chain works + # der cert do not contain cert chain + # only der root cert verify L1 cert and root cert works + if cert.file_encoding == "DER": + if len(cert.cert_chain) > 2 and index != len(cert.cert_chain) - 1: + result = False + break + # check if all certs in before trust anchor supported + for cert_name in cert.cert_chain[1:index]: + _cert = PKIItem.Certificate(cert_name + ".pem") + if self.__check_cert(_cert, capability) is False: + result = False + break + break + return result + + def __check_verify_client(self, client_cert, client_key, server_ca): + result = self.__check_cert_key_content(client_cert, client_key) + if result is True: + result = self.__verify_ca(server_ca, client_cert, self.server_capability) + return result + + def __check_verify_server(self, client_ca, server_cert): + return self.__verify_ca(client_ca, server_cert, self.client_capability) + + def check_cert_key(self, config): + result = self.SUCCEED + while True: # break if when anything failed + if (config["verify_server"] is True and self.client_capability.get("verify_server") is False) \ + or (config["verify_client"] is True and + (self.server_capability.get("verify_client") is False or + self.client_capability.get("verify_client") is False)): + result = self.CERT_KEY_FAIL + break + + server_cert = PKIItem.Certificate(config["server_certificate"]) + server_key = PKIItem.PrivateKey(config["server_key"]) + server_ca = PKIItem.Certificate(config["server_trust_anchor"]) + client_cert = PKIItem.Certificate(config["client_certificate"]) + client_key = PKIItem.PrivateKey(config["client_key"]) + client_ca = PKIItem.Certificate(config["client_trust_anchor"]) + # always check server cert key + if self.__check_cert_key_content(server_cert, server_key) is False: + result = self.CERT_KEY_FAIL + break + # if require to verify server + if config["verify_server"] is True: + if self.__check_verify_server(client_ca, server_cert) is False: + result = self.CERT_KEY_FAIL + break + # if require to verify client + if config["verify_client"] is True: + if self.__check_verify_client(client_cert, client_key, server_ca) is False: + result = self.CERT_KEY_FAIL + break + break + return result + + CHECK_FUNC = { + TYPE_CONTEXT: check_context, + TYPE_NEGOTIATION: check_negotiation_param, + TYPE_CERT_KEY: check_cert_key, + } + CONFIG_KEY = { + TYPE_CONTEXT: CERT_KEY_CONFIG, + TYPE_NEGOTIATION: NEGOTIATION_CONFIG, + TYPE_CERT_KEY: CERT_KEY_CONFIG, + } + + def compute_result(self, typ, config_list): + succeed_list = [] + fail_list = [] + for config in config_list: + if self.CHECK_FUNC[typ](self, dict(zip(self.CONFIG_KEY[typ], config))) != self.SUCCEED: + fail_list.append(config) + else: + succeed_list.append(config) + return succeed_list, fail_list + pass + + +class GenerateTestConfig(ComputeResult): + TEST_CONFIG = ComputeResult.NEGOTIATION_CONFIG + \ + ComputeResult.CERT_KEY_CONFIG + + def __init__(self, client_capability, server_capability): + ComputeResult.__init__(self, client_capability, server_capability) + self.key_dict = PKIDict.PKIDict.KEY_DICT + self.cert_dict = PKIDict.PKIDict.CERT_DICT + pass + + def generate_negotiation_config(self): + _config = list_multiply(self.client_capability.get("version"), + self.client_capability.get("cipher_suite"), + self.client_capability.get("fragment_size"), + self.server_capability.get("version"), + self.server_capability.get("cipher_suite"), + self.server_capability.get("fragment_size")) + return self.compute_result(self.TYPE_NEGOTIATION, _config) + + def __choose_cert_key(self, verify_server, verify_client, + client_ca_opt, client_cert_key_opt, + server_ca_opt, server_cert_key_opt): + pass + + # CERT_KEY_CONFIG = ["verify_server", "verify_client", + # "client_trust_anchor", "client_certificate", "client_key", + # "server_trust_anchor", "server_certificate", "server_key"] + def generate_cert_key_config(self): + # first handle not verify certificate case + _config_list = [] + for cert in PKIDict.PKIDict.CERT_DICT: + for key in PKIDict.PKIDict.KEY_DICT: + _config_list.append([False, False, None, None, None, None, cert, key]) + cert_key_succeed, context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) + cert_key_succeed, cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, cert_key_succeed) + key_cert_pair = [[x[6], x[7]] for x in cert_key_succeed] + # for succeed config, do server cert verify + _config_list = [] + for _config in cert_key_succeed: + for cert in PKIDict.PKIDict.CERT_DICT: + _config_list.append([True, False, cert, None, None, + None, _config[6], _config[7]]) + _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) + context_fail += _context_fail + _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) + cert_key_fail += _cert_key_fail + cert_key_succeed += _cert_key_succeed + # for succeed config, do client verify + _config_list = [] + for _config in _cert_key_succeed: + for key_cert in key_cert_pair: + _config_list.append([True, True, _config[2], key_cert[0], key_cert[1], + key_cert[0], _config[6], _config[7]]) + _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) + context_fail += _context_fail + _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) + cert_key_fail += _cert_key_fail + cert_key_succeed += _cert_key_succeed + # only verify client not verify server + _config_list = [] + for _config in _cert_key_succeed: + _config_list.append([False, True, None, + _config[3], _config[4], _config[5], _config[6], _config[7]]) + _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) + context_fail += _context_fail + _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) + cert_key_fail += _cert_key_fail + cert_key_succeed += _cert_key_succeed + return cert_key_succeed, context_fail, cert_key_fail + + +class ConfigUtility(GenerateTestConfig): + # test config + _TEST_CONFIG_DICT_KEY = ("config", "result") + + def __init__(self, client_capability, server_capability): + GenerateTestConfig.__init__(self, client_capability, server_capability) + pass + + def get_all_test_config(self): + negotiation_succeed, negotiation_fail = self.generate_negotiation_config() + cert_key_succeed, context_fail, cert_key_fail = self.generate_cert_key_config() + succeed_config = list_multiply(negotiation_succeed, cert_key_succeed) + context_fail_config = list_multiply([negotiation_succeed[0]], context_fail) + negotiation_fail_config = list_multiply(negotiation_fail, [cert_key_succeed[0]]) + cert_key_fail_config = list_multiply([negotiation_succeed[0]], cert_key_fail) + return dict(zip(["succeed", "context_fail", "negotiation_fail", "cert_key_fail"], + [[dict(zip(self.TEST_CONFIG, x)) for x in succeed_config], + [dict(zip(self.TEST_CONFIG, x)) for x in context_fail_config], + [dict(zip(self.TEST_CONFIG, x)) for x in negotiation_fail_config], + [dict(zip(self.TEST_CONFIG, x)) for x in cert_key_fail_config]])) + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/Parameter.py b/components/test/TestCaseScript/SSLTest/Parameter.py new file mode 100755 index 000000000..1670c5fd2 --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/Parameter.py @@ -0,0 +1,56 @@ + + +VERSION = { + "SSLv23": 0x1F, + "SSLv23_2": 0x1C, # current target ssl implementation do not support SSLv20 and TLSv12 + "SSLv20": 0x01, + "SSLv30": 0x02, + "TLSv10": 0x04, + "TLSv11": 0x08, + "TLSv12": 0x10, +} + + +CIPHER_SUITE = { + # supported algorithm + "TLS_RSA_WITH_AES_128_CBC_SHA": "AES128-SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA": "AES256-SHA", + "TLS_RSA_WITH_RC4_128_SHA": "RC4-SHA", + "TLS_RSA_WITH_RC4_128_MD5": "RC4-MD5", + "TLS_DH_DSS_WITH_AES_128_CBC_SHA": "DH-DSS-AES128-SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": "ECDHE-RSA-AES128-GCM-SHA256", +} + + +FRAGMENT_SIZE = { + "SIZE_DEFAULT": 0, + "SIZE_512": 512, + "SIZE_1024": 1024, + "SIZE_2048": 2048, + "SIZE_4096": 4096, + "SIZE_8192": 8192, +} + + +VERIFY_OPTION = { + "NOT_VERIFY": "NOT_VERIFY", + "VERIFY": "VERIFY", +} + + +SEND_OPTION = { + "MAX_SEND_SIZE_512": 512, + "MAX_SEND_SIZE_1K": 1024, + "MAX_SEND_SIZE_2K": 2048, + "MAX_SEND_SIZE_4K": 4096, + "MAX_SEND_SIZE_8K": 8192, + "MAX_SEND_SIZE_16K": 16384, +} + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/SSLHandler.py b/components/test/TestCaseScript/SSLTest/SSLHandler.py new file mode 100644 index 000000000..7fe19b3ce --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/SSLHandler.py @@ -0,0 +1,498 @@ +import socket +import ssl +import os +import re +import time +import threading + +import Parameter +from PKI import PKIDict +from PKI import PKIItem +from NativeLog import NativeLog + + +class SerialPortCheckFail(StandardError): + pass + + +class SSLHandlerFail(StandardError): + pass + + +class PCFail(StandardError): + pass + + +class TargetFail(StandardError): + pass + + +def ssl_handler_wrapper(handler_type): + if handler_type == "PC": + exception_type = PCFail + elif handler_type == "Target": + exception_type = TargetFail + else: + exception_type = None + + def _handle_func(func): + def _handle_args(*args, **kwargs): + try: + ret = func(*args, **kwargs) + except StandardError, e: + NativeLog.add_exception_log(e) + raise exception_type(str(e)) + return ret + return _handle_args + return _handle_func + + +class SerialPort(object): + def __init__(self, tc_action, port_name): + self.tc_action = tc_action + self.port_name = port_name + + def flush(self): + self.tc_action.flush_data(self.port_name) + + def write_line(self, data): + self.tc_action.serial_write_line(self.port_name, data) + + def check(self, condition, timeout=10): + if self.tc_action.check_response(self.port_name, condition, timeout) is False: + raise SerialPortCheckFail("serial port check fail, condition is %s" % condition) + + def read_data(self): + return self.tc_action.serial_read_data(self.port_name) + pass + + +class SSLHandler(object): + # ssl operation timeout is 30 seconds + TIMEOUT = 30 + + def __init__(self, typ, config, serial_port): + self.type = typ + self.config = config + self.timeout = self.TIMEOUT + self.serial_port = serial_port + self.accept_thread = None + self.data_validation = False + + def set_timeout(self, timeout): + self.timeout = timeout + + def init_context(self): + pass + + def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): + pass + + def listen(self, local_port=0, local_ip=0): + pass + + def send(self, size, data): + pass + + def recv(self, length, timeout): + pass + + def set_data_validation(self, validation): + pass + + def close(self): + if self.accept_thread is not None: + self.accept_thread.exit() + self.accept_thread.join(5) + pass + + +class TargetSSLHandler(SSLHandler): + def __init__(self, typ, config, serial_port): + SSLHandler.__init__(self, typ, config, serial_port) + self.ssl_id = None + self.server_id = None + + @ssl_handler_wrapper("Target") + def init_context(self): + self.serial_port.flush() + self.serial_port.write_line("soc -T") + self.serial_port.check("+CLOSEALL") + + if self.type == "client": + version = Parameter.VERSION[self.config["client_version"]] + fragment = self.config["client_fragment_size"] + ca = self.config["client_trust_anchor"] + cert = self.config["client_certificate"] + key = self.config["client_key"] + verify_required = 0x01 if self.config["verify_server"] is True else 0x00 + context_type = 1 + else: + version = Parameter.VERSION[self.config["server_version"]] + fragment = self.config["server_fragment_size"] + ca = self.config["server_trust_anchor"] + cert = self.config["server_certificate"] + key = self.config["server_key"] + verify_required = 0x02 if self.config["verify_client"] is True else 0x00 + context_type = 2 + ssc_cmd = "ssl -I -t %u -r %u -v %u -o %u" % (context_type, fragment, version, verify_required) + + if ca is not None: + _index = PKIDict.PKIDict.CERT_DICT[ca] + ssc_cmd += " -a %d" % _index + if cert is not None: + _index = PKIDict.PKIDict.CERT_DICT[cert] + ssc_cmd += " -c %d" % _index + if key is not None: + _index = PKIDict.PKIDict.KEY_DICT[key] + ssc_cmd += " -k %d" % _index + # write command and check result + self.serial_port.flush() + self.serial_port.write_line(ssc_cmd) + self.serial_port.check(["+SSL:OK", "AND", "!+SSL:ERROR"]) + + @ssl_handler_wrapper("Target") + def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): + self.serial_port.flush() + self.serial_port.write_line("soc -B -t SSL -i %s -p %s" % (local_ip, local_port)) + self.serial_port.check(["OK", "AND", "!ERROR"]) + self.serial_port.flush() + self.serial_port.write_line("soc -C -s 0 -i %s -p %s" % (remote_ip, remote_port)) + self.serial_port.check(["OK", "AND", "!ERROR"], timeout=30) + self.ssl_id = 0 + pass + + def accept_succeed(self): + self.ssl_id = 1 + + class Accept(threading.Thread): + def __init__(self, serial_port, succeed_cb): + threading.Thread.__init__(self) + self.setDaemon(True) + self.serial_port = serial_port + self.succeed_cb = succeed_cb + self.exit_flag = threading.Event() + + def run(self): + while self.exit_flag.isSet() is False: + try: + self.serial_port.check("+ACCEPT:", timeout=1) + self.succeed_cb() + break + except StandardError: + pass + + def exit(self): + self.exit_flag.set() + + @ssl_handler_wrapper("Target") + def listen(self, local_port=0, local_ip=0): + self.serial_port.flush() + self.serial_port.write_line("soc -B -t SSL -i %s -p %s" % (local_ip, local_port)) + self.serial_port.check(["OK", "AND", "!ERROR"]) + self.serial_port.flush() + self.serial_port.write_line("soc -L -s 0") + self.serial_port.check(["OK", "AND", "!ERROR"]) + self.server_id = 0 + self.accept_thread = self.Accept(self.serial_port, self.accept_succeed) + self.accept_thread.start() + pass + + @ssl_handler_wrapper("Target") + def send(self, size=10, data=None): + if data is not None: + size = len(data) + self.serial_port.flush() + self.serial_port.write_line("soc -S -s %s -l %s" % (self.ssl_id, size)) + self.serial_port.check(["OK", "AND", "!ERROR"]) + pass + + @ssl_handler_wrapper("Target") + def recv(self, length, timeout=SSLHandler.TIMEOUT): + pattern = re.compile("\+RECV:\d+,(\d+)\r\n") + data_len = 0 + data = "" + time1 = time.time() + while time.time() - time1 < timeout: + data += self.serial_port.read_data() + if self.data_validation is True: + if "+DATA_ERROR" in data: + raise SSLHandlerFail("target data validation fail") + while True: + match = pattern.search(data) + if match is None: + break + else: + data_len += int(match.group(1)) + data = data[data.find(match.group())+len(match.group()):] + if data_len >= length: + result = True + break + else: + result = False + if result is False: + raise SSLHandlerFail("Target recv fail") + + def set_data_validation(self, validation): + self.data_validation = validation + self.serial_port.flush() + self.serial_port.write_line("soc -V -s %s -o %s" % (self.ssl_id, 1 if validation is True else 0)) + self.serial_port.check(["OK", "AND", "!ERROR"]) + + @ssl_handler_wrapper("Target") + def close(self): + SSLHandler.close(self) + self.serial_port.flush() + self.serial_port.write_line("ssl -D") + self.serial_port.check(["+SSL:OK", "OR", "+SSL:ERROR"]) + self.serial_port.write_line("soc -T") + self.serial_port.check("+CLOSEALL") + pass + + pass + + +def calc_hash(index): + return (index & 0xffffffff) % 83 + (index & 0xffffffff) % 167 + + +def verify_data(data, start_index): + for i, c in enumerate(data): + if ord(c) != calc_hash(start_index + i): + NativeLog.add_trace_critical("[Data Validation Error] target sent data index %u is error." + " Sent data is %x, should be %x" + % (start_index + i, ord(c), calc_hash(start_index + i))) + return False + return True + + +def make_validation_data(length, start_index): + return bytes().join([chr(calc_hash(start_index + i)) for i in range(length)]) + + +class PCSSLHandler(SSLHandler): + PROTOCOL_MAPPING = { + "SSLv23": ssl.PROTOCOL_SSLv23, + "SSLv23_2": ssl.PROTOCOL_SSLv23, + "SSLv20": ssl.PROTOCOL_SSLv2, + "SSLv30": ssl.PROTOCOL_SSLv3, + "TLSv10": ssl.PROTOCOL_TLSv1, + "TLSv11": ssl.PROTOCOL_TLSv1_1, + "TLSv12": ssl.PROTOCOL_TLSv1_2, + } + CERT_FOLDER = os.path.join(".", "PKI", PKIDict.PKIDict.CERT_FOLDER) + KEY_FOLDER = os.path.join(".", "PKI", PKIDict.PKIDict.KEY_FOLDER) + + def __init__(self, typ, config, serial_port): + SSLHandler.__init__(self, typ, config, serial_port) + self.ssl_context = None + self.ssl = None + self.server_sock = None + self.send_index = 0 + self.recv_index = 0 + + class InitContextThread(threading.Thread): + def __init__(self, handler, version, cipher_suite, ca, cert, key, verify_required, remote_cert): + threading.Thread.__init__(self) + self.setDaemon(True) + self.handler = handler + self.version = version + self.cipher_suite = cipher_suite + self.ca = ca + self.cert = cert + self.key = key + self.verify_required = verify_required + self.remote_cert = remote_cert + pass + + @staticmethod + def handle_cert(cert_file, ca_file): + cert = PKIItem.Certificate() + cert.parse_file(cert_file) + ca = PKIItem.Certificate() + ca.parse_file(ca_file) + if cert.file_encoding == "PEM" and ca.name in cert.cert_chain: + cert_chain_t = cert.cert_chain[1:cert.cert_chain.index(ca.name)] + ret = ["%s.pem" % c for c in cert_chain_t] + else: + ret = [] + return ret + + def run(self): + try: + ssl_context = ssl.SSLContext(self.version) + # cipher suite + ssl_context.set_ciphers(self.cipher_suite) + if self.ca is not None: + ssl_context.load_verify_locations(cafile=os.path.join(self.handler.CERT_FOLDER, self.ca)) + # python ssl can't verify cert chain, don't know why + # need to load cert between cert and ca for pem (pem cert contains cert chain) + if self.remote_cert is not None: + cert_chain = self.handle_cert(self.remote_cert, self.ca) + for c in cert_chain: + NativeLog.add_trace_info("load ca chain %s" % c) + ssl_context.load_verify_locations(cafile=os.path.join(self.handler.CERT_FOLDER, c)) + if self.cert is not None: + cert = os.path.join(self.handler.CERT_FOLDER, self.cert) + key = os.path.join(self.handler.KEY_FOLDER, self.key) + ssl_context.load_cert_chain(cert, keyfile=key) + if self.verify_required is True: + ssl_context.verify_mode = ssl.CERT_REQUIRED + else: + ssl_context.verify_mode = ssl.CERT_NONE + self.handler.ssl_context = ssl_context + except StandardError, e: + NativeLog.add_exception_log(e) + pass + pass + + @ssl_handler_wrapper("PC") + def init_context(self): + if self.type == "client": + version = self.PROTOCOL_MAPPING[self.config["client_version"]] + cipher_suite = Parameter.CIPHER_SUITE[self.config["client_cipher_suite"]] + ca = self.config["client_trust_anchor"] + cert = self.config["client_certificate"] + key = self.config["client_key"] + verify_required = self.config["verify_server"] + remote_cert = self.config["server_certificate"] + else: + version = self.PROTOCOL_MAPPING[self.config["server_version"]] + cipher_suite = Parameter.CIPHER_SUITE[self.config["server_cipher_suite"]] + ca = self.config["server_trust_anchor"] + cert = self.config["server_certificate"] + key = self.config["server_key"] + verify_required = self.config["verify_client"] + remote_cert = self.config["client_certificate"] + + _init_context = self.InitContextThread(self, version, cipher_suite, ca, cert, key, verify_required, remote_cert) + _init_context.start() + _init_context.join(5) + if self.ssl_context is None: + raise StandardError("Init Context Fail") + + pass + + @ssl_handler_wrapper("PC") + def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): + sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + # reuse socket in TIME_WAIT state + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock.settimeout(self.timeout) + sock.bind((local_ip, local_port)) + self.ssl = self.ssl_context.wrap_socket(sock) + self.ssl.connect((remote_ip, remote_port)) + pass + + def accept_succeed(self, ssl_new): + ssl_new.settimeout(self.timeout) + self.ssl = ssl_new + + class Accept(threading.Thread): + def __init__(self, server_sock, ssl_context, succeed_cb): + threading.Thread.__init__(self) + self.setDaemon(True) + self.server_sock = server_sock + self.ssl_context = ssl_context + self.succeed_cb = succeed_cb + self.exit_flag = threading.Event() + + def run(self): + while self.exit_flag.isSet() is False: + try: + new_socket, addr = self.server_sock.accept() + ssl_new = self.ssl_context.wrap_socket(new_socket, server_side=True) + self.succeed_cb(ssl_new) + break + except StandardError: + pass + pass + + def exit(self): + self.exit_flag.set() + + @ssl_handler_wrapper("PC") + def listen(self, local_port=0, local_ip=0): + self.server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + # reuse socket in TIME_WAIT state + self.server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + self.server_sock.settimeout(1) + self.server_sock.bind((local_ip, local_port)) + self.server_sock.listen(5) + self.accept_thread = self.Accept(self.server_sock, self.ssl_context, self.accept_succeed) + self.accept_thread.start() + pass + + @ssl_handler_wrapper("PC") + def send(self, size=10, data=None): + if data is None: + self.ssl.send(make_validation_data(size, self.send_index)) + if self.data_validation is True: + self.send_index += size + else: + self.ssl.send(data) + + @ssl_handler_wrapper("PC") + def recv(self, length, timeout=SSLHandler.TIMEOUT, data_validation=False): + time1 = time.time() + data_len = 0 + while time.time() - time1 < timeout: + data = self.ssl.read() + + if data_validation is True and len(data) > 0: + if verify_data(data, self.recv_index) is False: + raise SSLHandlerFail("PC data validation fail, index is %s" % self.recv_index) + self.recv_index += len(data) + data_len += len(data) + if data_len >= length: + result = True + break + else: + result = False + if result is False: + raise SSLHandlerFail("PC recv fail") + + def set_data_validation(self, validation): + self.data_validation = validation + + @ssl_handler_wrapper("PC") + def close(self): + SSLHandler.close(self) + if self.ssl is not None: + self.ssl.close() + self.ssl = None + if self.server_sock is not None: + self.server_sock.close() + self.server_sock = None + del self.ssl_context + + +def main(): + ssl_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + # cipher suite + ssl_context.set_ciphers("AES256-SHA") + ssl_context.load_cert_chain("D:\workspace\\auto_test_script\PKI\Certificate\\" + "L2CertRSA512sha1_L1CertRSA512sha1_RootCertRSA512sha1.pem", + keyfile="D:\workspace\\auto_test_script\PKI\Key\PrivateKey2RSA512.pem") + ssl_context.verify_mode = ssl.CERT_NONE + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + # reuse socket in TIME_WAIT state + server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + server_sock.settimeout(100) + server_sock.bind(("192.168.111.5", 443)) + server_sock.listen(5) + while True: + try: + new_socket, addr = server_sock.accept() + ssl_new = ssl_context.wrap_socket(new_socket, server_side=True) + print "server connected" + break + except StandardError: + pass + + +pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/SSLHandshake.py b/components/test/TestCaseScript/SSLTest/SSLHandshake.py new file mode 100755 index 000000000..5eb68c350 --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/SSLHandshake.py @@ -0,0 +1,240 @@ +import os +import random +import time +import re + +from TCAction import TCActionBase +from TCAction import PerformanceTCBase +from NativeLog import NativeLog, HTMLGenerator +from Utility import MakeFolder + +import ConfigUtility +import Capability +import SSLHandler + +LOG_FOLDER = os.path.join("AT_LOG", "TEMP") + +HEAP_SIZE_LIMIT = 30000 + + +class SSLHandshake(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.client_type = None + self.server_type = None + self.client_capability = dict() + self.server_capability = dict() + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + timestamp = time.strftime("%d%H%M%S", time.localtime()) + folder = MakeFolder.make_folder(os.path.join(LOG_FOLDER, "SSLHandshake_%s" % timestamp)) + self.tested_log = os.path.join(folder, "SSLHandshakeTested.log") + self.failed_log = os.path.join(folder, "SSLHandshakeFailed.log") + self.memory_track_log = os.path.join(folder, "SSLHandshakeMemTrack.log") + self.succeed_log = os.path.join(folder, "SSLHandshakeSucceed.log") + # store test result for failed config + self.failed_log2 = os.path.join(folder, "SSLHandshakeFailed2.log") + self.succeed_log2 = os.path.join(folder, "SSLHandshakeSucceed2.log") + + self.heap_size_pattern = re.compile("\+FREEHEAP:(\d+)\r\n") + + @staticmethod + def close(client, server): + try: + client.close() + except StandardError: + pass + try: + server.close() + except StandardError: + pass + + def query_heap_size(self, scenario="idle"): + self.flush_data("SSC1") + self.serial_write_line("SSC1", "ram -H") + match = self.check_regular_expression("SSC1", self.heap_size_pattern) + if match is None: + NativeLog.add_trace_critical("No response for SSC ram command") + else: + heap_size = int(match.group(1)) + self.log_memory("[heap size][%s] %s" % (scenario, heap_size)) + if heap_size < HEAP_SIZE_LIMIT and scenario == "idle": + NativeLog.add_trace_critical("[HeapSize] %s" % heap_size) + + pass + + def prepare_handshake_test(self): + # check if connected + self.flush_data("SSC1") + self.serial_write_line("SSC1", "sta -Q") + if self.check_response("SSC1", "+JAP:CONNECTED,") is False: + ap_ssid = self.get_parameter("ap_ssid") + ap_password = self.get_parameter("ap_password") + self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + self.check_response("SSC1", "+JAP:CONNECTED,") + self.query_heap_size() + + @staticmethod + def log_data_to_file(file_name, data): + with open(file_name, "ab+") as f: + f.write(data+"\r\n") + + def log_test_config(self, data): + # append to log + with self.sync_lock: + _formatted_data = HTMLGenerator.process_one_log_item(data) + self.append_to_log_file(_formatted_data) + self.log_data_to_file(self.tested_log, data) + + def log_memory(self, data): + self.log_data_to_file(self.memory_track_log, data) + + def log_fail(self, data, log_type="succeed"): + print data + if log_type == "succeed": + self.log_data_to_file(self.failed_log, data) + else: + self.log_data_to_file(self.failed_log2, data) + + def log_succeed(self, data, log_type="succeed"): + if log_type == "succeed": + self.log_data_to_file(self.succeed_log, data) + else: + self.log_data_to_file(self.succeed_log2, data) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + # rewrite the following code + if self.client_type == "PC": + client_capability = Capability.PCSSLCapability("PCClient") + client_handler = SSLHandler.PCSSLHandler + client_ip = self.get_parameter("pc_ip") + else: + client_capability = Capability.TargetSSLCapability("TargetClient", **self.client_capability) + client_handler = SSLHandler.TargetSSLHandler + client_ip = self.get_parameter("target_ip") + if self.server_type == "PC": + server_capability = Capability.PCSSLCapability("PCServer") + server_handler = SSLHandler.PCSSLHandler + server_ip = self.get_parameter("pc_ip") + else: + server_capability = Capability.TargetSSLCapability("TargetServer", **self.server_capability) + server_handler = SSLHandler.TargetSSLHandler + server_ip = self.get_parameter("target_ip") + + serial_port = SSLHandler.SerialPort(self, "SSC1") + # generate config + config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) + config_list_dict = config_utility.get_all_test_config() + + # succeed + for config in config_list_dict["succeed"]: + self.prepare_handshake_test() + self.log_test_config("[Succeed config] %s" % config) + port = random.randint(500, 50000) + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + try: + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=port) + client.connect(server_ip, port, local_ip=client_ip) + self.query_heap_size(scenario="connected") + self.log_succeed("[Succeed config] %s" % config) + except SSLHandler.TargetFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[Target][%s]\r\n[Failed][Succeed config] %s" % (e, config)) + except SSLHandler.PCFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[PC][%s]\r\n[Failed][Succeed config] %s" % (e, config)) + + self.close(client, server) + + # init context fail + for config in config_list_dict["context_fail"]: + self.prepare_handshake_test() + port = random.randint(500, 50000) + self.log_test_config("[Init context fail config] %s" % config) + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + try: + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=port) + client.connect(server_ip, port, local_ip=client_ip) + self.log_fail("[Target]\r\n[Failed][Init context fail config] %s" % config, log_type="failed") + except StandardError, e: + NativeLog.add_exception_log(e) + self.log_succeed("[init context fail] %s" % config, log_type="failed") + self.close(client, server) + pass + + # negotiation fail + for config in config_list_dict["negotiation_fail"]: + self.prepare_handshake_test() + self.log_test_config("[negotiation_fail] %s" % config) + port = random.randint(500, 50000) + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + try: + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=port) + except SSLHandler.TargetFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[Target][%s]\r\n[Failed][negotiation fail config] %s" % (e, config), log_type="failed") + self.close(client, server) + continue + except SSLHandler.PCFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[PC][%s]\r\n[Failed][negotiation fail config] %s" % (e, config), log_type="failed") + self.close(client, server) + continue + try: + client.connect(server_ip, port, local_ip=client_ip) + self.log_fail("[Target]\r\n[Failed][negotiation fail config] %s" % config, log_type="failed") + except StandardError, e: + NativeLog.add_exception_log(e) + self.log_succeed("[negotiation fail] %s" % config, log_type="failed") + self.close(client, server) + + # cert key fail + for config in config_list_dict["cert_key_fail"]: + self.prepare_handshake_test() + self.log_test_config("[cert_key_fail] %s" % config) + port = random.randint(500, 50000) + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + try: + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=port) + except SSLHandler.TargetFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[Target][%s]\r\n[Failed][cert_key fail config] %s" % (e, config), log_type="failed") + self.close(client, server) + continue + except SSLHandler.PCFail, e: + NativeLog.add_exception_log(e) + self.log_fail("[PC][%s]\r\n[Failed][cert_key fail config] %s" % (e, config), log_type="failed") + self.close(client, server) + continue + try: + client.connect(server_ip, port, local_ip=client_ip) + self.log_fail("[Target][Failed][cert_key fail config] %s" % config, log_type="failed") + except StandardError, e: + NativeLog.add_exception_log(e) + self.log_succeed("[cert_key_fail] %s" % config, log_type="failed") + self.close(client, server) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/SSLLowMem.py b/components/test/TestCaseScript/SSLTest/SSLLowMem.py new file mode 100644 index 000000000..fdc058f90 --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/SSLLowMem.py @@ -0,0 +1,140 @@ +import os +import random +import time +import re + +from TCAction import TCActionBase +from TCAction import PerformanceTCBase +from NativeLog import NativeLog, HTMLGenerator +from Utility import MakeFolder + +import ConfigUtility +import Capability +import SSLHandler + +LOG_FOLDER = os.path.join("AT_LOG", "TEMP") + +HEAP_SIZE_LIMIT = 30000 + + +class SSLLowMem(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.client_type = None + self.server_type = None + self.client_capability = dict() + self.server_capability = dict() + self.heap_usage_range = (10000, 30000) + self.test_time = 120 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + timestamp = time.strftime("%d%H%M%S", time.localtime()) + self.heap_size_pattern = re.compile("\+FREEHEAP:(\d+)\r\n") + + @staticmethod + def close(client, server): + try: + client.close() + except StandardError: + pass + try: + server.close() + except StandardError: + pass + + def query_heap_size(self, scenario="idle"): + self.flush_data("SSC1") + self.serial_write_line("SSC1", "ram -H") + match = self.check_regular_expression("SSC1", self.heap_size_pattern) + if match is None: + NativeLog.add_trace_critical("No response for SSC ram command") + else: + heap_size = int(match.group(1)) + if heap_size < HEAP_SIZE_LIMIT and scenario == "idle": + NativeLog.add_trace_critical("[HeapSize] %s" % heap_size) + + pass + + def prepare_handshake_test(self): + # check if connected + self.flush_data("SSC1") + self.serial_write_line("SSC1", "sta -Q") + if self.check_response("SSC1", "+JAP:CONNECTED,") is False: + ap_ssid = self.get_parameter("ap_ssid") + ap_password = self.get_parameter("ap_password") + self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + self.check_response("SSC1", "+JAP:CONNECTED,") + # random alloc memory + while True: + memory_size = random.randint(self.heap_usage_range[0], self.heap_usage_range[1]) + self.serial_write_line("SSC1", "soc -M -l %s" % memory_size) + if self.check_response("SSC1", "+SOC_BUFFER:OK", timeout=1) is True: + break + # query size + self.query_heap_size() + + @staticmethod + def log_data_to_file(file_name, data): + with open(file_name, "ab+") as f: + f.write(data+"\r\n") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + # rewrite the following code + if self.client_type == "PC": + client_capability = Capability.PCSSLCapability("PCClient") + client_handler = SSLHandler.PCSSLHandler + client_ip = self.get_parameter("pc_ip") + else: + client_capability = Capability.TargetSSLCapability("TargetClient", **self.client_capability) + client_handler = SSLHandler.TargetSSLHandler + client_ip = self.get_parameter("target_ip") + if self.server_type == "PC": + server_capability = Capability.PCSSLCapability("PCServer") + server_handler = SSLHandler.PCSSLHandler + server_ip = self.get_parameter("pc_ip") + else: + server_capability = Capability.TargetSSLCapability("TargetServer", **self.server_capability) + server_handler = SSLHandler.TargetSSLHandler + server_ip = self.get_parameter("target_ip") + + test_time = self.test_time * 60 # convert test time from minutes to seconds + + serial_port = SSLHandler.SerialPort(self, "SSC1") + # generate config + config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) + config_list_dict = config_utility.get_all_test_config() + + start_time = time.time() + + # succeed + for config in config_list_dict["succeed"]: + if time.time() - start_time > test_time: + break + self.prepare_handshake_test() + port = random.randint(500, 50000) + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + try: + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=port) + client.connect(server_ip, port, local_ip=client_ip) + self.query_heap_size(scenario="connected") + except SSLHandler.TargetFail, e: + NativeLog.add_exception_log(e) + except SSLHandler.PCFail, e: + NativeLog.add_exception_log(e) + self.close(client, server) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/SSLSendRecv.py b/components/test/TestCaseScript/SSLTest/SSLSendRecv.py new file mode 100644 index 000000000..13fe0b152 --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/SSLSendRecv.py @@ -0,0 +1,147 @@ +import random +import time + +from TCAction import TCActionBase +from TCAction import PerformanceTCBase +from NativeLog import NativeLog +import ConfigUtility +import Capability +import SSLHandler + + +class SSLSendRecv(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.target_role = "Client" + self.max_send_len = 2048 + self.test_time = 120 + self.data_validation = False + + self.target_capability = {"version": ["SSLv23"], + "cipher_suite": ["TLS_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_128_CBC_SHA"], + "fragment_size": [2048], + "verify_server": False, + "verify_client": False, + "key_algorithm": ["RSA2048"], + "key_encoding": ["PEM"], + "pem_encryption": [None], + "certificate_encoding": ["PEM"], + "certificate_digest": ["sha1"], + } + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + @staticmethod + def close(client, server): + try: + client.close() + except StandardError: + pass + try: + server.close() + except StandardError: + pass + + def cleanup(self): + self.serial_write_line("SSC1", "ssl -D") + self.check_response("SSC1", "SSL") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + + target_role = self.target_role + max_send_len = self.max_send_len + test_time = self.test_time * 60 + data_validation = self.data_validation + + ssl_port = random.randint(10000, 50000) + NativeLog.add_prompt_trace("SSL port is %s" % ssl_port) + + # make sure ssl context deinit + self.serial_write_line("SSC1", "ssl -D") + self.check_response("SSC1", "SSL") + + # close all sockets and enlarge send buffer + self.serial_write_line("SSC1", "soc -T") + self.check_response("SSC1", "CLOSEALL") + + self.serial_write_line("SSC1", "soc -M -l %s" % max_send_len) + self.check_response("SSC1", "+SOC_BUFFER:OK") + + # rewrite the following code + if target_role == "Server": + client_capability = Capability.PCSSLCapability("PCClient") + client_handler = SSLHandler.PCSSLHandler + client_ip = self.get_parameter("pc_ip") + server_capability = Capability.TargetSSLCapability("TargetServer", **self.target_capability) + server_handler = SSLHandler.TargetSSLHandler + server_ip = self.get_parameter("target_ip") + elif target_role == "Client": + client_capability = Capability.TargetSSLCapability("TargetClient", **self.target_capability) + client_handler = SSLHandler.TargetSSLHandler + client_ip = self.get_parameter("target_ip") + server_capability = Capability.PCSSLCapability("PCServer") + server_handler = SSLHandler.PCSSLHandler + server_ip = self.get_parameter("pc_ip") + else: + raise StandardError("Unsupported target role %s" % target_role) + + serial_port = SSLHandler.SerialPort(self, "SSC1") + + # generate one succeed config + config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) + config_list_dict = config_utility.get_all_test_config() + + for config in config_list_dict["succeed"]: + try: + # create connection + NativeLog.add_prompt_trace(str(config)) # do print config + client = client_handler("client", config, serial_port) + server = server_handler("server", config, serial_port) + client.init_context() + server.init_context() + server.listen(local_ip=server_ip, local_port=ssl_port) + client.connect(server_ip, ssl_port, local_ip=client_ip) + except StandardError, e: + NativeLog.add_exception_log(e) + return + + # set data validation + client.set_data_validation(data_validation) + server.set_data_validation(data_validation) + + # do send recv + time_start = time.time() + while time.time() - time_start < test_time: + send_len = random.randint(1, max_send_len) + try: + client.send(size=send_len) + client.send(size=send_len) + server.recv(send_len*2) + except StandardError, e: + NativeLog.add_exception_log(e) + NativeLog.add_prompt_trace("client send / server recv fail") + break + try: + # do send twice, try to create a tcp segment with 2 records + server.send(size=send_len) + server.send(size=send_len) + client.recv(send_len*2) + except StandardError, e: + NativeLog.add_exception_log(e) + NativeLog.add_prompt_trace("server send / client recv fail") + break + else: + self.set_result("Succeed") + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SSLTest/__init__.py b/components/test/TestCaseScript/SSLTest/__init__.py new file mode 100755 index 000000000..98fe3be4a --- /dev/null +++ b/components/test/TestCaseScript/SSLTest/__init__.py @@ -0,0 +1 @@ +__all__ = ["Capability", "ConfigUtility", "Parameter", "SSLHandler", "SSLHandshake"] diff --git a/components/test/TestCaseScript/SleepMode/AutoSleep.py b/components/test/TestCaseScript/SleepMode/AutoSleep.py new file mode 100755 index 000000000..9db70227c --- /dev/null +++ b/components/test/TestCaseScript/SleepMode/AutoSleep.py @@ -0,0 +1,561 @@ +import random +import os +import time +import string +import re +import threading + +from TCAction import TCActionBase, PerformanceTCBase +from NativeLog import NativeLog +from Utility import MakeFolder +from Utility import MultimeterUtil +from Utility import ShellCmd + +LOG_PATH = os.path.join("AT_LOG", "SLEEP") + +SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] +SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) + +SAMPLE_RATE_SLEEP_MODE_CHANGE = 0.002 +SAMPLE_NUM_SLEEP_MODE_CHANGE = 256 + +SAMPLE_RATE = 0.002 +SAMPLE_NUM = 512 +MAX_VALUE = 1 +Y_AXIS_LABEL = "Current (mA)" +GPIO_EDGE_DELAY = 120 # 20 ms + +NONE_SLEEP_MIN_CUR = 30 +LIGHT_SLEEP_MIN_CUR = 1.5 +MODEM_SLEEP_MIN_CUR = 20 + +GPIO_WAKE_UP = 15 +GPIO_CHIP_RESET = 14 + +SLEEP_WAKEUP_DELAY = 0.01 + + +class AutoSleep(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.test_mode = "mode_change" + self.test_count = 100 + self.sleep_mode = SLEEP_MODE_LIST + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, + "AUTO_SLEEP_%s_%s" % (self.test_mode, + time.strftime("%d%H%M%S", + time.localtime())))) + self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) + + @staticmethod + def find_min_items(item_list, count): + assert count < len(item_list) + min_items = [] + for i in range(count): + min_val = min(item_list) + min_items.append(min_val) + item_list.remove(min_val) + return min_items + + def sleep_mode_change(self, sleep_mode): + result = True + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] %s start" % sleep_mode) + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + # set sleep mode + self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) + self.check_response("SSC1", "+SLEEP_MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] mode set") + time.sleep(6) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE_SLEEP_MODE_CHANGE, + sample_num=SAMPLE_NUM_SLEEP_MODE_CHANGE, + max_value=MAX_VALUE) + # do check measure + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + + NativeLog.add_prompt_trace("[AutoSleep][ModeChange] measure done, average min current %f" % average_val) + + if sleep_mode == "none_sleep": + if average_val < NONE_SLEEP_MIN_CUR: + result = False + elif sleep_mode == "light_sleep": + if average_val > LIGHT_SLEEP_MIN_CUR: + result = False + elif sleep_mode == "modem_sleep": + if average_val > MODEM_SLEEP_MIN_CUR or average_val < LIGHT_SLEEP_MIN_CUR: + result = False + if result is False: + NativeLog.add_trace_critical("[AutoSleep][ModeChange] %s failed" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, "%s_fail" % sleep_mode, Y_AXIS_LABEL) + + time.sleep(5) + return result + + def sleep_current_measure(self, sleep_mode): + result = True + + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] %s start" % sleep_mode) + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + # set sleep mode + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) + self.check_response("SSC1", "+SLEEP_MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] set mode done") + time.sleep(10) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, sleep_mode, Y_AXIS_LABEL) + NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] measure done") + return result + + def light_sleep_wakeup(self): + result = True + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] start") + + time.sleep(1) + self.serial_write_line("SSC1", "") + time.sleep(1) + # check if respond to uart + self.flush_data("SSC1") + for i in range(60): + self.serial_write("SSC1", "a") + time.sleep(0.043) + time.sleep(0.1) + respond_data = self.serial_read_data("SSC1") + if len(respond_data) >= 60: + NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " + "Failed when recving data during sleep, %d" % len(respond_data)) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on sleep mode done") + + self.serial_write_line("SSC1", "") + time.sleep(1) + + # change GPIO to make target wakeup + self.serial_write_line("SSC2", "gpio -L -p %d -t 0" % GPIO_WAKE_UP) + self.check_response("SSC2", "+GPIO_SET:OK") + + self.serial_write_line("SSC1", "") + time.sleep(1) + self.flush_data("SSC1") + for i in range(60): + self.serial_write("SSC1", "a") + time.sleep(0.043) + time.sleep(0.1) + respond_data = self.serial_read_data("SSC1") + if len(respond_data) < 60: + NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " + "Failed when recving data during wakeup, %d" % len(respond_data)) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on wakeup mode done") + self.serial_write_line("SSC1", "") + # restore GPIO level + self.serial_write_line("SSC2", "gpio -L -p %d -t 1" % GPIO_WAKE_UP) + self.check_response("SSC2", "+GPIO_SET:OK") + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) + self.check_response("SSC2", "+GPIO_SET:OK") + time.sleep(2) + return result + + def sleep_exit_enter(self, sleep_mode, ssid, password): + result = True + if sleep_mode == "modem_sleep": + max_current_for_sleep = 20 + elif sleep_mode == "light_sleep": + max_current_for_sleep = 5 + else: + raise StandardError("Not supported mode %s" % sleep_mode) + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] %s start" % sleep_mode) + + ap_ssid = self.get_parameter("ap_ssid") + ap_password = self.get_parameter("ap_password") + + # step A: no STA connect to SoftAP, enter modem sleep mode + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 1") + self.check_response("SSC1", "+MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + self.check_response("SSC2", "+GPIO_SET:OK") + self.check_response("SSC1", "+JAP:CONNECTED") + self.check_response("SSC1", "pm open") + + self.serial_write_line("SSC2", "sta -D") + self.check_response("SSC2", "+QAP") + + time.sleep(5) + + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val > max_current_for_sleep: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] " + "did not enter %s sleep, %d" % (sleep_mode, average_val)) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_A" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step A done") + # step B: STA connect to SoftAP, exit modem sleep mode + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 3") + self.check_response("SSC1", "+MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + time.sleep(1) + self.serial_write_line("SSC2", "sta -C -s %s -p %s" % (ssid, password)) + self.check_response("SSC2", "+JAP:CONNECTED") + # self.check_response("SSC1", "pm close") + time.sleep(10) + + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val < 30: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_B" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step B done") + # step C: target set to STA mode, enter modem sleep + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 1") + self.check_response("SSC1", "+MODE:OK") + + self.check_response("SSC2", "+GPIO_SET:OK") + # self.check_response("SSC1", "pm open") + time.sleep(15) + + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val > max_current_for_sleep: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not enter %s sleep" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_C" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step C done") + # step D: target disconnect, exit modem sleep + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sta -D") + self.check_response("SSC1", "+QAP") + self.check_response("SSC2", "+GPIO_SET:OK") + # self.check_response("SSC1", "pm close") + time.sleep(5) + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val < 30: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_D" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step D done") + # step E: target connect to AP, enter modem sleep + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + self.check_response("SSC2", "+GPIO_SET:OK") + self.check_response("SSC1", "+JAP:CONNECTED") + self.check_response("SSC1", "pm open") + time.sleep(3) + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val > max_current_for_sleep: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not enter %s sleep" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_E" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step E done") + # step F: target set to AP mode, exit modem sleep + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 2") + self.check_response("SSC1", "+MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + # self.check_response("SSC1", "pm close") + time.sleep(5) + + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val < 30: + NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_sleep_exit_enter_fail_F" % sleep_mode, Y_AXIS_LABEL) + result = False + + NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step F done") + return result + + def ping_test(self, sleep_mode): + result = True + NativeLog.add_prompt_trace("[AutoSleep][PingTest] %s start" % sleep_mode) + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + if sleep_mode == "modem_sleep": + max_current_for_sleep = MODEM_SLEEP_MIN_CUR + elif sleep_mode == "light_sleep": + max_current_for_sleep = LIGHT_SLEEP_MIN_CUR + else: + raise StandardError("Not supported mode %s" % sleep_mode) + + self.serial_write_line("SSC1", "op -S -o 1") + self.check_response("SSC1", "+MODE:OK") + + # set sleep mode + self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) + self.check_response("SSC1", "+SLEEP_MODE:OK") + NativeLog.add_prompt_trace("[AutoSleep][PingTest] set mode done") + + # connect to AP + ap_ssid = self.get_parameter("ap_ssid") + ap_password = self.get_parameter("ap_password") + target_ip = self.get_parameter("target_ip") + + self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + self.check_response("SSC1", "+JAP:CONNECTED") + + time.sleep(10) + # measure current, should be in sleep mode + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + + if average_val > max_current_for_sleep: + NativeLog.add_trace_critical("[AutoSleep][PingTest] step A did not enter %s sleep, %f" + % (sleep_mode, average_val)) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_ping_test_fail_not_enter_sleep" % sleep_mode, Y_AXIS_LABEL) + result = False + else: + NativeLog.add_prompt_trace("[AutoSleep][PingTest] step A enter %s sleep, %f" + % (sleep_mode, average_val)) + + class PingThread(threading.Thread): + def __init__(self, ping_ip): + threading.Thread.__init__(self) + self.setDaemon(True) + self.target_ip = ping_ip + self.exit_event = threading.Event() + + def run(self): + while self.exit_event.isSet() is False: + ShellCmd.shell_check_output("ping %s -w 500" % self.target_ip) + time.sleep(0.1) + pass + + def exit(self): + self.exit_event.set() + + NativeLog.add_prompt_trace("[AutoSleep][PingTest] ping start") + ping_thread = PingThread(target_ip) + ping_thread.start() + time.sleep(5) + + # measure current, should not be in sleep mode + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val < 30: + NativeLog.add_trace_critical("[AutoSleep][PingTest] step B did not exit %s sleep, %f" + % (sleep_mode, average_val)) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_ping_test_fail_not_exit_sleep" % sleep_mode, Y_AXIS_LABEL) + result = False + else: + NativeLog.add_prompt_trace("[AutoSleep][PingTest] step B exit %s sleep, %f" + % (sleep_mode, average_val)) + + ping_thread.exit() + ping_thread.join(20) + NativeLog.add_prompt_trace("[AutoSleep][PingTest] ping stop") + time.sleep(10) + + # measure current, should not be in sleep mode + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val > max_current_for_sleep: + NativeLog.add_trace_critical("[AutoSleep][PingTest] step C did not enter %s" % sleep_mode) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "%s_ping_test_fail_not_enter_sleep" % sleep_mode, Y_AXIS_LABEL) + result = False + else: + NativeLog.add_prompt_trace("[AutoSleep][PingTest] step C enter %s sleep" % sleep_mode) + + return result + + def cleanup(self): + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["modem_sleep"]) + self.check_response("SSC1", "OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + + try: + test_mode = self.test_mode + test_count = self.test_count + sleep_mode = self.sleep_mode + except StandardError, e: + return + + # make sure enter modem sleep mode before start test + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["modem_sleep"]) + self.check_response("SSC1", "+SLEEP_MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + self.check_response("SSC1", "pm open", timeout=10) + + self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_WAKE_UP) + self.check_response("SSC1", "+GPIO_GET") + self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_CHIP_RESET) + self.check_response("SSC1", "+GPIO_GET") + + # start test + if "mode_change" in test_mode: + for i in range(test_count): + result = self.sleep_mode_change(random.choice(SLEEP_MODE_LIST)) + + elif "measure_current" in test_mode: + for i in range(test_count): + for mode in sleep_mode: + result = self.sleep_current_measure(mode) + pass + elif "gpio_wakeup" in test_mode: + # change GPIO to make sure target exit sleep mode, so it can process SSC commands + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + # set sleep mode + self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["light_sleep"]) + self.check_response("SSC1", "+SLEEP_MODE:OK") + + self.check_response("SSC2", "+GPIO_SET:OK") + for i in range(test_count): + result = self.light_sleep_wakeup() + pass + elif "sleep_exit_enter" in test_mode: + ssid = "".join([random.choice(string.lowercase) for i in range(10)]) + password = "".join([random.choice(string.lowercase) for i in range(10)]) + self.serial_write_line("SSC2", "sta -D") + self.check_response("SSC2", "+QAP") + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 3") + self.check_response("SSC1", "+MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3" % (ssid, password)) + self.check_response("SSC1", "+SAP:OK") + self.serial_write_line("SSC2", "op -S -o 1") + self.check_response("SSC2", "+MODE:OK") + + for mode in sleep_mode: + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE[mode]) + self.check_response("SSC1", "+SLEEP_MODE:OK") + self.check_response("SSC2", "+GPIO_SET:OK") + + for i in range(test_count): + result = self.sleep_exit_enter(mode, ssid, password) + elif "ping" in test_mode: + for mode in sleep_mode: + for i in range(test_count): + result = self.ping_test(mode) + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SleepMode/DeepSleep.py b/components/test/TestCaseScript/SleepMode/DeepSleep.py new file mode 100755 index 000000000..252ebb075 --- /dev/null +++ b/components/test/TestCaseScript/SleepMode/DeepSleep.py @@ -0,0 +1,259 @@ +import random +import os +import time + +from TCAction import TCActionBase, PerformanceTCBase +from Utility import MakeFolder +from Utility import MultimeterUtil +from NativeLog import NativeLog + +LOG_PATH = os.path.join("AT_LOG", "SLEEP") + +DEEP_SLEEP_OPTION_LIST = ["up_to_bin", "normal", "no_rf_calibrate", "rf_off"] +DEEP_SLEEP_OPTION = { + "up_to_bin": 0, + "normal": 1, + "no_rf_calibrate": 2, + "rf_off": 4, +} + +SAMPLE_RATE = 0.001 +SAMPLE_NUM = 512 +MAX_VALUE = 0.1 +Y_AXIS_LABEL = "Current (mA)" + + +MEASURE_FREQ = 3600 + +GPIO_WAKE_UP = 15 +GPIO_CHIP_RESET = 14 +GPIO_EDGE_DELAY = 100 # 20 ms + + +class DeepSleep(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.test_mode = "mode_change" + self.test_count = 100 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, + "DEEP_SLEEP_%s_%s" % (self.test_mode, + time.strftime("%d%H%M%S", + time.localtime())))) + self.sleep_time_log = os.path.join(self.log_folder, "deep_sleep_wakeup_time.log") + self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) + + def deep_sleep_stable(self): + result = True + RandomTime = random.randint(1, 100) + self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + if self.check_response("SSC1", "ready!!!") is False: + result = False + NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") + else: + NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) + time.sleep(1) + + RandomTime = random.randint(100000, 1000000) + self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + if self.check_response("SSC1", "ready!!!") is False: + result = False + NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") + else: + NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) + time.sleep(1) + return result + + def deep_sleep_current_measure(self): + result = True + self.serial_write_line("SSC1", "") + self.serial_write_line("SSC1", "dsleep -S -t 10000000") + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + time.sleep(3) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + average_current = float(0) + for current in current_line: + average_current += current + average_current /= SAMPLE_NUM + + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "deep_sleep_current", Y_AXIS_LABEL) + + if average_current > 1: + NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] average current %f > 1mA" % average_current) + else: + NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] dsleep current ok, %f" % average_current) + + if self.check_response("SSC1", "ready!!!") is False: + NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] CurrentMeasure wait ready err %f" + % average_current) + result = False + + NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] wait ready ok") + + return result + + ########################################## + # gpio wake up + ########################################## + def deep_sleep_wakeup(self): + result = True + + self.serial_write_line("SSC1", "dsleep -S -t 0") + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + + time.sleep(2) + + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + average_current = float(0) + for current in current_line: + average_current += current + average_current /= SAMPLE_NUM + + if average_current > 1: + NativeLog.add_trace_critical("[DeepSleep][Wakeup] average current %f > 1mA" % average_current) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "deep_sleep_current", Y_AXIS_LABEL) + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) + self.check_response("SSC2", "+GPIO_SET:OK") + if self.check_response("SSC1", "ready!!!") is False: + NativeLog.add_trace_critical("[DeepSleep][Wakeup] target did not wakeup") + result = False + else: + NativeLog.add_trace_critical("[DeepSleep][Wakeup] target wakeup") + + time.sleep(1) + return result + + ######################################### + #test one hour, Verify RTC Clock timer + ######################################### + def deep_sleep_timeout(self): + result = True + Timeout = 3600 + + start_sleep_time = time.time() + self.serial_write_line("SSC1", "") + self.serial_write_line("SSC1", "dsleep -S -t %d" % (Timeout*1000000)) + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + self.check_response("SSC1", "ready!!!", timeout = Timeout*2) + time_escaped = time.time() - start_sleep_time + NativeLog.add_trace_critical("[DeepSleep][timeout] desired sleep timeout is %s, actual sleep timeout is %s" % (Timeout, time_escaped)) + with open(self.sleep_time_log, "ab+") as f: + f.write("[DeepSleep] desired sleep timeout is %s, actual sleep timeout is %s" % (Timeout, time_escaped)) + return result + + ############################################ + # Capture current map, verify the process of power on + # notice: option = "up_to_bin" up to byte108 in init.bin, + ############################################ + def wake_option(self): + result = True + for option in DEEP_SLEEP_OPTION_LIST: + for i in range(8): + self.serial_write_line("SSC1", "dsleep -O -m %s" % DEEP_SLEEP_OPTION[option]) + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + self.serial_write_line("SSC1", "dsleep -S -t 1200000") + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + + # measure current + current_line = self.multimeter.measure_current(sample_rate=0.002, + sample_num=SAMPLE_NUM, + max_value=1) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "deep_sleep_wakeup_option_%s_%d" + % (option, DEEP_SLEEP_OPTION[option]), Y_AXIS_LABEL) + + NativeLog.add_trace_critical("[DeepSleep][wake_option] target wakeup option:%d" + % DEEP_SLEEP_OPTION[option]) + time.sleep(3) + + return result + + def deep_sleep_wakeup_flash_gpio_status(self): + result = True + RandomTime = random.randint(2000000, 2000000) + self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) + if self.check_response("SSC1", "+DSLEEP:OK") is False: + result = False + if self.check_response("SSC1", "ready!!!") is False: + result = False + NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") + else: + NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) + + self.serial_write_line("SSC1", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + self.check_response("SSC1", "+GPIO_SET:OK") + + time.sleep(1) + return result + + def cleanup(self): + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) + self.check_response("SSC2", "+GPIO_SET:OK") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.serial_write_line("SSC2", "sta -D") + self.check_response("SSC2", "+QAP") + self.serial_write_line("SSC1", "sta -D") + self.check_response("SSC1", "+QAP") + try: + test_mode = self.test_mode + test_count = self.test_count + except StandardError, e: + return + + # self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) + # self.check_response("SSC2", "+GPIO_SET:OK") + # time.sleep(1) + + if "stable" in test_mode: + for i in range(test_count): + # result = self.deep_sleep_wakeup_flash_gpio_status() + result = self.deep_sleep_stable() + elif "measure_current" in test_mode: + for i in range(test_count): + result = self.deep_sleep_current_measure() + elif "timeout" in test_mode: + for i in range(test_count): + result = self.deep_sleep_timeout() + elif "wakeup" in test_mode: + for i in range(test_count): + result = self.deep_sleep_wakeup() + elif "wake_option" in test_mode: + for i in range(test_count): + result = self.wake_option() + + self.set_result("Succeed") + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SleepMode/ForceSleep.py b/components/test/TestCaseScript/SleepMode/ForceSleep.py new file mode 100755 index 000000000..4938a97c2 --- /dev/null +++ b/components/test/TestCaseScript/SleepMode/ForceSleep.py @@ -0,0 +1,254 @@ +import random +import os +import time + +from TCAction import TCActionBase, PerformanceTCBase +from Utility import MakeFolder +from Utility import MultimeterUtil +from NativeLog import NativeLog + +LOG_PATH = os.path.join("AT_LOG", "SLEEP") + +SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] +SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) + +SAMPLE_RATE = 0.002 +SAMPLE_NUM = 512 +MAX_VALUE = 1 +Y_AXIS_LABEL = "Current (mA)" + +MEASURE_FREQ_HOUR = 3600 + +GPIO_WAKE_UP = 15 +GPIO_EDGE_DELAY = 120 # 20 ms +GPIO_CHIP_RESET = 14 +GPIO_CHIP_RESET_DELAY = 100 + +NONE_SLEEP_MIN_CUR = 30 +LIGHT_SLEEP_MIN_CUR = 1.5 +MODEM_SLEEP_MIN_CUR = 20 + +LIGHT_SLEEP_WAKEUP_DELAY = 0.01 + + +class ForceSleep(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.test_mode = "mode_change" + self.test_count = 100 + self.sleep_mode = SLEEP_MODE_LIST + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, + "FORCE_SLEEP_%s_%s" % (self.test_mode, + time.strftime("%d%H%M%S", + time.localtime())))) + self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) + + @staticmethod + def find_min_items(item_list, count): + assert count < len(item_list) + min_items = [] + for i in range(count): + min_val = min(item_list) + min_items.append(min_val) + item_list.remove(min_val) + return min_items + + def sleep_time_boundary_test(self): + result = True + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 0") + self.check_response("SSC2", "+GPIO_SET:OK") + if self.check_response("SSC1", "+MODE:OK") is False: + result = False + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "fsleep -S -t 1") + self.check_response("SSC2", "+GPIO_SET:OK") + if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + result = False + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "fsleep -D -d 0") + self.check_response("SSC2", "+GPIO_SET:OK") + # if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + # result = False + time.sleep(1) + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + min_items = self.find_min_items(current_line, 10) + average_val = float(0) + for val in min_items: + average_val += val + average_val /= 10 + if average_val > LIGHT_SLEEP_MIN_CUR: + NativeLog.add_trace_critical("[ForceSleep][Boundary] did not enter light sleep %d" % average_val) + result = False + return result + else: + NativeLog.add_trace_critical("[ForceSleep][Boundary] enter light sleep") + + for i in range(3): + time.sleep(MEASURE_FREQ_HOUR) + for j in range(3): + time.sleep(10) + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "light_sleep_boundary_%s_%s" % (i, j), Y_AXIS_LABEL) + pass + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + self.check_response("SSC2", "+GPIO_SET:OK") + time.sleep(1) + self.serial_write_line("SSC1", "reboot") + self.check_response("SSC1", "ready!!!") + self.serial_write_line("SSC1", "fsleep -S -t 1") + if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + result = False + self.serial_write_line("SSC1", "") + self.serial_write_line("SSC1", "fsleep -B -t 1") + if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + result = False + time.sleep(MEASURE_FREQ_HOUR) + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET,GPIO_CHIP_RESET_DELAY)) + return result + + def force_sleep_current_measure(self, sleep_mode): + result = True + # choose sleep mode + sleep_mode_enum = SLEEP_MODE[sleep_mode] + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 0") + if self.check_response("SSC1", "+MODE:OK") is False: + result = False + self.check_response("SSC2", "+GPIO_SET:OK") + + # set sleep mode + self.serial_write_line("SSC1", "fsleep -S -t %s" % sleep_mode_enum) + if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + result = False + self.serial_write_line("SSC1", "fsleep -D -d 0") + # if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: + # result = False + + time.sleep(3) + + for i in range(10): + time.sleep(10) + # measure current + current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, + sample_num=SAMPLE_NUM, + max_value=MAX_VALUE) + self.multimeter.draw_graph(current_line, SAMPLE_RATE, + "force_%s_sleep_current_%s" % (sleep_mode, i), Y_AXIS_LABEL) + NativeLog.add_trace_critical("[ForceSleep][current_measure] force_%s_%d"% (sleep_mode,i)) + + # self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP,GPIO_EDGE_DELAY)) + # self.check_response("SSC2", "+GPIO_SET:OK") + # self.serial_write_line("SSC1", "reboot") + # self.check_response("SSC1", "ready!!!") + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_CHIP_RESET_DELAY)) + self.check_response("SSC2", "+GPIO_SET:OK") + if self.check_response("SSC1", "ready!!!") is False: + result = False + time.sleep(1) + return result + + def force_sleep_illegal_enter(self): + result = True + # choose sleep mode + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "op -S -o 2") + if self.check_response("SSC1", "+MODE:OK") is False: + result = False + self.check_response("SSC2", "+GPIO_SET:OK") + + # set sleep mode + self.serial_write_line("SSC1", "fsleep -D -d 0") + if self.check_response("SSC1", "ready!!!", timeout=10) is False: + result = False + time.sleep(5) + return result + + def force_sleep_stable_test(self): + result = True + # choose sleep mode + + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "fsleep -L") + if self.check_response("SSC1", "+MODE:OK") is False: + result = False + self.check_response("SSC2", "+GPIO_SET:OK") + + time.sleep(3600) + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_CHIP_RESET_DELAY)) + time.sleep(5) + return result + + def cleanup(self): + self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) + time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) + self.serial_write_line("SSC1", "reboot") + self.check_response("SSC1", "ready!!!") + self.check_response("SSC2", "+GPIO_SET:OK") + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.serial_write_line("SSC2", "sta -D") + self.check_response("SSC2", "+QAP") + self.serial_write_line("SSC1", "sta -D") + self.check_response("SSC1", "+QAP") + try: + test_mode = self.test_mode + test_count = self.test_count + sleep_mode = self.sleep_mode + except StandardError, e: + return + + # set gpio to input on sleep target + self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_WAKE_UP) + self.check_response("SSC1", "+GPIO_GET") + self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_CHIP_RESET) + self.check_response("SSC1", "+GPIO_GET") + + if test_mode == "boundary_test": + for i in range(test_count): + result = self.sleep_time_boundary_test() + pass + elif test_mode == "measure_current": + for j in range(test_count): + for mode in sleep_mode: + result = self.force_sleep_current_measure(mode) + pass + elif test_mode == "illegal_enter": + for i in range(test_count): + result = self.force_sleep_illegal_enter() + pass + elif test_mode == "stable_test": + for i in range(test_count): + result = self.force_sleep_stable_test() + pass + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/SleepMode/__init__.py b/components/test/TestCaseScript/SleepMode/__init__.py new file mode 100755 index 000000000..fcd54657f --- /dev/null +++ b/components/test/TestCaseScript/SleepMode/__init__.py @@ -0,0 +1 @@ +__all__ = ["AutoSleep", "DeepSleep", "ForceSleep"] diff --git a/components/test/TestCaseScript/StableTest/StableCase1.py b/components/test/TestCaseScript/StableTest/StableCase1.py new file mode 100755 index 000000000..2554c1499 --- /dev/null +++ b/components/test/TestCaseScript/StableTest/StableCase1.py @@ -0,0 +1,160 @@ +import time +import random +import threading + +from TCAction import TCActionBase +from NativeLog import NativeLog + + +class StableCase1(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.exit_event = threading.Event() + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def check_wifi_status(self, data): + if data.find("+JAP:DISCONNECTED") != -1: + self.exit_event.set() + NativeLog.add_trace_critical("[Wifi] Disconnected") + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + # target role + target_role = self.target_role + # enable tcp send/recv + tcp_enable = self.tcp_enable + # enable udp send/recv + udp_enable = self.udp_enable + # enable ping + ping_enable = self.ping_enable + # delay range + delay_range = self.delay_range + # test time in hours + test_time = self.test_time * 3600 + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + if target_role == "AP": + pc_ip = "" + target_ip = "" + elif target_role == "STA": + pc_ip = "" + target_ip = "" + else: + raise StandardError("target role only support AP or STA") + + # step 1, create UDP socket and TCP server + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t UDP -p "] + fail_string = "Fail, Fail to create UDP socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t TCP -p "] + fail_string = "Fail, Fail to create tcp server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -L -s "] + fail_string = "Fail, Fail to listen" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 2, PC connect to 8266 tcp server, PC create UDP socket + checker_stings = ["R SOC_COM C OK"] + test_action_string = ["SOC SOC1 BIND %s" % pc_ip] + fail_string = "Fail, Fail to create udp socket on PC" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["P SSC1 A :ACCEPT:(\d+),\d+", "P SOC_COM C OK"] + test_action_string = ["SOC SOC2 CONNECT %s 0 %s" % (target_ip, pc_ip)] + fail_string = "Fail, Fail to create tcp socket on PC" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + total_test_count = ping_fail_count = tcp_fail_count = udp_fail_count = 0 + + # step 3, start do tcp/udp/ping + while time.time() - start_time < test_time and self.exit_event.isSet() is False: + total_test_count += 1 + if ping_enable is True: + # do ping + checker_stings = ["P PC_COM RE \+PING:\d+ms"] + test_action_string = ["PING %s -n 1 -w 1000" % target_ip] + fail_string = "Fail, Fail to ping target" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + ping_fail_count += 1 + NativeLog.add_prompt_trace("[ping fail] fail/total = %s/%s" + % (ping_fail_count, total_test_count)) + pass + + data_len = random.randint(1, 1460) + + if tcp_enable is True: + # do tcp send/recv + checker_stings = ["P SSC1 SL +%s" % data_len, "P SOC2 RL %s" % data_len] + test_action_string = ["SSC SSC1 soc -S -s -l %s" % data_len, + "SOC SOC2 SEND %s" % data_len] + fail_string = "Fail, Fail to send/recv tcp" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + tcp_fail_count += 1 + NativeLog.add_prompt_trace("[tcp fail] fail/total = %s/%s" + % (tcp_fail_count, total_test_count)) + # tcp fail, break + self.exit_event.set() + pass + + if udp_enable is True: + # do udp send/recv + checker_stings = ["P SSC1 SL +%s" % data_len, "P SOC1 RL %s" % data_len] + test_action_string = ["SSC SSC1 soc -S -s " + "-i %s -p -l %s" % (pc_ip, data_len), + "SOC SOC1 SENDTO %s %s" % (data_len, target_ip)] + fail_string = "Fail, Fail to sendto/recvfrom udp" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=20) is False: + udp_fail_count += 1 + NativeLog.add_prompt_trace("[udp fail] fail/total = %s/%s" + % (udp_fail_count, total_test_count)) + pass + + # sleep + time.sleep(random.randint(delay_range[0], delay_range[1])) + pass + + # finally, execute done + if self.exit_event.isSet() is False: + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + self.result_cntx.append_data(port_name, data) + if port_name != "SOC1" and port_name != "SOC2": + # socket received data do not need to be logged + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + if port_name == "SSC1": + self.check_wifi_status(data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/StableTest/__init__.py b/components/test/TestCaseScript/StableTest/__init__.py new file mode 100755 index 000000000..be905f816 --- /dev/null +++ b/components/test/TestCaseScript/StableTest/__init__.py @@ -0,0 +1 @@ +__all__ = ["StableCase1"] diff --git a/components/test/TestCaseScript/TCPIPStress/ARPStress.py b/components/test/TestCaseScript/TCPIPStress/ARPStress.py new file mode 100755 index 000000000..38dcb8fd8 --- /dev/null +++ b/components/test/TestCaseScript/TCPIPStress/ARPStress.py @@ -0,0 +1,121 @@ +import time + +from NativeLog import NativeLog +from TCAction import TCActionBase +from comm.NIC import Adapter + +WARNING_COUNT = 5 + + +class ARPStress(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.adapter = None + self.target_mode = "STA" + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + self.adapter.close() + del self.adapter + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + test_time = self.test_time * 60 + # test frequency min should be 0.1s, otherwise reply could be missed + test_freq = self.test_freq if self.test_freq > 0.1 else 0.1 + # test softAP or sta + target_mode = self.target_mode + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for ARPStress script, error is %s" % e) + raise StandardError("Error configuration") + + # get parameters + if target_mode == "STA": + target_ip = self.get_parameter("target_ip") + target_mac = self.get_parameter("target_mac") + pc_mac = self.get_parameter("pc_nic_mac") + pc_nic_name = self.get_parameter("pc_nic") + elif target_mode == "SoftAP": + target_ip = self.get_parameter("target_ap_ip") + target_mac = self.get_parameter("target_ap_mac") + pc_mac = self.get_parameter("pc_wifi_nic_mac") + pc_nic_name = self.get_parameter("pc_wifi_nic") + else: + raise StandardError("Unsupported target mode: %s" % target_mode) + + time_start = time.time() + + # open device + self.adapter = Adapter.Adapter(pc_nic_name, "capture+send") + ret = self.adapter.set_filter("arp and ether src %s and ether dst %s" % (target_mac, pc_mac)) + if ret != "LIBPCAP_SUCCEED": + NativeLog.add_trace_critical("ARP Stress test error: %s" % ret) + return + + ret = self.adapter.start_capture() + if ret != "LIBPCAP_SUCCEED": + NativeLog.add_trace_critical("ARP Stress test error: %s" % ret) + return + + arp_pdu = self.adapter.create_pdu("ARP", self.adapter.create_payload(), + arp_op_code="request", arp_target_proto_addr=target_ip, + ethernet_dst_addr="ff:ff:ff:ff:ff:ff") + + data = arp_pdu.to_bytes() + + total_test_count = total_fail_count = successive_fail_count = most_successive_fail_count = 0 + + while (time.time() - time_start) < test_time: + # send arp req + ret = self.adapter.ether_send(data) + if ret != "LIBNET_SUCCEED": + NativeLog.add_prompt_trace("libnet send fail, %s" % ret) + continue + total_test_count += 1 + # wait for reply + time.sleep(test_freq) + # should get one arp reply + pdu_list = self.adapter.get_packets() + + if len(pdu_list) == 0: + # failed to get arp reply + total_fail_count += 1 + successive_fail_count += 1 + if successive_fail_count > WARNING_COUNT: + NativeLog.add_trace_critical("ARP Fail: successive fail %u times, total tested %u times" + % (successive_fail_count, total_test_count)) + else: + most_successive_fail_count = most_successive_fail_count \ + if most_successive_fail_count > successive_fail_count \ + else successive_fail_count + successive_fail_count = 0 + pass + NativeLog.add_trace_critical("ARP stress test, total %s times, failed %s times, most successive fail count %s" + % (total_test_count, total_fail_count, most_successive_fail_count)) + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPIPStress/PingStress.py b/components/test/TestCaseScript/TCPIPStress/PingStress.py new file mode 100755 index 000000000..71ab91ce5 --- /dev/null +++ b/components/test/TestCaseScript/TCPIPStress/PingStress.py @@ -0,0 +1,122 @@ +import time + +from NativeLog import NativeLog +from TCAction import TCActionBase +from comm.NIC import Adapter + +WARNING_COUNT = 2 + + +class PingStress(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.adapter = None + self.target_mode = "STA" + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + self.adapter.close() + del self.adapter + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + test_time = self.test_time * 60 + # ping data len + ping_len = self.ping_len + # test frequency min should be 0.1s, otherwise reply could be missed + test_freq = self.test_freq if self.test_freq > 0.1 else 0.1 + # target mode + target_mode = self.target_mode + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for PingStress script, error is %s" % e) + raise StandardError("Error configuration") + + if target_mode == "STA": + target_ip = self.get_parameter("target_ip") + target_mac = self.get_parameter("target_mac") + pc_mac = self.get_parameter("pc_nic_mac") + pc_nic_name = self.get_parameter("pc_nic") + elif target_mode == "SoftAP": + target_ip = self.get_parameter("target_ap_ip") + target_mac = self.get_parameter("target_ap_mac") + pc_mac = self.get_parameter("pc_wifi_nic_mac") + pc_nic_name = self.get_parameter("pc_wifi_nic") + else: + raise StandardError("Unsupported target mode: %s" % target_mode) + + time_start = time.time() + # open device + self.adapter = Adapter.Adapter(pc_nic_name, "capture+send") + + ret = self.adapter.set_filter("icmp[icmpcode]=icmp-echoreply and ether src %s and ether dst %s" + % (target_mac, pc_mac)) + if ret != "LIBPCAP_SUCCEED": + NativeLog.add_trace_critical("PING Stress test error: %s" % ret) + return + + ret = self.adapter.start_capture() + if ret != "LIBPCAP_SUCCEED": + NativeLog.add_trace_critical("PING Stress test error: %s" % ret) + return + + total_test_count = total_fail_count = successive_fail_count = most_successive_fail_count = 0 + + while (time.time() - time_start) < test_time: + + ping_pdu = self.adapter.create_pdu("ICMP", self.adapter.create_payload("A" * ping_len), + icmp_type="echo-request", ipv4_protocol="ICMP", + ipv4_dst_ip=target_ip, ethernet_dst_addr=target_mac) + # send ping req + ret = self.adapter.ether_send(ping_pdu.to_bytes()) + if ret != "LIBNET_SUCCEED": + NativeLog.add_prompt_trace("libnet send fail, %s" % ret) + continue + total_test_count += 1 + # wait for reply + time.sleep(test_freq) + # should get one ping reply + pdu_list = self.adapter.get_packets() + + if len(pdu_list) == 0: + # failed to get ping reply + total_fail_count += 1 + successive_fail_count += 1 + if successive_fail_count > WARNING_COUNT: + NativeLog.add_trace_critical("Ping Fail: successive fail %u times, total tested %u times" + % (successive_fail_count, total_test_count)) + pass + else: + most_successive_fail_count = most_successive_fail_count \ + if most_successive_fail_count > successive_fail_count \ + else successive_fail_count + successive_fail_count = 0 + pass + pass + NativeLog.add_trace_critical("Ping stress test, total %s times, failed %s times, most successive fail count %s" + % (total_test_count, total_fail_count, most_successive_fail_count)) + self.result_cntx.set_result("Succeed") + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPIPStress/__init__.py b/components/test/TestCaseScript/TCPIPStress/__init__.py new file mode 100755 index 000000000..25ae68917 --- /dev/null +++ b/components/test/TestCaseScript/TCPIPStress/__init__.py @@ -0,0 +1 @@ +__all__ = ["ARPStress", "PingStress"] diff --git a/components/test/TestCaseScript/TCPStress/TCPAP4STA.py b/components/test/TestCaseScript/TCPStress/TCPAP4STA.py new file mode 100755 index 000000000..95be6fbe4 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPAP4STA.py @@ -0,0 +1,168 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import copy +import time +import random +import string + + +class TCPAP4STAResultCheckCntx(TCActionBase.ResultCheckContext): + + def __init__(self, test_action, test_env, name): + TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) + self.failed_port = [] + pass + + def run(self): + + while True: + exit_flag = self.wait_exit_event(1) + # force exit + if exit_flag is True: + break + try: + self.lock_data() + temp_cache = copy.deepcopy(self.data_cache) + self.data_cache = [] + finally: + self.unlock_data() + + for _cache in temp_cache: + _data = _cache[1] + if _data.find("user_test_tcpclient_recon_cb") != -1 or _data.find("discon") != -1 \ + or _data.find("No heap available") != -1: + self.failed_port.append(_cache[0]) + NativeLog.add_trace_critical("TCPAP4STA failed, failed on %s" % _cache[0]) + pass + if len(self.failed_port) != 0: + # disconnect happen + break + + def get_test_results(self): + return self.failed_port + + +class TCPAP4STA(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len = self.send_len + # test count + test_count = self.test_count + # server port + server_port = self.server_port + # ap ip + ap_ip = self.ap_ip + # server echo + server_echo = self.server_echo + # station number + sta_number = self.sta_number + # pass standard + pass_standard = self.pass_standard + # send delay + send_delay = self.send_delay + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step0 reboot + checker_stings = [] + test_action_string = [] + + for i in range(sta_number+1): + checker_stings.append("P SSC%d C !!!ready!!!" % (i+1)) + test_action_string.append("SSCC SSC%d reboot" % (i+1)) + + fail_string = "Fail, Fail to reboot" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step1 set ap on SSC1, create server + ssid = "".join([random.choice(string.lowercase) for m in range(10)]) + password = "".join([random.choice(string.lowercase) for m in range(10)]) + checker_stings = ["R SSC1 C dhcp%20server%20start"] + test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] + fail_string = "Fail, Fail set ap" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 C server%20starts%20at%20port"] + if server_echo is True: + test_action_string = ["SSCC SSC1 tcp -S -p %s -b 1" % server_port] + else: + test_action_string = ["SSCC SSC1 tcp -S -p %s" % server_port] + fail_string = "Fail, Fail create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 2, 4 SSC target(SSC2 - SSC5) join SSC1 soft AP + checker_stings = [] + test_action_string = [] + + for i in range(sta_number): + checker_stings.append("P SSC%d C ip C mask C gw C get%%20ip%%20of" % (i+2)) + test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i+2, ssid, password)) + + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + + # step 3, create client on SSC2 - SSC5 + checker_stings = [] + test_action_string = [] + + for i in range(sta_number): + checker_stings.append("P SSC%d C tcp%%20client%%20connect%%20with%%20server" % (i+2)) + test_action_string.append("SSCC SSC%d tcp -W -i %s -p %s -c %s -n 1 -l %s -d %d" + % ((i+2), ap_ip, server_port, test_count, send_len, send_delay)) + + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # switch to new result context + self.result_cntx.stop_thread() + self.result_cntx.join() + self.result_cntx = TCPAP4STAResultCheckCntx(self, self.test_env, self.tc_name) + self.result_cntx.start() + + self.result_cntx.join() + + failed_port = self.result_cntx.get_test_results() + if (time.time() - start_time) > pass_standard: + self.result_cntx.set_result("Succeed") + else: + self.result_cntx.set_result("Failed") + NativeLog.add_trace_critical("Failed port: %s" % failed_port) + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py b/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py new file mode 100755 index 000000000..6c160a9a0 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py @@ -0,0 +1,209 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import time +import random +import string + + +TEST_COUNT_ONE_ROUND = 500 + + +class TCPAPNSTA(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len = self.send_len + # test count + test_count = self.test_count + # server port + server_port = self.server_port + # ap ip + ap_ip = self.ap_ip + # server echo + server_echo = self.server_echo + # station number + sta_number = self.sta_number + # pass standard + pass_standard = self.pass_standard + # send delay + send_delay = self.send_delay + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step0 reboot + checker_stings = [] + test_action_string = [] + + for i in range(sta_number+1): + checker_stings.append("P SSC%d C !!!ready!!!" % (i+1)) + test_action_string.append("SSCC SSC%d reboot" % (i+1)) + + fail_string = "Fail, Fail to reboot" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step1 set ap on SSC1, create server + checker_stings = ["R SSC1 C +MODE:OK"] + test_action_string = ["SSCC SSC1 op -S -o 2"] + fail_string = "Fail, Fail set mode" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + ssid = "".join([random.choice(string.lowercase) for m in range(10)]) + password = "".join([random.choice(string.lowercase) for m in range(10)]) + checker_stings = ["R SSC1 C +SAP:OK"] + test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] + fail_string = "Fail, Fail set ap" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] + fail_string = "Fail, Fail create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -L -s "] + fail_string = "Fail, Fail create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 2, 8 SSC target(SSC2 - SSC9) join SSC1 soft AP + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d C +MODE:OK" % (i+2)) + test_action_string.append("SSCC SSC%d op -S -o 1" % (i+2)) + fail_string = "Fail, Fail set mode" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i+2, ssid)) + test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i+2, ssid, password)) + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + + # step 3, create client on SSC2 - SSC9 + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i+2, i+2)) + test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i+2)) + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for i in range(sta_number): + checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i+2), + "P SSC1 A :ACCEPT:(\d+),.+" % (i+2)] + test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % + (i+2, i+2, ap_ip, server_port)] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 4, do send/recv + while test_count > 0: + _tmp_count = TEST_COUNT_ONE_ROUND if test_count - TEST_COUNT_ONE_ROUND > 0 else test_count + test_count -= TEST_COUNT_ONE_ROUND + + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i+2)) + test_action_string.append("SSC SSC%d soc -S -s -l %d -n %d -j %d" % + (i+2, i+2, send_len, _tmp_count, send_delay)) + if server_echo is True: + test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % + (i+2, send_len, _tmp_count, send_delay)) + checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%() NC CLOSED)" % + (i+2)) + + fail_string = "Fail, Failed to send/recv data" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=300) is False: + break + pass + + if (time.time() - start_time) > pass_standard: + self.result_cntx.set_result("Succeed") + else: + checker_stings = [] + test_action_string = [] + for i in range(sta_number + 1): + checker_stings.append("P SSC%d C CLOSEALL" % (i + 1)) + test_action_string.append("SSCC SSC%d soc -T" % (i + 1)) + fail_string = "Fail, Fail to close socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + server_port = random.randint(20000, 30000) + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] + fail_string = "Fail, Fail to bind socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -L -s "] + fail_string = "Fail, Fail to listen" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 2, i + 2)) + test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 2)) + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for i in range(sta_number): + checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 2), + "P SSC1 A :ACCEPT:(\d+),.+" % (i + 2)] + test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % + (i + 2, i + 2, ap_ip, server_port)] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + self.result_cntx.set_result("Failed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py b/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py new file mode 100755 index 000000000..b04ede6ac --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py @@ -0,0 +1,363 @@ +import random +import re +import sys +import threading +import time + +import TCPConnUtility +from NativeLog import NativeLog +from TCAction import TCActionBase + +reload(sys) +sys.setdefaultencoding('iso-8859-1') # # use encoding that with 1 Byte length and contain 256 chars + + +DEFAULT_MAX_CONN_ALLOWED = 5 + + +# complicated design because I want to make this script applied for all TCP connect/close test scenarios +# basic flow: try to create max connections, send/recv data if possible, close all connections +# connect: +# 1. find available (target_link_id, socket_id) list, +# notice that target_link_id maybe not correct if PC is client +# (during that time, some link may timeout and got disconnected from FIN_WAIT or other state) +# 2. choose one method from method set, try to connect +# 3. update state table: a)check result and destination state, b)find real target_link_id, c)update +# send/recv data: +# 1. find channels that are possible to send data on all connections +# 2. send data on possible channels +# disconnect: +# 1. find available connections +# 2. choose one method from disconnect set, try to disconnect +# 3. update state table (phase 1) +# async process: +# listen on AT UART port, record all "x,CONNECT" and "x,CLOSE" command +# for "x,CONNECT", append them to self.target_link_id_list, used when need to find real target_link_id +# for "x,CLOSE", update state table (phase 2), if matching connection is pending on wait state, +# close them and remove from state table +class TCPConnStressTC(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.__at1_buff = "" + self.max_conn_allowed = test_env.get_variable_by_name("max_conn") + self.enable_log = True + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + # connection_state_dict: {target_link_id: [socket_id, target_state, socket_state, is_closed]} + # is_closed: found "x,CLOSE" in AT UART port + self.connection_state_dict = dict(zip(range(self.max_conn_allowed), [None] * self.max_conn_allowed)) + self.created_link_id_list = [] + + self.__available_soc_id = range(2, 2+self.max_conn_allowed) + self.__available_link_id = range(self.max_conn_allowed) + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + self.utility = TCPConnUtility.TCPConnUtility(self) + self.state_lock = threading.Lock() + self.link_id_lock = threading.Lock() + self.available_id_lock = threading.Lock() + pass + + def __add_log(self, log_str): + if self.enable_log is True: + NativeLog.add_trace_info(log_str) + + def __get_created_target_link_id(self): + self.link_id_lock.acquire() + try: + link_id = self.created_link_id_list[-1] + self.created_link_id_list = [] + finally: + self.link_id_lock.release() + return link_id + pass + + def __set_created_target_link_id(self, link_id): + self.link_id_lock.acquire() + try: + self.created_link_id_list.append(link_id) + finally: + self.link_id_lock.release() + pass + + def __find_channel_list(self): + channel_list = [] # # [(socket_id, able_to_send, link_id, able_to_send), ] + self.state_lock.acquire() + try: + for link_id in self.connection_state_dict: + state = self.connection_state_dict[link_id] + if state is not None: + channel_list.append([state[0], self.utility.is_able_to_send_data(state[2]), + link_id, self.utility.is_able_to_send_data(state[1])]) + finally: + self.state_lock.release() + return channel_list + pass + + def __established_connection_list(self): + conn_list = [] # # [(socket_id, link_id), ] + self.state_lock.acquire() + try: + for link_id in self.connection_state_dict: + state = self.connection_state_dict[link_id] + if state is not None: + if self.utility.is_established_connection([state[1], state[2]]) is True: + conn_list.append([state[0], link_id]) + finally: + self.state_lock.release() + return conn_list + pass + + # find free socket_id, target_link_id pair + def __get_available_id_list(self): + self.available_id_lock.acquire() + try: + id_list = zip(self.__available_soc_id, self.__available_link_id) + finally: + self.available_id_lock.release() + return id_list + pass + + def __update_available_id_list(self, soc_id, link_id, action="ADD"): + self.available_id_lock.acquire() + try: + if action == "ADD": + self.__available_link_id.append(link_id) + self.__available_soc_id.append(soc_id) + self.__add_log("[AVAILABLE ID]soc %d link %d is available" % (soc_id, link_id)) + elif action == "REMOVE": + self.__available_link_id.remove(link_id) + self.__available_soc_id.remove(soc_id) + self.__add_log("[AVAILABLE ID]soc %d link %d is used" % (soc_id, link_id)) + finally: + self.available_id_lock.release() + + def __update_connection_state_item(self, target_link_id, socket_id=None, + target_state=None, socket_state=None, is_closed=None): + self.state_lock.acquire() + try: + state = self.connection_state_dict[target_link_id] + if state is None: + state = [None] * 4 + if socket_id is not None: + state[0] = socket_id + if target_state is not None: + state[1] = target_state + if socket_state is not None: + state[2] = socket_state + if is_closed is not None: + state[3] = is_closed + + # remove closed connections + closed = self.utility.is_closed_state(state[1]) and (state[3] is True) + if closed is True: + self.__update_available_id_list(state[0], target_link_id) + state = None + # if new connection created + if self.connection_state_dict[target_link_id] is None: + created = self.utility.is_created_state(state[1]) + if created is True: + self.__update_available_id_list(state[0], target_link_id, "REMOVE") + else: + # connection did not created, do not add them to connection state table + state = None + + # set new connection_state + self.connection_state_dict[target_link_id] = state + self.__add_log("[STATE] link id is %d, state is %s" % (target_link_id, state)) + except StandardError, e: + pass + finally: + self.state_lock.release() + pass + + # update state table: if result is false, return, if result is true: + # for connect, find real link id, update table according to destination state + # for disconnect, if target in SOC_CLOSE_STATE && catch "x,CLOSE" from AT, remove the item + def update_connection_state_table(self, conn_id, destination_state=None): + if isinstance(conn_id, list) is True or isinstance(conn_id, tuple) is True: + socket_id = conn_id[0] + try: + target_link_id = self.__get_created_target_link_id() + except IndexError: + target_link_id = conn_id[1] + self.__add_log("[STATE]fail to get link id, state is %s, %s" + % (destination_state[0], destination_state[1])) + self.__update_connection_state_item(target_link_id, socket_id, + destination_state[0], destination_state[1]) + pass + else: # # called when recv CLOSED + target_link_id = conn_id + self.__update_connection_state_item(target_link_id, is_closed=True) + pass + pass + + def process_at_data(self, data): + pos1 = 0 + pos2 = 0 + connect = re.compile("\d,CONNECT\r\n") + close = re.compile("\d,CLOSED\r\n") + connect_match = connect.findall(data) + close_match = close.findall(data) + close = re.compile("\d,CONNECT FAIL\r\n") + close_match += close.findall(data) + if len(connect_match) != 0: + pos1 = data.find(connect_match[-1]) + 9 + # append last connected link id + self.__set_created_target_link_id(int(connect_match[-1][:1])) + pass + if len(close_match) != 0: + pos2 = data.find(close_match[-1]) + 7 + # update for all closed links + for close_str in close_match: + self.update_connection_state_table(int(close_str[:1])) + pass + pos = pos1 if pos1 > pos2 else pos2 + + return data[pos:] + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # configurable params + # mandatory params + try: + connect_method_set = self.connect_method_set + test_count = self.test_count + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPConnSingleMode script, error is %s" % e) + raise StandardError("Error configuration") + # optional params + try: + disconn_method_set = self.disconn_method_set + except StandardError: + disconn_method_set = ["D_05"] + pass + try: + delay = self.delay + except StandardError: + delay = 0 + pass + try: + check_data_len = self.check_data_len + except StandardError: + check_data_len = [0, 0] + pass + if isinstance(check_data_len, list) is False: + check_data_len = [check_data_len] * 2 + # configurable params + + # step1 use to create server on both PC and target side + checker_stings = ["SOCP SOC_COM L OK", "ATP AT1 L OK"] + test_action_string = ["SOC SOC1 LISTEN ", "ATC AT1 CIPSERVER 1 "] + fail_string = "Fail, Fail on create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for tested_count in xrange(test_count): + # step2 do connect + available_id_list = self.__get_available_id_list() + + for conn_id in available_id_list: + connect_method = random.choice(connect_method_set) + # ret, destination_state = self.utility.execute_tcp_method(connect_method, conn_id) + try: + self.__add_log("[ACTION]connect method is %s, connect id is %s" + % (connect_method, conn_id)) + ret, destination_state = self.utility.execute_tcp_method(connect_method, conn_id) + except StandardError, e: + NativeLog.add_trace_critical("Error in connect, error is %s" % e) + raise StandardError("Exception happen when connect") + if ret is False: + # connect fail, should terminate TC and mark as fail + return + else: + # succeed, append to table + self.update_connection_state_table(conn_id, destination_state) + if delay != 0: + time.sleep(delay) + + # step 3 send/recv test data + # # [(socket_id, able_to_send, link_id, able_to_send)] + self.__add_log("[ACTION]SEND/RECV data") + channel_list = self.__find_channel_list() + for channel in channel_list: + _check_data_len = [0, 0] + if channel[1] is True: + _check_data_len[0] = check_data_len[0] + if channel[3] is True: + _check_data_len[1] = check_data_len[1] + ret = self.utility.send_test_data(channel[0], + channel[2], + _check_data_len) + if ret is False: + # send/recv fail, should terminate TC and mark as fail + return + if delay != 0: + time.sleep(delay) + + # step 4 close all established connections + # (socket_id, link_id) + conn_list = self.__established_connection_list() + for conn_id in conn_list: + disconn_method = random.choice(disconn_method_set) + try: + self.__add_log("[ACTION]disconnect method is %s, connect id is %s" + % (disconn_method, conn_id)) + ret, destination_state = self.utility.execute_tcp_method(disconn_method, conn_id) + except StandardError, e: + NativeLog.add_trace_critical("Error in disconnect, error is %s" % e) + raise StandardError("Exception happen when disconnect") + if ret is False: + # connect fail, should terminate TC and mark as fail + return + else: + # succeed, append to table + self.update_connection_state_table(conn_id, destination_state) + if delay != 0: + time.sleep(delay) + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + # find "x,CONNECT" and "x,CLOSE" + if port_name.find("AT") != -1: + self.__at1_buff += data + self.__at1_buff = self.process_at_data(self.__at1_buff) + + +def main(): + at1_buff = "" + pos1 = 0 + pos2 = 0 + data = "dafgajglajdfg0,CLOSEjdalghalksdg1,CONNECT\r\n\r\n3,CONNECT4,CLOSEadfaasdf" + at1_buff += data + connect = re.compile("\d,CONNECT") + close = re.compile("\d,CLOSE") + connect_match = connect.findall(at1_buff) + close_match = close.findall(at1_buff) + if len(connect_match) != 0: + pos1 = at1_buff.find(connect_match[-1]) + 9 + pass + if len(close_match) != 0: + pos2 = at1_buff.find(close_match[-1]) + 7 + pass + pos = pos1 if pos1 > pos2 else pos2 + + at1_buff = at1_buff[pos:] + + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/TCPStress/TCPConnUtility.py b/components/test/TestCaseScript/TCPStress/TCPConnUtility.py new file mode 100755 index 000000000..305936901 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPConnUtility.py @@ -0,0 +1,273 @@ +from NativeLog import NativeLog + +# make sure target do not listen on this port +ERROR_PORT = 23333 + + +def unused_param(param): + return param + + +class TCPUtilError(StandardError): + pass + + +class TCPConnUtility(object): + METHOD_RESULT = {"C_01": ("ESTABLISHED", "ESTABLISHED"), # target TCP peer state, PC TCP peer state + "C_02": ("SYNC_SENT", "CLOSED"), + "C_03": ("CLOSED", "CLOSED"), + "C_04": ("SYN_RCVD", "ESTABLISHED"), + "C_05": ("ESTABLISHED", "ESTABLISHED"), + "C_06": ("CLOSED", "CLOSED"), + "C_07": ("CLOSED", "CLOSED"), + "C_08": ("CLOSED", "CLOSED"), + "D_01": ("TIME_WAIT", "CLOSED"), + "D_02": ("TIME_WAIT", "TIME_WAIT"), + "D_03": ("FIN_WAIT_2", "CLOSE_WAIT"), + "D_04": ("FIN_WAIT_1", "CLOSE_WAIT"), + "D_05": ("CLOSED", "TIME_WAIT"), + "D_06": ("CLOSED", "CLOSED"), + "D_07": ("CLOSE_WAIT", "FIN_WAIT2"), + "D_08": ("TIME_WAIT", "CLOSED"), } + + SOC_CLOSED_STATE = ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT", "LAST_ACK", "CLOSED") + SOC_CREATED_STATE = ("SYNC_RCVD", "SYNC_SENT", "ESTABLISHED") + SOC_SEND_DATA_STATE = ("ESTABLISHED", "CLOSE_WAIT") + SOC_ESTABLISHED_STATE = ("ESTABLISHED", ) + + def __init__(self, tc_action): + self.tc_action = tc_action + self.pc_server_port = "" + self.target_server_port = "" + self.pc_ip = "" + self.target_ip = "" + pass + + def config_parameters(self, pc_server_port=None, target_server_port=None, pc_ip=None, target_ip=None): + if pc_ip is not None: + self.pc_ip = pc_ip + if target_ip is not None: + self.target_ip = target_ip + if pc_server_port is not None: + self.pc_server_port = pc_server_port + if target_server_port is not None: + self.target_server_port = target_server_port + pass + + def __connect_c_01(self, conn_id): + checker_stings = ["SOCR SOC1 C +ACCEPT", "ATR AT1 NC CLOSE L OK"] + test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" %s %s" % + (conn_id[1], self.pc_ip, self.pc_server_port)] + fail_string = "Fail, Target failed on connect to PC server" + ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) + if ret is False: + return ret + + checker_stings = ["SOCR SOC_COM L OK"] + test_action_strings = ["SOC SOC1 ACCEPT SOC%d" % conn_id[0]] + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) + pass + + def __connect_c_02(self, conn_id): + checker_stings = ["ATR AT1 C ERROR"] + test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" %s %s" % + (conn_id[1], self.pc_ip, ERROR_PORT)] + fail_string = "Fail, Target fail on connect to port not listened" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) + pass + + def __connect_c_03(self, conn_id): + pass + + def __connect_c_04(self, conn_id): + pass + + def __connect_c_05(self, conn_id): + checker_stings = ["SOCP SOC_COM OK", "ATP AT1 C CONNECT"] + test_action_strings = ["SOC SOC%d CONNECT %s %s" % + (conn_id[0], self.target_server_port, self.target_ip)] + fail_string = "Fail, PC fail on connect to target server" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + pass + + def __connect_c_06(self, conn_id): + pass + + def __connect_c_07(self, conn_id): + # no checker strings, only try to create + # while connect is a blocking function, will return till target reply RST + checker_stings = ["SOCR SOC_COM C CLOSE"] + test_action_strings = ["SOC SOC%d CONNECT %s %s" % + (conn_id[0], ERROR_PORT, self.target_ip)] + fail_string = "Fail, PC fail on connect to target server" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=2000, check_freq=0.01) + pass + + def __connect_c_08(self, conn_id): + pass + + def __close_d_01(self, conn_id): + checker_stings = ["ATP AT1 C %d,CLOSED" % conn_id[1], "SOCP SOC_COM C CLOSE"] + test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_FIN" % conn_id[0], + "ATS AT1 AT+CIPCLOSE=%d" % conn_id[1]] + fail_string = "Fail, Fail to close socket using D_01" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + pass + + def __close_d_02(self, conn_id): + pass + + def __close_d_03(self, conn_id): + checker_stings = [] + test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT WAIT_TO" % conn_id[0], + "ATS AT1 AT+CIPCLOSE=%d" % conn_id[1]] + fail_string = "Fail, Fail to close socket using D_01" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=500, check_freq=0.01) + pass + + def __close_d_04(self, conn_id): + pass + + def __close_d_05(self, conn_id): + checker_stings = ["ATP AT1 C %d,CLOSED" % conn_id[1]] + test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_FIN" % conn_id[0], + "SOC SOC%d CLOSE" % conn_id[0]] + fail_string = "Fail, Fail to close socket using D_05" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + pass + + def __close_d_06(self, conn_id): + # 1. set PC socket close option, stop calling recv; send in target + checker_stings = ["ATP AT1 C >"] + test_action_strings = ["SOC SOC%d STOPRECV" % conn_id[0], + "SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_RST" % conn_id[0], + "ATS AT1 AT+CIPSEND=%d,5" % conn_id[1]] + fail_string = "Fail, Fail to close socket using D_06" + ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + if ret is False: + return ret + + # 2. send 5 bytes to socket + checker_stings = ["ATP AT1 C OK"] + test_action_strings = ["ATSN AT1 5"] + fail_string = "Fail, Fail to close socket using D_06" + ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + if ret is False: + return ret + + # 3. close socket + checker_stings = ["ATP AT1 OR 2 C %d,CONNECT C %d,CLOSED" % (conn_id[1], conn_id[1])] + test_action_strings = ["SOC SOC%d CLOSE" % conn_id[0]] + fail_string = "Fail, Fail to close socket using D_06" + return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=200, check_freq=0.01) + pass + + def __close_d_07(self, conn_id): + pass + + def __close_d_08(self, conn_id): + pass + + def send_test_data(self, socket_id, target_link_id, check_data_len): + # check_data_len[0] for socket data len, check_data_len[1] for target link data len + fail_string = "Fail, Fail on send and recv data" + + ret = True + + for i in range(1): + if check_data_len[1] != 0: + checker_stings = ["ATP AT1 C >"] + test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (target_link_id, check_data_len[1])] + if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail on target send command for link %d" % target_link_id) + ret = False + break + checker_stings = ["SOCP SOC%d RL %d" % (socket_id, check_data_len[1]), "ATP AT1 C OK"] + test_action_strings = ["ATSN AT1 %d" % check_data_len[1]] + if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % target_link_id) + ret = False + break + + if check_data_len[0] != 0: + checker_stings = ["ATP AT1 DL %d+%d" % (target_link_id, check_data_len[0])] + test_action_strings = ["SOC SOC%d SEND %d" % (socket_id, check_data_len[0])] + + if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, + fail_string, check_time=20) is False: + NativeLog.add_trace_critical("Fail to receive PC SOC%d sent data" % socket_id) + ret = False + break + + # return ret + # for now do not validate data + return True + + TCP_ACTION_DICT = {"C_01": __connect_c_01, + "C_02": __connect_c_02, + "C_03": __connect_c_03, + "C_04": __connect_c_04, + "C_05": __connect_c_05, + "C_06": __connect_c_06, + "C_07": __connect_c_07, + "C_08": __connect_c_08, + "D_01": __close_d_01, + "D_02": __close_d_02, + "D_03": __close_d_03, + "D_04": __close_d_04, + "D_05": __close_d_05, + "D_06": __close_d_06, + "D_07": __close_d_07, + "D_08": __close_d_08, + } + + def get_method_destination_state(self, method): + return self.METHOD_RESULT[method] + + def execute_tcp_method(self, method, conn_id): + if method in self.METHOD_RESULT: + return self.TCP_ACTION_DICT[method](self, conn_id), self.get_method_destination_state(method) + else: + raise TCPUtilError("Not TCP connection method") + pass + + def is_created_state(self, state): + if state in self.SOC_CREATED_STATE: + return True + else: + return False + + def is_closed_state(self, state): + if state in self.SOC_CLOSED_STATE: + return True + else: + return False + + def is_able_to_send_data(self, state): + if state in self.SOC_SEND_DATA_STATE: + return True + else: + return False + + def is_established_connection(self, state): + if state[0] in self.SOC_ESTABLISHED_STATE and state[1] in self.SOC_ESTABLISHED_STATE: + return True + else: + return False + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPConnection.py b/components/test/TestCaseScript/TCPStress/TCPConnection.py new file mode 100755 index 000000000..8b481c7df --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPConnection.py @@ -0,0 +1,321 @@ +import random +import re +import socket +import threading +import time + +import TCPConnectionUtility +from NativeLog import NativeLog +from TCAction import PerformanceTCBase + +DELAY_RANGE = [10, 3000] +CONNECTION_STRUCTURE = ("Connection handler", "PC socket", "Target socket id", + "Target port", "PC port", "PC state", "Target state") + + +class CheckerBase(threading.Thread): + + CHECK_ITEM = ("CONDITION", "NOTIFIER", "ID", "DATA") + SLEEP_TIME = 0.1 # sleep 100ms between each check action + + def __init__(self): + threading.Thread.__init__(self) + self.setDaemon(True) + self.exit_event = threading.Event() + self.sync_lock = threading.Lock() + self.check_item_list = [] + self.check_item_id = 0 + + def run(self): + while self.exit_event.isSet() is False: + self.process() + pass + + def process(self): + pass + + def add_check_item(self, condition, notifier): + with self.sync_lock: + check_item_id = self.check_item_id + self.check_item_id += 1 + self.check_item_list.append(dict(zip(self.CHECK_ITEM, (condition, notifier, check_item_id, str())))) + return check_item_id + + def remove_check_item(self, check_item_id): + ret = None + with self.sync_lock: + check_items = filter(lambda x: x["ID"] == check_item_id, self.check_item_list) + if len(check_items) > 0: + self.check_item_list.remove(check_items[0]) + ret = check_items[0]["DATA"] + return ret + + def exit(self): + self.exit_event.set() + pass + + +# check on serial port +class SerialPortChecker(CheckerBase): + def __init__(self, serial_reader): + CheckerBase.__init__(self) + self.serial_reader = serial_reader + pass + + # check condition for serial is compiled regular expression pattern + @staticmethod + def do_check(check_item, data): + match = check_item["CONDITION"].search(data) + if match is not None: + pos = data.find(match.group()) + len(match.group()) + # notify user + check_item["NOTIFIER"]("serial", match) + else: + pos = -1 + return pos + + def process(self): + # do check + with self.sync_lock: + # read data + new_data = self.serial_reader() + # NativeLog.add_trace_info("[debug][read data] %s" % new_data) + # do check each item + for check_item in self.check_item_list: + # NativeLog.add_trace_info("[debug][read data][ID][%s]" % check_item["ID"]) + check_item["DATA"] += new_data + self.do_check(check_item, check_item["DATA"]) + time.sleep(self.SLEEP_TIME) + + +# handle PC TCP server accept and notify user +class TCPServerChecker(CheckerBase): + def __init__(self, server_sock): + CheckerBase.__init__(self) + self.server_sock = server_sock + server_sock.settimeout(self.SLEEP_TIME) + self.accepted_socket_list = [] + + # check condition for tcp accepted sock is tcp source port + @staticmethod + def do_check(check_item, data): + for sock_addr_pair in data: + addr = sock_addr_pair[1] + if addr[1] == check_item["CONDITION"]: + # same port, so this is the socket that matched, notify and remove it from list + check_item["NOTIFIER"]("tcp", sock_addr_pair[0]) + data.remove(sock_addr_pair) + + def process(self): + # do accept + try: + client_sock, addr = self.server_sock.accept() + self.accepted_socket_list.append((client_sock, addr)) + except socket.error: + pass + # do check + with self.sync_lock: + check_item_list = self.check_item_list + for check_item in check_item_list: + self.do_check(check_item, self.accepted_socket_list) + pass + + +# this thread handles one tcp connection. +class ConnectionHandler(threading.Thread): + CHECK_FREQ = CheckerBase.SLEEP_TIME/2 + + def __init__(self, utility, serial_checker, tcp_checker, connect_method, disconnect_method): + threading.Thread.__init__(self) + self.setDaemon(True) + self.utility = utility + self.connect_method = connect_method + self.disconnect_method = disconnect_method + self.exit_event = threading.Event() + # following members are used in communication with checker threads + self.serial_checker = serial_checker + self.tcp_checker = tcp_checker + self.serial_notify_event = threading.Event() + self.tcp_notify_event = threading.Event() + self.serial_result = None + self.tcp_result = None + self.serial_check_item_id = None + self.tcp_check_item_id = None + self.data_cache = None + pass + + def new_connection_structure(self): + connection = dict.fromkeys(CONNECTION_STRUCTURE, None) + connection["Connection handler"] = self + return connection + + def run(self): + while self.exit_event.isSet() is False: + connection = self.new_connection_structure() + # do connect + connect_method_choice = random.choice(self.connect_method) + self.utility.execute_tcp_method(connect_method_choice, connection) + # check if established + if self.utility.is_established_state(connection) is True: + time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000) + # do disconnect if established + disconnect_method_choice = random.choice(self.disconnect_method) + self.utility.execute_tcp_method(disconnect_method_choice, connection) + # make sure target socket closed + self.utility.close_connection(connection) + time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000) + pass + + # serial_condition: re string + # tcp_condition: target local port + def add_checkers(self, serial_condition=None, tcp_condition=None): + # cleanup + self.serial_result = None + self.tcp_result = None + self.serial_notify_event.clear() + self.tcp_notify_event.clear() + # serial_checker + if serial_condition is not None: + pattern = re.compile(serial_condition) + self.serial_check_item_id = self.serial_checker.add_check_item(pattern, self.notifier) + else: + # set event so that serial check always pass + self.serial_notify_event.set() + if tcp_condition is not None: + self.tcp_check_item_id = self.tcp_checker.add_check_item(tcp_condition, self.notifier) + else: + # set event so that tcp check always pass + self.tcp_notify_event.set() + # NativeLog.add_trace_info("[Debug] add check item %s, connection is %s" % (self.serial_check_item_id, self)) + pass + + def get_checker_results(self, timeout=5): + time1 = time.time() + while time.time() - time1 < timeout: + # if one type of checker is not set, its event will be set in add_checkers + if self.serial_notify_event.isSet() is True and self.tcp_notify_event.isSet() is True: + break + time.sleep(self.CHECK_FREQ) + # do cleanup + # NativeLog.add_trace_info("[Debug] remove check item %s, connection is %s" % (self.serial_check_item_id, self)) + self.data_cache = self.serial_checker.remove_check_item(self.serial_check_item_id) + self.tcp_checker.remove_check_item(self.tcp_check_item_id) + # self.serial_check_item_id = None + # self.tcp_check_item_id = None + return self.serial_result, self.tcp_result + + def notifier(self, typ, result): + if typ == "serial": + self.serial_notify_event.set() + self.serial_result = result + elif typ == "tcp": + self.tcp_notify_event.set() + self.tcp_result = result + + def exit(self): + self.exit_event.set() + pass + + +class TCPConnection(PerformanceTCBase.PerformanceTCBase): + def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.max_connection = 5 + self.execute_time = 120 # execute time default 120 minutes + self.pc_ip = "pc_ip" + self.target_ip = "target_ip" + self.connect_method = ["C_01"] + self.disconnect_method = ["D_05"] + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + self.error_event = threading.Event() + self.serial_lock = threading.Lock() + pass + + def serial_reader(self): + return self.serial_read_data("SSC1") + + def send_ssc_command(self, data): + with self.serial_lock: + time.sleep(0.05) + self.serial_write_line("SSC1", data) + + def error_detected(self): + self.error_event.set() + + def process(self): + # parameters + max_connection = self.max_connection + execute_time = self.execute_time * 60 + pc_ip = self.get_parameter(self.pc_ip) + target_ip = self.get_parameter(self.target_ip) + connect_method = self.connect_method + disconnect_method = self.disconnect_method + server_port = random.randint(30000, 50000) + + # step 1, create TCP server on target and PC + # create TCP server on target + self.serial_write_line("SSC1", "soc -B -t TCP -p %s" % server_port) + match = self.check_regular_expression("SSC1", re.compile("BIND:(\d+),OK")) + if match is None: + NativeLog.add_prompt_trace("Failed to create TCP server on target") + return + target_sock_id = match.group(1) + + self.serial_write_line("SSC1", "soc -L -s %s" % target_sock_id) + if self.check_response("SSC1", "+LISTEN:%s,OK" % target_sock_id) is False: + NativeLog.add_prompt_trace("Failed to create TCP server on target") + return + + # create TCP server on PC + try: + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, server_port)) + server_sock.listen(5) + except StandardError: + NativeLog.add_prompt_trace("Failed to create TCP server on PC") + return + + # step 2, create checker + serial_port_checker = SerialPortChecker(self.serial_reader) + tcp_server_checker = TCPServerChecker(server_sock) + serial_port_checker.start() + tcp_server_checker.start() + + # step 3, create 5 thread and do connection + utility = TCPConnectionUtility.Utility(self, server_port, server_port, pc_ip, target_ip) + work_thread = [] + for i in range(max_connection): + t = ConnectionHandler(utility, serial_port_checker, tcp_server_checker, + connect_method, disconnect_method) + work_thread.append(t) + t.start() + + # step 4, wait and exit + self.error_event.wait(execute_time) + # close all threads + for t in work_thread: + t.exit() + t.join() + serial_port_checker.exit() + tcp_server_checker.exit() + serial_port_checker.join() + tcp_server_checker.join() + + if self.error_event.isSet() is False: + # no error detected + self.set_result("Succeed") + pass + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py b/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py new file mode 100755 index 000000000..f28218af0 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py @@ -0,0 +1,251 @@ +import random +import socket +import threading + +from NativeLog import NativeLog + +# from NativeLog import NativeLog + +# make sure target do not listen on this port +ERROR_PORT = 62685 + + +class Utility(object): + METHOD_RESULT = {"C_01": ("ESTABLISHED", "ESTABLISHED"), # target TCP peer state, PC TCP peer state + "C_02": ("SYNC_SENT", "CLOSED"), + "C_03": ("CLOSED", "CLOSED"), + "C_04": ("SYN_RCVD", "ESTABLISHED"), + "C_05": ("ESTABLISHED", "ESTABLISHED"), + "C_06": ("CLOSED", "CLOSED"), + "C_07": ("CLOSED", "CLOSED"), + "C_08": ("CLOSED", "CLOSED"), + "D_01": ("TIME_WAIT", "CLOSED"), + "D_02": ("TIME_WAIT", "TIME_WAIT"), + "D_03": ("FIN_WAIT_2", "CLOSE_WAIT"), + "D_04": ("FIN_WAIT_1", "CLOSE_WAIT"), + "D_05": ("CLOSED", "TIME_WAIT"), + "D_06": ("CLOSED", "CLOSED"), + "D_07": ("CLOSE_WAIT", "FIN_WAIT2"), + "D_08": ("TIME_WAIT", "CLOSED"), } + + SOC_CLOSED_STATE = ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT", "LAST_ACK", "CLOSED") + SOC_CREATED_STATE = ("SYNC_RCVD", "ESTABLISHED") + SOC_SEND_DATA_STATE = ("ESTABLISHED", "CLOSE_WAIT") + SOC_ESTABLISHED_STATE = ("ESTABLISHED", ) + + def __init__(self, tc_action, pc_server_port, target_server_port, pc_ip, target_ip): + self.tc_action = tc_action + self.pc_server_port = pc_server_port + self.target_server_port = target_server_port + self.pc_ip = pc_ip + self.target_ip = target_ip + self.pc_close_wait_socket_list = [] + self.sync_lock = threading.Lock() + pass + + # create a tcp socket, return True or False + def __create_tcp_socket(self, connection): + connection_handler = connection["Connection handler"] + connection["Target port"] = random.randint(10000, 60000) + connection_handler.add_checkers("BIND:(\d+),OK,%s,%s" + % (self.target_ip, connection["Target port"])) + self.tc_action.send_ssc_command("soc -B -t TCP -i %s -p %s" % (self.target_ip, connection["Target port"])) + serial_result, tcp_result = connection_handler.get_checker_results() + if serial_result is not None: + connection["Target socket id"] = serial_result.group(1) + return True + else: + return False + + # target do connect, return True or False + def __target_do_connect(self, connection, dest_ip, dest_port, timeout=20): + connection_handler = connection["Connection handler"] + connection_handler.add_checkers("CONNECT:%s,OK" % connection["Target socket id"], + connection["Target port"]) + self.tc_action.send_ssc_command("soc -C -s %s -i %s -p %s" + % (connection["Target socket id"], dest_ip, dest_port)) + serial_result, tcp_result = connection_handler.get_checker_results(timeout) + if serial_result is not None and tcp_result is not None: + connection["PC socket"] = tcp_result + return True + else: + return False + pass + + # pc do connect, return True or False + def __pc_do_connect(self, connection, dest_ip, dest_port, timeout=20): + connection_handler = connection["Connection handler"] + sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + while True: + connection["PC port"] = random.randint(10000, 60000) + try: + sock.bind((self.pc_ip, connection["PC port"])) + break + except socket.error, e: + if e.errno == 10048: # socket port reuse + continue + sock.settimeout(timeout) + connection["PC socket"] = sock + connection_handler.add_checkers("ACCEPT:(\d+),\d+,%s,%s" + % (self.pc_ip, connection["PC port"])) + try: + sock.connect((dest_ip, dest_port)) + except socket.error: + pass + serial_result, tcp_result = connection_handler.get_checker_results() + if serial_result is not None: + connection["Target socket id"] = serial_result.group(1) + return True + else: + return False + pass + + def connect_c_01(self, connection): + if self.__create_tcp_socket(connection) is True: + return self.__target_do_connect(connection, self.pc_ip, self.pc_server_port) + else: + return False + + def connect_c_02(self, connection): + if self.__create_tcp_socket(connection) is True: + return not self.__target_do_connect(connection, self.pc_ip, ERROR_PORT, timeout=5) + else: + return False + + def connect_c_03(self, connection): + return False + + def connect_c_04(self, connection): + return False + + def connect_c_05(self, connection): + return self.__pc_do_connect(connection, self.target_ip, self.target_server_port) + + def connect_c_06(self, connection): + return False + + def connect_c_07(self, connection): + return not self.__pc_do_connect(connection, self.target_ip, ERROR_PORT) + + def connect_c_08(self, connection): + return False + + def __target_socket_close(self, connection): + connection_handler = connection["Connection handler"] + if connection["Target socket id"] is not None: + connection_handler.add_checkers("CLOSE:%s" % connection["Target socket id"]) + self.tc_action.send_ssc_command("soc -T -s %s" % connection["Target socket id"]) + serial_result, tcp_result = connection_handler.get_checker_results() + connection["Target socket id"] = None + else: + serial_result = None + return True if serial_result is not None else False + + @staticmethod + def __pc_socket_close(connection): + connection_handler = connection["Connection handler"] + if connection["PC socket"] is not None: + connection_handler.add_checkers("CLOSED:%s" % connection["Target socket id"]) + connection["PC socket"].close() + serial_result, tcp_result = connection_handler.get_checker_results() + connection["PC socket"] = None + else: + serial_result = None + return True if serial_result is not None else False + + def close_d_01(self, connection): + connection["PC socket"] = None + return self.__target_socket_close(connection) + + def close_d_02(self, connection): + pass + + def close_d_03(self, connection): + with self.sync_lock: + self.pc_close_wait_socket_list.append(connection["PC socket"]) + return self.__target_socket_close(connection) + pass + + def close_d_04(self, connection): + pass + + def close_d_05(self, connection): + return self.__pc_socket_close(connection) + + def close_d_06(self, connection): + # target send data to PC, PC don't recv and close socket + connection_handler = connection["Connection handler"] + connection_handler.add_checkers("SEND:%s,OK" % connection["Target socket id"]) + self.tc_action.send_ssc_command("soc -S -s %s -l 100" % connection["Target socket id"]) + serial_result, tcp_result = connection_handler.get_checker_results() + if serial_result is None: + return False + return self.__pc_socket_close(connection) + + def close_d_07(self, connection): + # PC shutdown WR + result = False + try: + connection["PC socket"].shutdown(socket.SHUT_WR) + result = True + except StandardError: + pass + return result + + def close_d_08(self, connection): + pass + + def close_connection(self, connection): + self.__target_socket_close(connection) + pass + + TCP_ACTION_DICT = {"C_01": connect_c_01, + "C_02": connect_c_02, + "C_03": connect_c_03, + "C_04": connect_c_04, + "C_05": connect_c_05, + "C_06": connect_c_06, + "C_07": connect_c_07, + "C_08": connect_c_08, + "D_01": close_d_01, + "D_02": close_d_02, + "D_03": close_d_03, + "D_04": close_d_04, + "D_05": close_d_05, + "D_06": close_d_06, + "D_07": close_d_07, + "D_08": close_d_08, + } + + def get_method_destination_state(self, method): + return self.METHOD_RESULT[method] + + def execute_tcp_method(self, method, connection): + if method in self.METHOD_RESULT: + result = self.TCP_ACTION_DICT[method](self, connection) + if result is True: + state = self.get_method_destination_state(method) + connection["Target state"] = state[0] + connection["PC state"] = state[1] + else: + NativeLog.add_prompt_trace("[TCPConnection] tcp method %s fail, connection is %s" + % (method, connection)) + NativeLog.add_trace_info("[TCPConnection][data cache][check item %s] %s" + % (connection["Connection handler"].serial_check_item_id, + connection["Connection handler"].data_cache)) + else: + raise StandardError("Not TCP connection method") + return result + + def is_established_state(self, connection): + return True if connection["Target state"] in self.SOC_CREATED_STATE else False + + def is_closed_state(self, connection): + return True if connection["Target state"] in self.SOC_CLOSED_STATE else False + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPDataValidation.py b/components/test/TestCaseScript/TCPStress/TCPDataValidation.py new file mode 100755 index 000000000..b056af38f --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPDataValidation.py @@ -0,0 +1,244 @@ +import os +import random +import threading +import socket +import time +import re + +from TCAction import TCActionBase +from TCAction import PerformanceTCBase +from NativeLog import NativeLog + + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") + + +AP_PROP_KEY = ("ssid", "password", "apc") + + +def calc_hash(index): + return (index & 0xffffffff) % 83 + (index & 0xffffffff) % 167 + + +def verify_data(data, start_index): + for i, c in enumerate(data): + if ord(c) != calc_hash(start_index + i): + NativeLog.add_trace_critical("[Data Validation Error] target sent data index %u is error." + " Sent data is %x, should be %x" + % (start_index + i, ord(c), calc_hash(start_index + i))) + return False + return True + + +def make_validation_data(length, start_index): + return bytes().join([chr(calc_hash(start_index + i)) for i in range(length)]) + + +class SendThread(threading.Thread): + def __init__(self, sock, send_len): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.send_len = send_len + self.exit_event = threading.Event() + pass + + def exit(self): + self.exit_event.set() + + def run(self): + index = 0 + while self.exit_event.isSet() is False: + data = make_validation_data(self.send_len, index) + try: + self.sock.send(data) + index += self.send_len + except StandardError: + # pass but not exit thread + time.sleep(1) + continue + pass + + +class RecvThread(threading.Thread): + def __init__(self, sock): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.exit_event = threading.Event() + + def exit(self): + self.exit_event.set() + + def run(self): + index = 0 + while self.exit_event.isSet() is False: + if self.sock is not None: + try: + data = self.sock.recv(8*1024) + except StandardError, e: + NativeLog.add_exception_log(e) + NativeLog.add_trace_critical("recv error, connection closed") + break + if verify_data(data, index) is not True: + break + index += len(data) + else: + time.sleep(1) + pass + + +class ValidationThread(threading.Thread): + def __init__(self, tc_action): + threading.Thread.__init__(self) + self.setDaemon(True) + self.tc_action = tc_action + self.exit_event = threading.Event() + + def exit(self): + self.exit_event.set() + + def run(self): + while self.exit_event.isSet() is False: + if self.tc_action.check_response("SSC1", "DATA_ERROR", 5) is True: + NativeLog.add_trace_critical("[Data Validation Error] target recv data error") + break + pass + + +class TCPDataValidation(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.send_len = 1460 + self.tx_enable = True + self.rx_enable = True + self.conn_num = 1 + self.test_time = 300 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + + try: + # configurable params + send_len = self.send_len + tx_enable = self.tx_enable + rx_enable = self.rx_enable + conn_num = self.conn_num + test_time = self.test_time * 60 # convert minutes to seconds + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) + raise StandardError("Error configuration") + + # init throughput result data + test_item = "" + if tx_enable is True: + test_item += "Tx" + if rx_enable is True: + test_item += "Rx" + if test_item == "": + raise StandardError("no throughput test item") + + pc_ip = self.get_parameter("pc_ip") + tcp_port = random.randint(10000, 50000) + + # disable recv print during throughput test + self.serial_write_line("SSC1", "soc -R -o 0") + if self.check_response("SSC1", "+RECVPRINT", 2) is False: + NativeLog.add_trace_critical("Fail, Fail to disable recv print") + + # create server + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, tcp_port)) + server_sock.settimeout(5) + server_sock.listen(5) + + sock_id_list = [] + send_thread_list = [] + recv_thread_list = [] + + # step 4 create tcp connection + for i in range(conn_num): + self.serial_write_line("SSC1", "soc -B -t TCP") + match = self.check_regular_expression("SSC1", re.compile("\+BIND:(\d+),OK"), 2) + if match is None: + NativeLog.add_trace_critical("Fail, Fail to bind") + return + else: + sock_id_list.append(int(match.group(1))) + + self.serial_write_line("SSC1", "soc -V -s %s -o 3" % sock_id_list[-1]) + if self.check_regular_expression("SSC1", re.compile("\+DATA_VALIDATION:\d+,OK"), 2) is None: + NativeLog.add_trace_critical("Fail, Failed to enable validation") + return + + self.serial_write_line("SSC1", "soc -C -s %s -i %s -p %s" % (sock_id_list[-1], pc_ip, tcp_port)) + try: + sock, addr = server_sock.accept() + except socket.error, e: + NativeLog.add_trace_critical("%s" % e) + raise e + + if self.check_regular_expression("SSC1", re.compile("\+CONNECT:\d+,OK"), 5) is None: + NativeLog.add_trace_critical("Fail, Failed to connect") + return + + sock.settimeout(10) + + send_thread_list.append(SendThread(sock if rx_enable is True else None, send_len)) + recv_thread_list.append(RecvThread(sock if tx_enable is True else None)) + recv_thread_list[-1].start() + + # step 5 do test + validation_thread = ValidationThread(self) + validation_thread.start() + + for send_thread in send_thread_list: + send_thread.start() + + if tx_enable is True: + # do send from target + for sock_id in sock_id_list: + self.serial_write_line("SSC1", "soc -S -s %s -l %s -n 10000000" % (sock_id, send_len)) + + time1 = time.time() + exit_flag = False + + while time.time() - time1 < test_time and exit_flag is False: + for i in sock_id_list: + send_thread_list[i].join(0.5) + recv_thread_list[i].join(0.5) + validation_thread.join(0.5) + if send_thread_list[i].isAlive() is False \ + or recv_thread_list[i].isAlive() is False \ + or validation_thread.isAlive() is False: + NativeLog.add_trace_critical("validation error found") + exit_flag = True + break + else: + self.set_result("Succeed") + + # exit all thread + for i in sock_id_list: + send_thread_list[i].exit() + recv_thread_list[i].exit() + send_thread_list[i].join() + send_thread_list[i].join() + + validation_thread.exit() + validation_thread.join() + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPRandomSend.py b/components/test/TestCaseScript/TCPStress/TCPRandomSend.py new file mode 100755 index 000000000..5a07a2d96 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPRandomSend.py @@ -0,0 +1,103 @@ +import os +import time +import random +import threading +import socket +from TCAction import TCActionBase +from NativeLog import NativeLog +from NativeLog import ThroughputResult + + +class TCPRandomSend(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.send_len_config = range(1460) + self.delay_config = [0, 0.01, 0.1, 0.5, 1] + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len_config = self.send_len_config + delay_config = self.delay_config + send_count = self.send_count + test_time = self.test_time * 60 + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) + raise StandardError("Error configuration") + + # disable recv print during random send test + checker_stings = ["R SSC1 C +RECVPRINT"] + test_action_string = ["SSC SSC1 soc -R -o 0"] + fail_string = "Fail, Fail to disable recv print" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + pc_ip = self.test_env.get_variable_by_name("pc_ip")[1] + tcp_port = random.randint(50000, 60000) + + # step 0 create tcp connection + + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, tcp_port)) + server_sock.settimeout(1) + server_sock.listen(5) + + checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t TCP"] + fail_string = "Fail, Fail bind" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"] + test_action_string = ["SSC SSC1 soc -C -s -i %s -p %s" % (pc_ip, tcp_port)] + fail_string = "Fail, Fail to connect" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + sock, addr = server_sock.accept() + sock.settimeout(10) + # set no delay so that tcp segment will be send as soon as send called + sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + + # step 1 start send + start_time = time.time() + while time.time() - start_time < test_time: + for delay in delay_config: + for i in xrange(send_count): + send_len = random.choice(send_len_config) + data = "A" * (send_len+1) + try: + sock.send(data) + except socket.error, e: + NativeLog.add_exception_log(e) + return + pass + time.sleep(delay) + + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPSendRecv.py b/components/test/TestCaseScript/TCPStress/TCPSendRecv.py new file mode 100755 index 000000000..e14d7f04d --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPSendRecv.py @@ -0,0 +1,143 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import time +import random +import string + +TEST_COUNT_ONE_ROUND = 1000 + + +class TCPSendRecv(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + # step 0 turn on recv print + checker_stings = ["R SSC1 C +RECVPRINT:1"] + test_action_string = ["SSC SSC1 soc -R -o 1"] + fail_string = "Fail, Fail to turn on recv print" + self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len = self.send_len + test_time = self.test_time * 60 + duplex = self.duplex + conn_num = self.conn_num + send_delay = self.send_delay + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPSendRecv script, error is %s" % e) + raise StandardError("Error configuration") + + ssid = "".join([random.choice(string.lowercase) for m in range(10)]) + password = "".join([random.choice(string.lowercase) for m in range(10)]) + + # step 0 set ap + checker_stings = ["R SSC1 C +SAP:OK"] + test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)] + fail_string = "Fail, Fail to set ap" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 1 connect to ap and turn off recv print + checker_stings = ["R SSC2 C +JAP:CONNECTED"] + test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: + return + + checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"] + test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"] + fail_string = "Fail, Fail to turn off recv print" + self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: + return + + # step 2 create server on AP + checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t TCP -p "] + fail_string = "Fail, Fail to create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 A :\+LISTEN:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -L -s "] + fail_string = "Fail, Fail to create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 3 create conn_num tcp connections + for i in range(conn_num): + checker_stings = ["R SSC2 A :\+BIND:(\d+),OK" % i] + test_action_string = ["SSC SSC2 soc -B -t TCP"] + fail_string = "Fail, Fail to bind" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["P SSC1 A :\+ACCEPT:(\d+),\d+" % i, + "P SSC2 RE \+CONNECT:\d+,OK"] + test_action_string = ["SSC SSC2 soc -C -s -i -p " % i] + fail_string = "Fail, Fail to connect" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + # step 4, do send/recv + while time.time()-start_time < test_time: + + checker_stings = ["P SSC1 NC ERROR NC CLOSE"] + for i in range(conn_num): + test_action_string = ["SSC SSC2 soc -S -s -l %d -n %d -j %d" % + (i, send_len, TEST_COUNT_ONE_ROUND, send_delay)] + checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%() NC ERROR NC CLOSE" % i) + + if duplex is True: + checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%()" % i) + test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % + (i, send_len, TEST_COUNT_ONE_ROUND, send_delay)) + + fail_string = "Fail, Failed on send command" + if self.load_and_exe_one_step([], test_action_string, fail_string) is False: + break + # if self.load_and_exe_one_step([], ["SSC SSC1 ram -H", "SSC SSC2 ram -H"], fail_string) is False: + # break + # time.sleep(0.1) + + fail_string = "Fail, Failed to send/recv data" + if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string, + check_freq=1, check_time=300) is False: + break + pass + + NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time)) + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + + diff --git a/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py b/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py new file mode 100644 index 000000000..de31bacc1 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py @@ -0,0 +1,318 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import time +import random +import string + +TEST_COUNT_ONE_ROUND = 500 + + +class TCPSoftAPSTASendRecv(TCActionBase.CommonTCActionBase): + def __init__(self, name, test_env, cmd_set, timeout=45, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len = self.send_len + # test count + test_count = self.test_count + # server port + server_port = self.server_port + server_port_t = self.server_port_2 + # ap ip + # ap_ip = self.ap_ip + # server echo + server_echo = self.server_echo + # station number + sta_number = self.sta_number + # pass standard + pass_standard = self.pass_standard + # send delay + send_delay = self.send_delay + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) + raise StandardError("Error configuration") + + # step0 reboot + checker_stings = [] + test_action_string = [] + + for i in range(sta_number + 2): + checker_stings.append("P SSC%d C !!!ready!!!" % (i + 1)) + test_action_string.append("SSCC SSC%d reboot" % (i + 1)) + + fail_string = "Fail, Fail to reboot" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step1, set ap/STA mode on all target + for i in range(sta_number + 2): + checker_stings = ["R SSC%d C +MODE:OK" % (i + 1)] + test_action_string = ["SSCC SSC%d op -S -o 3" % (i + 1)] + fail_string = "Fail, Fail to set mode on SSC%d" % (i + 1) + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # set different getway for SSC1 softAP + checker_stings = ["R SSC1 C +DHCP:AP,OK"] + test_action_string = ["SSCC SSC1 dhcp -E -o 2"] + fail_string = "Fail, SSC1 Fail to disable DHCP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 C +IP:OK"] + test_action_string = ["SSCC SSC1 ip -S -o 2 -i 192.168.6.1"] + fail_string = "Fail, SSC1 Fail to set IP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 C +DHCP:AP,OK"] + test_action_string = ["SSCC SSC1 dhcp -S -o 2"] + fail_string = "Fail, SSC1 Fail to enable DHCP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # set different getway for SSC2 softAP + checker_stings = ["R SSC2 C +DHCP:AP,OK"] + test_action_string = ["SSCC SSC2 dhcp -E -o 2"] + fail_string = "Fail, SSC2 Fail to disable DHCP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC2 C +IP:OK"] + test_action_string = ["SSCC SSC2 ip -S -o 2 -i 192.168.5.1"] + fail_string = "Fail, SSC2 Fail to set IP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC2 C +DHCP:AP,OK"] + test_action_string = ["SSCC SSC2 dhcp -S -o 2"] + fail_string = "Fail, SSC2 Fail to enable DHCP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step2, set ssid/password on SSC1 + ssid = "".join([random.choice(string.lowercase) for m in range(10)]) + password = "".join([random.choice(string.lowercase) for m in range(10)]) + checker_stings = ["R SSC1 C +SAP:OK"] + test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] + fail_string = "Fail, Fail to set ssid/password on SSC1" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step3, set ssid/password on SSC2 + ssid_1 = "".join([random.choice(string.lowercase) for m in range(10)]) + password_1 = "".join([random.choice(string.lowercase) for m in range(10)]) + checker_stings = ["R SSC2 C +SAP:OK"] + test_action_string = ["SSCC SSC2 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid_1, password_1)] + fail_string = "Fail, Fail to set ap ssid/password on SSC2" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step4, SSC2 join SSC1(soft AP) + checker_stings = [] + test_action_string = [] + checker_stings.append("P SSC2 C +JAP:CONNECTED,%s" % ssid) + test_action_string.append("SSCC SSC2 ap -C -s %s -p %s" % (ssid, password)) + fail_string = "Fail, Fail to connect to SSC1 SoftAP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + # step5, create server on SSC1 + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] + fail_string = "Fail, Fail to create server on SSC1 while binding" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -L -s "] + fail_string = "Fail, Fail to create server on SSC1 while listening" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step6, create client on SSC2 + checker_stings = [] + test_action_string = [] + checker_stings.append("P SSC2 A :BIND:(\d+),OK") + test_action_string.append("SSCC SSC2 soc -B -t TCP") + fail_string = "Fail, SSC2 Fail to connect to server while binding" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A :ACCEPT:(\d+),.+"] + test_action_string = ["SSCC SSC2 soc -C -s -i %s -p %s" % ("192.168.6.1", server_port)] + fail_string = "Fail, SSC2 Fail to connect to server while connecting" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step7, SSC3 - SSC5 join SSC2 + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i + 3, ssid_1)) + test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i + 3, ssid_1, password_1)) + fail_string = "Fail, SSC%d Fail to connect to SSC2" % (i + 3) + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False: + return + + # step8, create server on SSC2 + checker_stings = ["R SSC2 A :BIND:(\d+),OK"] + test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t] + fail_string = "Fail, Fail to create server one SSC2 while binding" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC2 soc -L -s "] + fail_string = "Fail, Fail to create server one SSC2 while listening" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step9, create client on SSC3 - SSC5 + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 3, i + 3)) + test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3)) + fail_string = "Fail, Fail to connect to SSC2 server while binding" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for i in range(sta_number): + checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3), + "P SSC2 A :ACCEPT:(\d+),.+" % (i + 3)] + test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % + (i + 3, i + 3, "192.168.5.1", server_port_t)] + fail_string = "Fail, Fail to connect to SSC2 server while connecting" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + # step 10, do send/recv + while test_count > 0: + _tmp_count = TEST_COUNT_ONE_ROUND if test_count - TEST_COUNT_ONE_ROUND > 0 else test_count + test_count -= TEST_COUNT_ONE_ROUND + + checker_stings = [] + test_action_string = [] + if server_echo is True: + test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % + (send_len, _tmp_count, send_delay)) + checker_stings.append("P SSC1 RE \+SEND:\d+,OK NC CLOSED") + test_action_string.append("SSC SSC2 soc -S -s -l %d -n %d -j %d" % + (send_len, _tmp_count, send_delay)) + checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED") + + for i in range(sta_number): + checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i + 3)) + test_action_string.append("SSC SSC%d soc -S -s -l %d -n %d -j %d" % + (i + 3, i + 3, send_len, _tmp_count, send_delay)) + for i in range(sta_number): + test_action_string.append("SSC SSC2 soc -S -s -l %d -n %d -j %d" % + (i + 3, send_len, _tmp_count, send_delay)) + checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED") + + fail_string = "Fail, Failed to send/recv data" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=300) is False: + break + pass + + if (time.time() - start_time) > pass_standard: + self.result_cntx.set_result("Succeed") + else: + checker_stings = [] + test_action_string = [] + for i in range(sta_number + 2): + checker_stings.append("P SSC%d C CLOSEALL" % (i + 1)) + test_action_string.append("SSCC SSC%d soc -T" % (i + 1)) + fail_string = "Fail, Fail to close socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + # re-set server on SSC1 + server_port = random.randint(20000, 30000) + checker_stings = ["R SSC1 A :BIND:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] + fail_string = "Fail, Fail to bind socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC1 soc -L -s "] + fail_string = "Fail, Fail to listen" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + # SSC2 connnect SSC1 + checker_stings = [] + test_action_string = [] + checker_stings.append("P SSC2 A :BIND:(\d+),OK") + test_action_string.append("SSCC SSC2 soc -B -t TCP") + fail_string = "Fail, SSC2 Fail to bind sock" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A :ACCEPT:(\d+),.+"] + test_action_string = ["SSCC SSC2 soc -C -s -i %s -p %s" % ("192.168.6.1", server_port)] + fail_string = "Fail, SSC2 Fail to connect to SSC1 server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + #create server on SSC2 + checker_stings = [] + test_action_string = [] + checker_stings.append("P SSC2 A :BIND:(\d+),OK") + test_action_string.append("SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t) + fail_string = "Fail, SSC2 Fail to bind" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"] + test_action_string = ["SSCC SSC2 soc -L -s "] + fail_string = "Fail, SSC2 Fail to listen" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + #create client on SSC3-SSC5 + checker_stings = [] + test_action_string = [] + for i in range(sta_number): + checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 3, i + 3)) + test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3)) + fail_string = "Fail, Fail to connect to SSC2 server while binding" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for i in range(sta_number): + checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3), + "P SSC2 A :ACCEPT:(\d+),.+" % (i + 3)] + test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % + (i + 3, i + 3, "192.168.5.1", server_port_t)] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + self.result_cntx.set_result("Failed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/TCPThroughput.py b/components/test/TestCaseScript/TCPStress/TCPThroughput.py new file mode 100755 index 000000000..0c40603e3 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/TCPThroughput.py @@ -0,0 +1,315 @@ +import os +import time +import random +import threading +import socket + +from TCAction import TCActionBase +from NativeLog import NativeLog +from NativeLog import ThroughputResult +from Utility import RSSICalibrator +from Utility import MakeFolder + + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") + + +AP_PROP_KEY = ("ssid", "password", "apc") + + +class SendThread(threading.Thread): + def __init__(self, sock, send_len): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.send_len = send_len + self.exit_event = threading.Event() + self.calc_event = threading.Event() + self.bytes_sent = 0 + pass + + def start_calc(self): + self.calc_event.set() + + def stop_calc(self): + self.calc_event.clear() + self.exit_event.set() + + def run(self): + data = "A" * self.send_len + if self.sock is None: + return + while True: + if self.exit_event.isSet() is True: + break + try: + self.sock.send(data) + except StandardError: + break + if self.calc_event.isSet() is True: + self.bytes_sent += self.send_len + + def get_bytes_sent(self): + return self.bytes_sent + pass + + +class RecvThread(threading.Thread): + def __init__(self, sock): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.exit_event = threading.Event() + self.calc_event = threading.Event() + self.bytes_recv = 0 + + def start_calc(self): + self.calc_event.set() + + def stop_calc(self): + self.calc_event.clear() + self.exit_event.set() + + def run(self): + if self.sock is None: + return + while True: + if self.exit_event.isSet() is True: + break + try: + data = self.sock.recv(8*1024) + except StandardError: + break + if self.calc_event.isSet() is True: + self.bytes_recv += len(data) + + def get_bytes_recv(self): + return self.bytes_recv + pass + + +class TCPThroughput(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.att_test_list = range(60) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # read AP list + self.ap_list = [] + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + ap_list = self.ap_list + send_len = self.send_len + att_test_list = self.att_test_list + tx_enable = self.tx_enable + rx_enable = self.rx_enable + measure_period = self.measure_period + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) + raise StandardError("Error configuration") + + # find local ip and generate local port + local_ip_list = socket.gethostbyname_ex(socket.gethostname())[2] + for local_ip in local_ip_list: + if local_ip.find("192.168.1.") != -1: + pc_ip = local_ip + break + else: + raise StandardError("Can't find local IP.") + + tcp_port = random.randint(40000, 50000) + + # init throughput result data + test_item = "" + if tx_enable is True: + test_item += "Tx" + if rx_enable is True: + test_item += "Rx" + if test_item == "": + raise StandardError("no throughput test item") + + folder_path = MakeFolder.make_folder(LOG_FOLDER) + file_name = os.path.join(folder_path, + "TCPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime()))) + + result = ThroughputResult.ThroughputResult(file_name, standard_required=True) + + # restart before executing throughput + checker_stings = ["R SSC1 C !!!ready!!!"] + test_action_string = ["SSC SSC1 reboot"] + fail_string = "Fail, Fail to reboot" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # disable recv print during throughput test + checker_stings = ["R SSC1 C +RECVPRINT"] + test_action_string = ["SSC SSC1 soc -R -o 0"] + fail_string = "Fail, Fail to disable recv print" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for ap_prop in ap_list: + if ap_prop["password"] == "": + # set a default string for open ap + ap_prop["password"] = "1" + + # switch off all outlet, switch on AP outlet + outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") + outlet_config_dict[ap_prop["apc"]] = "ON" + apc_cmd = "APC " + for outlet in outlet_config_dict: + apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) + checker_stings = ["P PC_COM L OK"] + fail_string = "Fail, Fail to switch apc" + if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: + return + + # wait AP ready + time.sleep(20) + + # create server + server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) + server_sock.bind((pc_ip, tcp_port)) + server_sock.settimeout(5) + server_sock.listen(5) + + if tx_enable is True: + result.add_test_item(ap_prop["ssid"] + "_tx") + if rx_enable is True: + result.add_test_item(ap_prop["ssid"] + "_rx") + + # create RSSI Calibrator + calibrator = RSSICalibrator.Calibrator() + + for att_value in att_test_list: + # step 0 set att value + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT %s" % att_value] + fail_string = "Fail, Fail to set att value" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + # step 1 connect to AP + checker_stings = ["R SSC1 C +JAP:CONNECTED"] + test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] + fail_string = "Fail, Fail to JAP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=30) is False: + continue + # step 2 get AP RSSI + checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ap_prop["ssid"]] + test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] + fail_string = "Fail, Fail to scan" + rssi = scan_count = 0 + for i in range(3): + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + rssi += int(self.test_env.get_variable_by_name("rssi")[1]) + scan_count += 1 + + rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) + + # step 3 close all connections + checker_stings = ["R SSC1 C +CLOSEALL"] + test_action_string = ["SSC SSC1 soc -T"] + fail_string = "Fail, Fail to create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + # step 4 create tcp connection + + checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t TCP"] + fail_string = "Fail, Fail bind" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"] + test_action_string = ["SSC SSC1 soc -C -s -i %s -p %s" % (pc_ip, tcp_port)] + fail_string = "Fail, Fail to connect" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + try: + sock, addr = server_sock.accept() + except socket.error, e: + NativeLog.add_trace_critical("%s" % e) + continue + sock.settimeout(measure_period) + + # step 5 do throughput test + send_thread = SendThread(sock if rx_enable is True else None, send_len) + send_thread.start() + + recv_thread = RecvThread(sock if tx_enable is True else None) + recv_thread.start() + + if tx_enable is True: + # do send from target + test_action_string = ["SSC SSC1 soc -S -s -l %s -n 10000000" % send_len] + fail_string = "Fail, Fail to send" + if self.load_and_exe_one_step([], test_action_string, fail_string) is False: + pass + + # start throughput calculate + send_thread.start_calc() + recv_thread.start_calc() + + # sleep for measure period + time.sleep(measure_period) + + # stop throughput calculate + send_thread.stop_calc() + recv_thread.stop_calc() + + send_thread.join() + recv_thread.join() + + sock.close() + + # output throughput result + # in Mbps + if send_thread.get_bytes_sent() > 0: + result.log_throughput(ap_prop["ssid"] + "_rx", rssi, att_value, + float(send_thread.get_bytes_sent() * 8) / (measure_period * 1000000)) + + if recv_thread.get_bytes_recv() > 0: + result.log_throughput(ap_prop["ssid"] + "_tx", rssi, att_value, + float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000)) + + result.output_to_file() + pass + + server_sock.close() + + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/TCPStress/__init__.py b/components/test/TestCaseScript/TCPStress/__init__.py new file mode 100755 index 000000000..049c1b961 --- /dev/null +++ b/components/test/TestCaseScript/TCPStress/__init__.py @@ -0,0 +1 @@ +__all__ = ["TCPConnUtility", "TCPConnSingleMode", "TCPConnMixedMode"] \ No newline at end of file diff --git a/components/test/TestCaseScript/UDPStress/UDPSendRecv.py b/components/test/TestCaseScript/UDPStress/UDPSendRecv.py new file mode 100755 index 000000000..3a528c6ba --- /dev/null +++ b/components/test/TestCaseScript/UDPStress/UDPSendRecv.py @@ -0,0 +1,130 @@ +from TCAction import TCActionBase +from NativeLog import NativeLog +import time +import random +import string + +TEST_COUNT_ONE_ROUND = 1000 + + +class UDPSendRecv(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def cleanup(self): + # step 0 turn on recv print + checker_stings = ["R SSC1 C +RECVPRINT:1"] + test_action_string = ["SSC SSC1 soc -R -o 1"] + fail_string = "Fail, Fail to turn on recv print" + self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + send_len = self.send_len + test_time = self.test_time * 60 + duplex = self.duplex + conn_num = self.conn_num + send_delay = self.send_delay + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for UDPSendRecv script, error is %s" % e) + raise StandardError("Error configuration") + + ssid = "".join([random.choice(string.lowercase) for m in range(10)]) + password = "".join([random.choice(string.lowercase) for m in range(10)]) + + # step 0 set ap + checker_stings = ["R SSC1 C +SAP:OK"] + test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)] + fail_string = "Fail, Fail to set ap" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # step 1 connect to ap and turn off recv print + checker_stings = ["R SSC2 C +JAP:CONNECTED"] + test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: + return + + checker_stings = ["R SSC2 A :\+STAIP:(\d+\.\d+\.\d+\.\d+)\r"] + test_action_string = ["SSC SSC2 ip -Q -o 1"] + fail_string = "Fail, Fail to connect to server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: + return + + checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"] + test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"] + fail_string = "Fail, Fail to turn off recv print" + self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: + return + + # step 2 create conn_num udp socket + for i in range(1, conn_num+1): + checker_stings = ["R SSC1 A :\+BIND:(\d+),OK" % i, + "R SSC2 A :\+BIND:(\d+),OK" % i] + test_action_string = ["SSC SSC1 soc -B -t UDP -p " % i, + "SSC SSC2 soc -B -t UDP -p " % i] + fail_string = "Fail, Fail to create socket" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + start_time = time.time() + # step 3, do send/recv + while time.time()-start_time < test_time: + + checker_stings = ["P SSC1 NC ERROR NC CLOSE"] + for i in range(1, conn_num+1): + test_action_string = ["SSC SSC2 soc -S -s -l %d -n %d -j %d " + "-i -p " % + (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i)] + checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%() NC ERROR NC CLOSE" % i) + if duplex is True: + test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" + " -i -p " % + (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i)) + checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%()" % i) + + fail_string = "Fail, Failed on send command" + if self.load_and_exe_one_step([], test_action_string, fail_string) is False: + break + time.sleep(1) + + fail_string = "Fail, Failed to send/recv data" + if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string, + check_freq=1, check_time=300) is False: + break + pass + + NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time)) + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() + + diff --git a/components/test/TestCaseScript/UDPStress/UDPThroughput.py b/components/test/TestCaseScript/UDPStress/UDPThroughput.py new file mode 100755 index 000000000..dac7c2206 --- /dev/null +++ b/components/test/TestCaseScript/UDPStress/UDPThroughput.py @@ -0,0 +1,305 @@ +import os +import time +import random +import threading +import socket + +from TCAction import TCActionBase +from NativeLog import NativeLog +from NativeLog import ThroughputResult +from Utility import RSSICalibrator +from Utility import MakeFolder + + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") + + +AP_PROP_KEY = ("ssid", "password", "apc") + + +class SendThread(threading.Thread): + def __init__(self, sock, send_len, target_addr): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.send_len = send_len + self.target_addr = target_addr + self.exit_event = threading.Event() + pass + + def exit(self): + self.exit_event.set() + + def run(self): + data = "A" * self.send_len + if self.sock is None: + return + while True: + if self.exit_event.isSet() is True: + break + try: + self.sock.sendto(data, self.target_addr) + except StandardError: + break + pass + + +class RecvThread(threading.Thread): + def __init__(self, sock): + threading.Thread.__init__(self) + self.setDaemon(True) + self.sock = sock + self.exit_event = threading.Event() + self.calc_event = threading.Event() + self.bytes_recv = 0 + + def start_calc(self): + self.calc_event.set() + + def stop_calc(self): + self.calc_event.clear() + self.exit_event.set() + + def run(self): + if self.sock is None: + return + while True: + if self.exit_event.isSet() is True: + break + try: + data, addr = self.sock.recvfrom(65535) + except StandardError: + break + if self.calc_event.isSet() is True: + self.bytes_recv += len(data) + + def get_bytes_recv(self): + return self.bytes_recv + pass + + +class UDPThroughput(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.att_test_list = range(60) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # read AP list + self.ap_list = [] + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" + exec cmd_string + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + ap_list = self.ap_list + send_len = self.send_len + att_test_list = self.att_test_list + tx_enable = self.tx_enable + rx_enable = self.rx_enable + measure_period = self.measure_period + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) + raise StandardError("Error configuration") + + # find local ip and generate local port + local_ip_list = socket.gethostbyname_ex(socket.gethostname())[2] + for local_ip in local_ip_list: + if local_ip.find("192.168.1.") != -1: + pc_ip = local_ip + break + else: + raise StandardError("Can't find local IP.") + + udp_port = random.randint(40000, 50000) + + # init throughput result data + test_item = "" + if tx_enable is True: + test_item += "Tx" + if rx_enable is True: + test_item += "Rx" + if test_item == "": + raise StandardError("no throughput test item") + + folder_path = MakeFolder.make_folder(LOG_FOLDER) + file_name = os.path.join(folder_path, + "UDPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime()))) + + result = ThroughputResult.ThroughputResult(file_name) + + # restart before executing throughput + checker_stings = ["R SSC1 C !!!ready!!!"] + test_action_string = ["SSC SSC1 reboot"] + fail_string = "Fail, Fail to reboot" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + # disable recv print during throughput test + checker_stings = ["R SSC1 C +RECVPRINT"] + test_action_string = ["SSC SSC1 soc -R -o 0"] + fail_string = "Fail, Fail to disable recv print" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + return + + for ap_prop in ap_list: + if ap_prop["password"] == "": + # set a default string for open ap + ap_prop["password"] = "1" + + # switch off all outlet, switch on AP outlet + outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") + outlet_config_dict[ap_prop["apc"]] = "ON" + apc_cmd = "APC " + for outlet in outlet_config_dict: + apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) + checker_stings = ["P PC_COM L OK"] + fail_string = "Fail, Fail to switch apc" + if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: + return + + # wait AP ready + time.sleep(20) + + # create server + udp_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) + udp_sock.bind((pc_ip, udp_port)) + udp_sock.settimeout(1) + + if tx_enable is True: + result.add_test_item(ap_prop["ssid"] + "_tx") + if rx_enable is True: + result.add_test_item(ap_prop["ssid"] + "_rx") + + # create RSSI Calibrator + calibrator = RSSICalibrator.Calibrator() + + for att_value in att_test_list: + # step 0 set att value + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT %s" % att_value] + fail_string = "Fail, Fail to set att value" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + # step 1 connect to AP + checker_stings = ["R SSC1 C +JAP:CONNECTED"] + test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] + fail_string = "Fail, Fail to JAP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=30) is False: + continue + checker_stings = ["R SSC1 A :STAIP:(\d+\.\d+\.\d+\.\d+)"] + test_action_string = ["SSC SSC1 ip -Q"] + fail_string = "Fail, Fail to get ip" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=30) is False: + continue + target_ip = self.get_parameter("target_ip") + # step 2 get AP RSSI + checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)\r" % ap_prop["ssid"]] + test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] + fail_string = "Fail, Fail to scan" + rssi = scan_count = 0 + for i in range(3): + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + rssi += int(self.test_env.get_variable_by_name("rssi")[1]) + scan_count += 1 + + rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) + + # step 3 close all connections + checker_stings = ["R SSC1 C +CLOSEALL"] + test_action_string = ["SSC SSC1 soc -T"] + fail_string = "Fail, Fail to create server" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + # step 4 create UDP socket + checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] + test_action_string = ["SSC SSC1 soc -B -t UDP -i %s -p %s" % (target_ip, udp_port)] + fail_string = "Fail, Fail bind" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + # step 5 do throughput test + send_thread = SendThread(udp_sock if rx_enable is True else None, + send_len, (target_ip, udp_port)) + send_thread.start() + + recv_thread = RecvThread(udp_sock if tx_enable is True else None) + recv_thread.start() + + if tx_enable is True: + # do send from target + test_action_string = ["SSC SSC1 soc -S -s -l %s -n 10000000 -i %s -p %s" + % (send_len, pc_ip, udp_port)] + fail_string = "Fail, Fail to send" + if self.load_and_exe_one_step([], test_action_string, fail_string) is False: + pass + + # start throughput calculate + recv_thread.start_calc() + + # sleep for measure period + time.sleep(measure_period) + + # stop throughput calculate + recv_thread.stop_calc() + send_thread.exit() + + send_thread.join() + recv_thread.join() + + # output throughput result + # in Mbps + if rx_enable is True: + # get received data len from PC + self.load_and_exe_one_step(["R SSC1 A :RECVLEN:(\d+)"], + ["SSC SSC1 soc -Q -s -o 1"], + "Fail, Fail to get recv data len") + try: + rx_data_len = int(self.get_parameter("recv_len")) + except StandardError: + rx_data_len = 0 + + result.log_throughput(ap_prop["ssid"] + "_rx", rssi, att_value, + float(rx_data_len * 8) / (measure_period * 1000000)) + + if recv_thread.get_bytes_recv() > 0: + result.log_throughput(ap_prop["ssid"] + "_tx", rssi, att_value, + float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000)) + + result.output_to_file() + pass + + udp_sock.close() + + self.result_cntx.set_result("Succeed") + + # finally, execute done + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/UDPStress/__init__.py b/components/test/TestCaseScript/UDPStress/__init__.py new file mode 100755 index 000000000..d29ee405a --- /dev/null +++ b/components/test/TestCaseScript/UDPStress/__init__.py @@ -0,0 +1 @@ +__all__ = ["UDPSendRecv", ] diff --git a/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py b/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py new file mode 100755 index 000000000..70a1169f2 --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py @@ -0,0 +1,178 @@ +import random +import time +import string +import threading + +from TCAction import TCActionBase +from NativeLog import NativeLog +from TCAction import PerformanceTCBase +from Utility import Encoding + + +class STAJAPThread(threading.Thread): + def __init__(self, test_action, port_name, ssid, password, delay1, delay2, change_mac): + threading.Thread.__init__(self) + self.setDaemon(True) + self.test_action = test_action + self.port_name = port_name + self.ssid = ssid + self.password = password + self.delay1 = delay1 + self.delay2 = delay2 + self.change_mac = change_mac + self.exit_flag = threading.Event() + pass + + def exit(self): + self.exit_flag.set() + pass + + def run(self): + total_test_count = 0 + fail_count = 0 + while self.exit_flag.isSet() is False: + # change mac + if self.change_mac is True: + mac = Encoding.generate_random_mac() + self.test_action.serial_write_line(self.port_name, "mac -S -o 1 -m %s" % mac) + self.test_action.check_response(self.port_name, "+MAC:STA,OK") + + time.sleep(1) + + # JAP + total_test_count += 1 + # flush current port data + self.test_action.flush_data(self.port_name) + self.test_action.serial_write_line(self.port_name, "sta -C -s %s -p %s" % (self.ssid, self.password)) + if self.test_action.check_response(self.port_name, "+JAP:CONNECTED", 45) is False: + fail_count += 1 + NativeLog.add_trace_critical("[%s] Failed to JAP, Failed/Total : %d/%d" + % (self.port_name, fail_count, total_test_count)) + continue + time.sleep(random.randint(self.delay1[0], self.delay1[1])) + + # QAP + self.test_action.serial_write_line(self.port_name, "sta -D") + if self.test_action.check_response(self.port_name, "+QAP:OK", 5) is False: + NativeLog.add_trace_critical("[%s] Failed to QAP" % self.port_name) + time.sleep(random.randint(self.delay2[0], self.delay2[1])) + + # make sure quit AP + self.test_action.serial_write_line(self.port_name, "sta -D") + pass + pass + + +class SoftAPNSTA(PerformanceTCBase.PerformanceTCBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.sta_num = 0 + self.max_sta = 4 + self.test_time = 60 + self.delay1 = [5, 30] + self.delay2 = [5, 10] + self.change_mac = True + self.channel = 11 + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + pass + + def process(self): + # configurable parameters + try: + sta_num = self.sta_num + max_sta = self.max_sta + test_time = self.test_time + # delay between JAP succeed and QAP + delay1 = self.delay1 + # delay between QAP and JAP + delay2 = self.delay2 + # if change mac each time before JAP + change_mac = self.change_mac + # channel + channel = self.channel + except StandardError, e: + raise StandardError("miss mandatory parameters") + + # step 0, set op mode and enable dhcp + self.serial_write_line("SSC1", "op -S -o 2") + if self.check_response("SSC1", "+MODE:OK", 2) is False: + NativeLog.add_trace_critical("Failed to set ap mode") + return + self.serial_write_line("SSC1", "dhcp -E -o 2") + if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False: + NativeLog.add_trace_critical("Failed to enable ap dhcp") + return + self.serial_write_line("SSC1", "dhcp -L -s 192.168.4.2 -e 192.168.4.100 -t 1") + if self.check_response("SSC1", "+DHCP:LEASE,OK", 2) is False: + NativeLog.add_trace_critical("Failed to enable ap dhcp") + return + self.serial_write_line("SSC1", "dhcp -S -o 2") + if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False: + NativeLog.add_trace_critical("Failed to enable ap dhcp") + return + + for i in range(sta_num): + self.serial_write_line("SSC%d" % (i+2), "op -S -o 1") + if self.check_response("SSC%d" % (i+2), "+MODE:OK", 2) is False: + NativeLog.add_trace_critical("Failed to set sta mode") + return + self.serial_write_line("SSC%d" % (i+2), "dhcp -S -o 1") + if self.check_response("SSC%d" % (i+2), "+DHCP:STA,OK", 2) is False: + NativeLog.add_trace_critical("Failed to enable sta dhcp") + + # step 1, set ap config and load + ap_ssid = "".join([random.choice(string.uppercase) for m in range(15)]) + ap_password = "".join([random.choice(string.lowercase) for m in range(15)]) + + self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3 -m %s -n %s" + % (ap_ssid, ap_password, max_sta, channel)) + if self.check_response("SSC1", "+SAP:OK", 2) is False: + NativeLog.add_trace_critical("Failed to set AP") + return + + # step 2, start thread to let STA JAP + sta_thread_list = [] + for i in range(sta_num): + sta_thread_list.append(STAJAPThread(self, "SSC%d" % (i+2), + ap_ssid, ap_password, delay1, delay2, change_mac)) + for sta_thread in sta_thread_list: + sta_thread.start() + + # step 3, sleep for test time + for i in range(test_time): + self.flush_data("SSC1") + time.sleep(60) + + # step 4, close all thread, will disconnect when exit thread + for sta_thread in sta_thread_list: + sta_thread.exit() + for sta_thread in sta_thread_list: + sta_thread.join() + # wait and make sure disconnect done + time.sleep(1) + + # step 5, join AP and check + sta_num_temp = max_sta if sta_num > max_sta else sta_num + + for i in range(sta_num_temp): + self.serial_write_line("SSC%d" % (i+2), "sta -C -s %s -p %s" % (ap_ssid, ap_password)) + if self.check_response("SSC%d" % (i+2), "+JAP:CONNECTED", 45) is False: + self.set_result("Fail") + break + pass + else: + self.set_result("Succeed") + + +def main(): + pass + +if __name__ == '__main__': + main() + diff --git a/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py b/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py new file mode 100755 index 000000000..24702bfc8 --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py @@ -0,0 +1,240 @@ +from NativeLog import NativeLog +import time +import random + + +ERROR_AP_PROP = {"ssid": "123456789012345678901234567890", + "ssid_len": 30, + "pwd": "12345678901234567890", + "pwd_len": 20, + "channel": 10, + "enc": 3, + "apc": 9, # invalid apc count + } + + +class WifiConnUtilError(StandardError): + pass + + +class WifiConnUtility(object): + + def __init__(self, tc_action): + self.tc_action = tc_action + self.target_type = tc_action.target_type + pass + + def set_mode(self, mode): + ret = True + fail_string = "set mode fail" + cmd = [] + checker_stings = [] + for i in range(2): + if self.target_type[0] == "SSC": + cmd.append("SSCC SSC%d op -S -o %d" % (i+1, mode[i])) + checker_stings.append("SSCP SSC%d C +MODE:OK" % (i+1)) + pass + else: + cmd.append("ATC AT%d CWMODE %d" % (i+1, mode[i])) + checker_stings.append("ATP AT%d L OK" % (i+1)) + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Failed to set mode") + ret = False + return ret + pass + + def _apc_switch(self, outlet_list, action_list): + checker_stings = ["R PC_COM C OK"] + switch_cmd = "APC " + fail_string = "Error when switching APC" + ret = True + + for [_outlet, _action] in zip(action_list, outlet_list): + switch_cmd += " %s %d" % (_action, _outlet) + + if self.tc_action.load_and_exe_one_step(checker_stings, [switch_cmd], + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("Error when switching APC") + ret = False + return ret + pass + + def _set_target_ap(self, ap_prop): + ret = True + fail_string = "set target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + if self.target_type[1] == "SSC": + if ap_prop["pwd"] == "": + cmd = ["SSCC SSC2 ap -S -s %s -t %d" % (ap_prop["ssid"], + ap_prop["enc"]) + ] + else: + cmd = ["SSCC SSC2 ap -S -s %s -p %s -t %d" % (ap_prop["ssid"], + ap_prop["pwd"], + ap_prop["enc"]) + ] + checker_stings = ["SSCP SSC2 C +SAP:OK"] + pass + else: + cmd = ["ATC AT2 CWSAP \"%s\" \"%s\" %d %d" % (ap_prop["ssid"], + ap_prop["pwd"], + ap_prop["channel"], + ap_prop["enc"]) + ] + checker_stings = ["ATR AT2 L OK"] + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical("set target ap fail") + ret = False + return ret + pass + + def setup_ap(self, ap_type, ap_prop): + if ap_type == "target": + ret = self._set_target_ap(ap_prop) + pass + else: + ret = self._apc_switch(["ON"], [ap_prop["apc"]]) + # delay for 5 seconds, wait AP ready + time.sleep(5) + pass + return ret + + def do_scan(self, ap_prop): + fail_string = "Scan fail" + ret = True + # do not check if the set AP can be scanned + if self.target_type[1] == "SSC": + cmd = ["SSCC SSC1 sta -S"] + checker_stings = ["SSCR SSC1 C +SCANDONE"] + pass + else: + cmd = ["ATS AT1 AT+CWLAP"] + checker_stings = ["ATR AT1 L OK"] + pass + if self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=100) is False: + NativeLog.add_trace_critical("Scan fail") + ret = False + return ret + pass + + def _switch_off_target_ap(self, delay): + time.sleep(delay) + self._set_target_ap(ERROR_AP_PROP) + pass + + def _switch_on_target_ap(self, ap_prop, delay): + time.sleep(delay) + self._set_target_ap(ap_prop) + pass + + def _switch_off_ap(self, ap_type, ap_prop, delay_range): + delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 + if ap_type == "target": + self._switch_off_target_ap(delay) + else: + delay -= 1.5 + time.sleep(delay if delay > 0 else 0) + self._apc_switch(["OFF"], [ap_prop["apc"]]) + pass + + def _switch_on_ap(self, ap_type, ap_prop, delay_range): + delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 + if ap_type == "target": + self._switch_on_target_ap(ap_prop, delay) + else: + delay -= 1.5 + time.sleep(delay if delay > 0 else 0) + self._apc_switch(["ON"], [ap_prop["apc"]]) + pass + + def _join_ap(self, ap_prop, test_method): + fail_string = "join target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + if self.target_type[1] == "SSC": + cmd = ["SSCC SSC1 ap -C -s %s -p %s" % (ap_prop["ssid"], + ap_prop["pwd"],) + ] + checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"] + pass + else: + cmd = ["ATC AT1 CWJAP \"%s\" \"%s\"" % (ap_prop["ssid"], + ap_prop["pwd"]) + ] + checker_stings = ["ATR AT1 NC ERROR NC FAIL L OK"] + pass + if test_method == "Normal": + ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_freq=0.1, check_time=350) + if ret is not False: + ret *= 0.1 + else: + ret = self.tc_action.load_and_exe_one_step([], cmd, fail_string) + return ret + pass + + def _check_join_ap_result(self, ap_prop): + ret = False + fail_string = "join ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) + + if self.target_type[1] == "SSC": + checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"] + ret = self.tc_action.load_and_exe_one_step(checker_stings, ["DELAY 0"], + fail_string, check_freq=1, check_time=120) + pass + else: + cmd = ["ATS AT1 AT+CWJAP?"] + checker_stings = ["ATR AT1 NC busy NC No%20AP C +CWJAP"] + for i in range(3): + ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_freq=1, check_time=2) + if ret is not False: + break + time.sleep(15) + + return ret + pass + + def join_ap(self, join_test_method, ap_type, ap_prop, delay): + + if join_test_method == "WRONG_PROP": + _prop = ERROR_AP_PROP + else: + _prop = ap_prop + + ret = self._join_ap(_prop, join_test_method) + + if join_test_method == "OFF_ON": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + self._switch_on_ap(ap_type, ap_prop, delay[1]) + ret = self._check_join_ap_result(_prop) + pass + elif join_test_method == "OFF": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + time.sleep(25) + pass + + return ret + pass + + def do_reconnect(self, reconnect_test_method, ap_type, ap_prop, delay): + ret = True + if reconnect_test_method == "OFF_ON": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + self._switch_on_ap(ap_type, ap_prop, delay[1]) + ret = self._check_join_ap_result(ap_prop) + pass + elif reconnect_test_method == "OFF": + self._switch_off_ap(ap_type, ap_prop, delay[0]) + pass + return ret + pass + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiJAP.py b/components/test/TestCaseScript/WiFiStress/WifiJAP.py new file mode 100755 index 000000000..20dd28041 --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/WifiJAP.py @@ -0,0 +1,218 @@ +import os +import random +import time + +import WifiConnUtility +from NativeLog import NativeLog +from TCAction import TCActionBase +from Utility import Encoding +from Utility import MakeFolder + +STEPS = {"SCAN1": 0x01, "JAP": 0x02, "SCAN2": 0x04, "RECONNECT": 0x08} + +AP_PROP = ("ssid", "ssid_len", "pwd", + "pwd_len", "channel", "enc", "apc") + +JAP_TEST_METHOD = ("Normal", "OFF_ON", "OFF", "WRONG_PROP") + +RECONNECT_TEST_METHOD = ("OFF_ON", "OFF") + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") + + +SSID_LEN_RANGE = (1, 32) # in bytes +ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP +PWD_RANGE = {0: [0, 0], + 1: [5, 5], + 2: [8, 63], + 3: [8, 63], + 4: [8, 63], + } + + +class WifiJAP(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # default value for optional configurable params + self.pwd_len = [8, 64] + self.step_config = [0x03, 0x01, 0x02, 0x0B, 0x0F] + self.join_test_method = ["Normal"] + self.join_delay = [[1.5, 5], [1.5, 5]] + self.reconnect_test_method = ["OFF_ON"] + self.reconnect_delay = [[1.5, 5], [1.5, 6]] + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # read AP list + self.ap_list = [] + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROP, " + cmd_set[i][1][j] + ")))" + exec cmd_string + + folder_path = MakeFolder.make_folder(LOG_FOLDER) + file_name = "JAP_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) + self._performance_log_file = os.path.join(folder_path, file_name) + + # test statistics + self._succeed_count = self._fail_count = self._time_cost_count = 0 + self._total_time = self._longest_time = 0 + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + # get target type "SSC" or "AT" + self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] + self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT") + self._utility = WifiConnUtility.WifiConnUtility(self) + pass + + def _generate_random_ap_prop(self): + ap_prop = dict.fromkeys(AP_PROP) + # generate target ap_value + ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) + ap_prop["channel"] = random.choice(range(1, 14)) + ap_prop["enc"] = random.choice(ENC_TYPE) + ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) + # generate string + if self.target_type[0] == self.target_type[1] == "AT": + ap_prop["ssid"] = Encoding.generate_random_utf8_str(ap_prop["ssid_len"]) + ap_prop["pwd"] = Encoding.generate_random_utf8_str(ap_prop["pwd_len"]) + # NativeLog.add_trace_info("ssid hex is : %x" % ap_prop["ssid"]) + # NativeLog.add_trace_info("pwd hex is : %x" % ap_prop["pwd"]) + else: + ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) + ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) + + return ap_prop + + def _logging_performance(self, ssid, join_method="Normal", time_cost=0): + # log performance to performance log file + with open(self._performance_log_file, "ab+") as f: + # log time and ssid + f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % + (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) + if join_method == "Normal" or join_method == "OFF_ON": + if time_cost is not False: + self._succeed_count += 1 + if join_method == "Normal": + f.write("[Succeed][%f]\r\n" % time_cost) + self._longest_time = (time_cost > self._longest_time and + [time_cost] or [self._longest_time])[0] + self._time_cost_count += 1 + self._total_time += time_cost + else: + f.write("[Succeed][%s]\r\n" % join_method) + else: + self._fail_count += 1 + f.write("[Fail][%s]\r\n" % join_method) + pass + + def _logging_fail_step(self, ssid, step): + with open(self._performance_log_file, "ab+") as f: + f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % + (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) + f.write("[Fail][%s]\r\n" % step) + pass + + def _generate_performance_report(self): + with open(self._performance_log_file, "ab+") as f: + f.write("[Test report] Succeed: %d\r\n" % self._succeed_count) + f.write("[Test report] Failed: %d\r\n" % self._fail_count) + if self._succeed_count > 0 or self._fail_count > 0: + f.write("[Test report] Pass Rate: %f\r\n" % + (self._succeed_count/(self._fail_count+self._succeed_count))) + if self._time_cost_count > 0: + f.write("[Test report] Average time: %f\r\n" % (self._total_time/self._time_cost_count)) + f.write("[Test report] Longest time: %f\r\n" % self._longest_time) + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # mandatory configurable params + try: + target_ap_num = self.target_ap_num + test_count = self.test_count + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) + raise StandardError("Error configuration") + + # prepare ap list + _ap_list = [["target", None]] * target_ap_num + for _ap_prop in self.ap_list: + _ap_list.append(["AP", _ap_prop]) + + # set to correct mode first + self._utility.set_mode([1, 2]) + + for i in xrange(test_count): + _ap = random.choice(_ap_list) + # arrange ap + _ap_type = _ap[0] + _ap_prop = _ap[1] + if _ap_type == "target": + _ap_prop = self._generate_random_ap_prop() + pass + + # step 1 : mandatory step, set up AP + if self._utility.setup_ap(_ap_type, _ap_prop) is False: + self._logging_fail_step(_ap_prop["ssid"], "Set AP") + NativeLog.add_prompt_trace("[Step1] setup AP Fail") + continue + step_config = random.choice(self.step_config) + NativeLog.add_prompt_trace("[Step1] setup AP succeed") + + # step 2 : optional step, do scan before connect + if step_config & STEPS["SCAN1"] != 0: # check option + if self._utility.do_scan(_ap_prop) is False: + self._logging_fail_step(_ap_prop["ssid"], "Scan before JAP") + NativeLog.add_prompt_trace("[Step2] Scan Done") + + # step 3 : mandatory step, join AP + if step_config & STEPS["JAP"] != 0: # check option + _join_test_method = random.choice(self.join_test_method) + time_cost = self._utility.join_ap(_join_test_method, _ap_type, _ap_prop, self.join_delay) + # log performance to performance log file + self._logging_performance(_ap_prop["ssid"], _join_test_method, time_cost) + if time_cost is False: + # do scan once to check if AP exist + self._utility.do_scan(_ap_prop) + continue + NativeLog.add_prompt_trace("[Step3] Join AP done") + + # step 4 : optional step, scan after join AP + if step_config & STEPS["SCAN2"] != 0: # check option + if self._utility.do_scan(_ap_prop) is False: + self._logging_fail_step(_ap_prop["ssid"], "Scan after JAP") + NativeLog.add_prompt_trace("[Step4] Scan done") + + # step 5 : optional step, reconnect test + if step_config & STEPS["RECONNECT"] != 0: # check option + _reconnect_test_method = random.choice(self.reconnect_test_method) + if self._utility.do_reconnect(_reconnect_test_method, + _ap_type, _ap_prop, self.reconnect_delay) is False: + self._logging_fail_step(_ap_prop["ssid"], "Reconnect") + + NativeLog.add_prompt_trace("[Step5] Reconnect done") + # continue to next loop + NativeLog.add_prompt_trace("[WifiJAP] Test count %d done" % i) + + # generate report and cleanup + self._generate_performance_report() + + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py b/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py new file mode 100755 index 000000000..2c2eadc79 --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py @@ -0,0 +1,173 @@ +import os +import time +from TCAction import TCActionBase +from NativeLog import NativeLog +from Utility import RSSICalibrator +from Utility import MakeFolder + +MAX_RSSI = 0 +MIN_RSSI = -110 +MAX_ATT = 60 +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") +AP_PROP_KEY = ("ssid", "password", "apc") + + +class Performance(object): + def __init__(self): + self.succeed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0) + self.failed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0) + self.failed_att = dict.fromkeys(range(MAX_ATT), 0) + pass + + def log_performance(self, result, att, rssi): + if result == "Succeed": + self.succeed_rssi[rssi] += 1 + else: + if rssi == 0: + self.failed_att[att] += 1 + else: + self.failed_rssi[rssi] += 1 + pass + + def __str__(self): + data = "Succeed:\r\n" + for rssi in self.succeed_rssi: + if self.succeed_rssi[rssi] > 0: + data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.succeed_rssi[rssi]) + + data += "Failed during scan:\r\n" + for att in self.failed_att: + if self.failed_att[att] > 0: + data += "\tATT%3d: %2d times\r\n" % (att, self.failed_att[att]) + + data += "Failed during JAP:\r\n" + for rssi in self.failed_rssi: + if self.failed_rssi[rssi] > 0: + data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.failed_rssi[rssi]) + + return data + pass + + +class WifiJAPAtt(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + self.att_test_list = range(60) + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + # read AP list + self.ap_list = [] + for i in range(1, len(cmd_set)): + for j in range(len(cmd_set[i][1])): + if cmd_set[i][1][j] != "": + cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" + exec cmd_string + + self.performance = dict([(ap_prop["ssid"], Performance()) for ap_prop in self.ap_list]) + # create log file + folder_path = MakeFolder.make_folder(LOG_FOLDER) + self.performance_log = os.path.join(folder_path, + "JAP_Att_%s.log" % time.strftime("%d%H%M%S", time.localtime())) + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def log_performance(self, att, rssi, ssid, result): + NativeLog.add_prompt_trace("[%s][ssid %s] [att %s] [rssi %s]" % (result, ssid, att, rssi)) + data = "" + self.performance[ssid].log_performance(result, att, rssi) + for _ssid in self.performance: + data += "[ssid] %s\r\n%s\r\n" % (_ssid, self.performance[_ssid]) + with open(self.performance_log, "wb+") as f: + f.write(data) + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + try: + # configurable params + ap_list = self.ap_list + att_test_list = self.att_test_list + test_count = self.test_count + # configurable params + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for JAPAtt script, error is %s" % e) + raise StandardError("Error configuration") + + for x in xrange(test_count): + for ap_prop in ap_list: + if ap_prop["password"] == "": + # set a default string for open ap + ap_prop["password"] = "1" + + # switch off all outlet, switch on AP outlet + outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") + outlet_config_dict[ap_prop["apc"]] = "ON" + apc_cmd = "APC " + for outlet in outlet_config_dict: + apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) + checker_stings = ["P PC_COM L OK"] + fail_string = "Fail, Fail to switch apc" + if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: + return + + # wait AP ready + time.sleep(20) + + # create RSSI Calibrator + calibrator = RSSICalibrator.Calibrator() + + for att_value in att_test_list: + # step 0 set att value + checker_stings = ["R PC_COM L OK"] + test_action_string = ["ATT %s" % att_value] + fail_string = "Fail, Fail to set att value" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: + continue + + # step 1 get AP RSSI + checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ap_prop["ssid"]] + test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] + fail_string = "Fail, Fail to scan" + rssi = scan_count = 0 + for i in range(3): + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=5) is False: + self.log_performance(att_value, 0, ap_prop["ssid"], "Failed to measure RSSI") + continue + rssi += int(self.test_env.get_variable_by_name("rssi")[1]) + scan_count += 1 + + rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) + + # step 2 connect to AP + checker_stings = ["R SSC1 C +JAP:CONNECTED"] + test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] + fail_string = "Fail, Fail to JAP" + if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, + check_freq=1, check_time=45) is False: + self.log_performance(att_value, rssi, ap_prop["ssid"], "Failed to JAP") + continue + + self.log_performance(att_value, rssi, ap_prop["ssid"], "Succeed") + + # finally, execute done + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py b/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py new file mode 100755 index 000000000..3a95a920f --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py @@ -0,0 +1,273 @@ +import random +import os +import time +import copy + +from TCAction import TCActionBase +from NativeLog import NativeLog +from Utility import Encoding +from Utility import MakeFolder + +AP_PROP = ("ssid", "ssid_len", "pwd", + "pwd_len", "channel", "enc", "apc") + +SMART_TYPE = ("esp-touch", "airkiss") + +TEST_METHOD = ("ssid_broadcast", "ssid_hidden") + +HT = ("ht20", "ht40") + +TEST_STAT = ("total count", "fail count", "total time", "longest time") + +_TEST_STAT_INIT_DICT = {"total count": 0, + "fail count": 0, + "total time": 0, + "longest time": 0, + } + +LOG_FOLDER = os.path.join("AT_LOG", "Performance", "SmartConfig") + + +SSID_LEN_RANGE = (1, 32) # in bytes +ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP +PWD_RANGE = {0: [0, 0], + 1: [5, 5], + 2: [8, 32], + 3: [8, 32], + 4: [8, 32], + } + + +class WifiSmartConfig(TCActionBase.CommonTCActionBase): + + def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): + TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, + timeout=timeout, log_path=log_path) + # default value for optional configurable params + self.test_method = ["ssid_hidden", "ssid_broadcast"] + self.bssid = "ff:ff:ff:ff:ff:ff" + self.ht_ap = dict(zip(HT, [("", ""), + ("", "")])) + self.ap_channel = {"ht20": 1, "ht40": 1} + self.delay_time = 3 # default 3s, wait for scan done + # load param from excel + for i in range(1, len(cmd_set)): + if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": + cmd_string = "self." + cmd_set[i][0] + exec cmd_string + + folder_path = MakeFolder.make_folder(LOG_FOLDER) + file_name = "SmartConfig_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) + self._performance_log_file = os.path.join(folder_path, file_name) + + # type + self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] + self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT") + + # test statistics + # better ways to create? + _test_stat = dict.fromkeys(TEST_STAT, 0) + _test_method = dict.fromkeys(TEST_METHOD) + _test_ht = dict.fromkeys(HT) + self.test_stat = dict.fromkeys(SMART_TYPE) + for i in SMART_TYPE: + self.test_stat[i] = copy.deepcopy(_test_ht) + for j in HT: + self.test_stat[i][j] = copy.deepcopy(_test_method) + for k in TEST_METHOD: + self.test_stat[i][j][k] = copy.deepcopy(_test_stat) + + self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) + pass + + def _generate_random_ap_prop(self, ht_type): + ap_prop = dict.fromkeys(AP_PROP) + # generate target ap_value + ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) + ap_prop["channel"] = self.ap_channel[ht_type] + ap_prop["enc"] = random.choice(ENC_TYPE) + ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) + ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) + ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) + + return ap_prop + + def _logging_performance(self, time_cost, ssid, password, smart_type, test_method, ht_type): + # update test statistics + stat = self.test_stat[smart_type][ht_type][test_method] + stat["total count"] += 1 + # log performance to performance log file + with open(self._performance_log_file, "ab+") as f: + # log time and ssid + if time_cost is not False: + time_tmp = float(time_cost)/10 + f.write("\r\n[%s]:\r\n[Succeed] [%.2f]\r\n" % + (time.strftime("%m-%d %H:%M:%S", time.localtime()), time_tmp)) + stat["total time"] += time_tmp + stat["longest time"] = time_tmp if time_tmp > stat["longest time"] else stat["longest time"] + else: + f.write("\r\n[%s]:\r\n[Fail]\r\n" % + time.strftime("%m-%d %H:%M:%S", time.localtime())) + stat["fail count"] += 1 + + f.write("[%s] [%s] [%s]\r\n" % + (smart_type, test_method, ht_type)) + f.write("[ssid] %s \r\n[password] %s\r\n" % + (ssid, password)) + pass + + def _generate_performance_report(self): + with open(self._performance_log_file, "ab+") as f: + for i in SMART_TYPE: + for j in HT: + for k in TEST_METHOD: + stat = self.test_stat[i][j][k] + f.write("\r\n[Test report] [%s] [%s] [%s]\r\n" % (i, j, k)) + if stat["total count"] > 0: + f.write("[Total]: %d\r\n" % stat["total count"]) + f.write("[Failed]: %d\r\n" % stat["fail count"]) + f.write("[Fail ratio]: %.2f%%\r\n" % + (float(stat["fail count"])/stat["total count"] * 100)) + f.write("[Longest time cost]: %.2f\r\n" % stat["longest time"]) + if (stat["total count"] - stat["fail count"]) > 0: + f.write("[Average time cost]: %.2f\r\n" % + (stat["total time"]/(stat["total count"]-stat["fail count"]))) + + @staticmethod + def cmd_exception_catcher(e): + raise e + pass + + def execute(self): + TCActionBase.TCActionBase.execute(self) + self.result_cntx.start() + + # mandatory configurable params + try: + test_count = self.test_count + delay_time = self.delay_time + except StandardError, e: + NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) + raise StandardError("Error configuration") + + # step 0 : set AT1 mode + fail_string = "Fail to restore init condition" + if self.target_type[0] == "AT": + cmd = ["ATS AT1 AT+CWMODE=1"] + checker_stings = ["R AT1 L OK"] + else: + cmd = ["SSC SSC1 op -S -o 1"] + checker_stings = ["R SSC1 C +MODE:OK"] + if self.target_type[1] == "AT": + cmd.append("ATS AT2 AT+CWMODE=2") + checker_stings.append("R AT2 L OK") + else: + cmd.append("SSC SSC2 op -S -o 2") + checker_stings.append("R SSC2 C +MODE:OK") + + if self.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=150) is False: + NativeLog.add_trace_critical(fail_string) + return + + for i in xrange(test_count): + _method = random.choice(self.test_method) + _ht = random.choice(self.ht) + _ap_prop = self._generate_random_ap_prop(_ht) + _smart_type = random.choice(self.smart_type) + _ht_ap = self.ht_ap[_ht] + is_hidden = 0 if _method == "ssid_broadcast" else 1 + # get ip and + + # step 1 : restore init condition + fail_string = "Fail to restore init condition" + if self.target_type[0] == "AT": + cmd = ["ATS AT1 AT+CWSTOPSMART", "WIFI CONN %s %s " % (_ht_ap[0], _ht_ap[1])] + checker_stings = ["P AT1 L OK", "P PC_COM L OK"] + else: + cmd = ["SSC SSC1 smart -E", "WIFI CONN %s %s " % (_ht_ap[0], _ht_ap[1])] + checker_stings = ["P SSC1 C +SC:OK", "P PC_COM L OK"] + + if self.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=200) is False: + NativeLog.add_trace_critical(fail_string) + continue + NativeLog.add_prompt_trace("Step1 Done") + + # step 2 : test method is ssid_broadcast, then set AP on target 2 + if _method == "ssid_broadcast": + fail_string = "Fail to set AP" + if self.target_type[1] == "AT": + cmd = ["ATS AT2 AT+CWSAP=\"%s\",\"%s\",%d,%d" % (_ap_prop["ssid"], _ap_prop["pwd"], + _ap_prop["channel"], _ap_prop["enc"])] + checker_stings = ["R AT2 L OK"] + else: + cmd = ["SSC SSC2 ap -S -s %s -p %s -n %d -t %d" % (_ap_prop["ssid"], _ap_prop["pwd"], + _ap_prop["channel"], _ap_prop["enc"])] + checker_stings = ["R SSC2 C +SAP:OK"] + + if self.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical(fail_string) + continue + NativeLog.add_prompt_trace("Step2 Done") + + # step 3 : start SMART + fail_string = "Fail to start smart config" + if self.target_type[0] == "AT": + cmd = ["ATS AT1 AT+CWSTARTSMART"] + checker_stings = ["R AT1 L OK"] + else: + cmd = ["SSC SSC1 smart -S -a 0"] + checker_stings = ["R SSC1 C +SC:OK"] + + if self.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=50) is False: + NativeLog.add_trace_critical(fail_string) + continue + # sleep for delay_time seconds to wait scan done or simulate delay config situation + time.sleep(delay_time) + NativeLog.add_prompt_trace("Step3 Done") + + # step 4 : do smart config + fail_string = "Fail in smart config" + cmd = ["SMART %s %s %s %s %d" + % (_smart_type, _ap_prop["ssid"], _ap_prop["pwd"], self.bssid, is_hidden)] + if self.target_type[0] == "AT": + checker_stings = ["P AT1 C Smart%20get%20wifi%20info", + "P LOG1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])] + else: + checker_stings = ["P SSC1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])] + + try: + time_cost = self.load_and_exe_one_step(checker_stings, cmd, + fail_string, check_time=400, + cmd_exception_catcher=self.cmd_exception_catcher) + except StandardError: + NativeLog.add_prompt_trace("Exception occurred during executing cmd") + continue + pass + self._logging_performance(time_cost, _ap_prop["ssid"], _ap_prop["pwd"], + _smart_type, _method, _ht) + if time_cost is False: + NativeLog.add_prompt_trace(fail_string) + continue + + # continue to next loop + NativeLog.add_prompt_trace("[WifiSmartConfig] Test count %d done" % i) + + # generate report and cleanup + self._generate_performance_report() + + self.result_cntx.set_result("Succeed") + + def result_check(self, port_name, data): + TCActionBase.CommonTCActionBase.result_check(self, port_name, data) + self.result_cntx.append_data(port_name, data) + + +def main(): + pass + +if __name__ == '__main__': + main() diff --git a/components/test/TestCaseScript/WiFiStress/__init__.py b/components/test/TestCaseScript/WiFiStress/__init__.py new file mode 100755 index 000000000..7960a3ce8 --- /dev/null +++ b/components/test/TestCaseScript/WiFiStress/__init__.py @@ -0,0 +1 @@ +__all__ = ["WifiJAP", ] \ No newline at end of file diff --git a/components/test/TestCaseScript/__init__.py b/components/test/TestCaseScript/__init__.py new file mode 100755 index 000000000..0cc319da7 --- /dev/null +++ b/components/test/TestCaseScript/__init__.py @@ -0,0 +1,2 @@ +__all__ = ['ATFunc', "ATStress", "IOT", "MeshStress", "StableTest", "TCPIPStress" + "TCPStress", "UDPStress", "WiFiStress"] diff --git a/components/test/TestEnvAll.yml b/components/test/TestEnvAll.yml new file mode 100644 index 000000000..703fafcb6 --- /dev/null +++ b/components/test/TestEnvAll.yml @@ -0,0 +1,275 @@ +test environment: +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_SmartConfig, + test environment detail: '2 SSC target connect with PC by UART. + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_SmartConfig, + test environment detail: '2 AT target connect with PC by UART (AT and LOG port). + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_IOT1, + test environment detail: 'PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART. + + AP todo IOT test are placed near SSC1.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO3, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266之间需要测试的Target_GPIO相连', + test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_1, + test environment detail: 'Web Server target connect with PC by UART. + + PC has 1 wired NIC connected to switch. + + APC, AP also connect with swtich. + + All devices connected with switch use same IP subnet. + + APC control AP power supply.', test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_2, + test environment detail: 'Web Server target connect with PC by UART. + + 4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO1, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_6相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Enterprise, + test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target\ + \ connect with PC by UART.", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO2, test environment detail: '[TBD] 1. 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_15通过面包板相连 + + 2. 可借助面包板, 将GPIO_15, 以及中断函数被打开的8266板的GPIO_2 相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_HighSpeedUART, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 AT target connect with PC by high speed UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_ShieldBox, + test environment detail: '2 SSC target connect with PC by UART. + + Put them to Shield box.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_3, + test environment detail: 'Able to access WAN after connect to AP. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_2, + test environment detail: 'PC has 1 WiFi NIC. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: UART_T1_2, test environment detail: '[TBD] ESP_8266通过UART_0通过USB, UART_1 TXD + 通过 TTLcable 连到PC', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: UART_T1_1, test environment detail: '[TBD] + 将ESP_8266通过UART连到PC', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_ADC, + test environment detail: 'PC has 1 wired NIC connected to AP. + + Analog input connect to AT1 TOUT. + + Multimeter connect to input, able to measure input voltage. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_WEP, + test environment detail: '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ADC, + test environment detail: 'PC has 1 wired NIC connected to AP. + + Analog input connect to SSC1 TOUT. + + Multimeter connect to input, able to measure input voltage. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_APC, + test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ + \ connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with PC by UART.", + test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_8089, + test environment detail: 'PC has 1 wired NIC connected to AP. + + 1 8089 tablet able to run iperf test placed near SSC1. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T1_InitData, + test environment detail: '2 SSC target connect with PC by UART. + + SSC1 use 40M crystal oscillator. + + SSC2 use normal 26M crystal oscillator. + + SSC2 GPIO connect to SSC1 power control pin.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: SSC_T1_Timer, test environment detail: '[TBD] + 通过串口工具调节Timer, 将GPIO_13端口连接到逻辑分析仪', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 3.0, script path: EnvBase.py, tag: SSC_T3_PhyMode, + test environment detail: '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_JAP, + test environment detail: "Several AP are placed near AT target.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC).\nAPC control\ + \ power supply for all APs. \n2 AT target connect with PC by UART (AT and LOG\ + \ port).", test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_PhyMode, + test environment detail: '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ShieldBox, + test environment detail: 'refer to figure. + + All APs and APC should be set to the same IP subnet. + + PC wired NIC should set static IP address within the same subnet with AP. + + Must use onboard wired NIC.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: TempSensor_T1_1, + test environment detail: 'Tempeture sensor target connect with PC by UART. + + AP support DTIM placed with AT target. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of TempSensor1. + + PC has 1 wired NIC connected to switch. + + APC, AP also connect with swtich. + + All devices connected with switch use the same IP subnet. + + APC control AP power supply.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_SmartConfigIOT, + test environment detail: '1 AT target connect with PC by UART (AT and LOG port). + + PC has 1 wired NIC connect to Common AP. + + Several AP are placed near AT target. + + Several smart phone installed test APK are placed near AT target.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_Sleep, + test environment detail: 'AP support DTIM placed with AT target. + + 2 AT target connect with PC by UART (AT and LOG port). + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of AT1. + + AT1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO.', + test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_1, + test environment detail: 5 SSC target connect with PC by UART., test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_TempBox, + test environment detail: '1 SSC target connect with PC by UART. + + Put SSC target to temperature box.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_1, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T6_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 6 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: IR_T2_1, test environment detail: '[TBD] 本测试为非自动测试, 红外能够做到数据收发吻合即可通过', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_VDD33, + test environment detail: '1 SSC target connect with PC by UART. + + Multimeter connect to VDD33, able to measure voltage.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: PWM_T1_1, test environment detail: "[TBD]\ + \ 1. PWM OS SDK 以及 Non-OS SDK的测试建议分开进行, 放在不同的文件夹, 防止文件命名混淆\n2. 分析CSV文件的Python脚本只能分析单个channel\ + \ \n3. 如果Init脚本打印\"Network Error\" 检查TCP Server是不是正常发送data", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: NVS_T1_1, + test environment detail: '1 NVS target connect with PC by UART. + + 1 SSC target connect with PC by UART. + + SSC2 GPIO connect to NVS1 power control pin.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep2, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s RSTB pin connect with AT2''s GPIO.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep1, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO. + + SSC1''s XPD connect with RSTB.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_1, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_2, + test environment detail: 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC2, + test environment detail: "Able to access WAN after connect to AP.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply.\nPC has 1 WiFi NIC.\n1 AT target connect with PC by UART (AT\ + \ and LOG port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC1, + test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ + \ connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply. \nPC has 1 WiFi NIC. \n1 AT target connect with PC by UART\ + \ (AT and LOG port).", test script: EnvBase} From 2fe759ce1d9595e4b273d10b1dc39e782a3eb5b7 Mon Sep 17 00:00:00 2001 From: Yinling Date: Mon, 26 Sep 2016 14:32:58 +0800 Subject: [PATCH 13/36] update CI config file: 1. add night job define (need to set variable in trigger to run night jobs) 2. move auto generated part to the end of file 3. add auto generated CI jobs --- .gitlab-ci.yml | 201 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 162 insertions(+), 39 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e0cea70fa..094579575 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -106,46 +106,8 @@ test_build_system: - ./make/test_build_system.sh - -# template for test jobs -.test_template: &test_template - stage: test - when: on_success - only: - - master - - triggers - - variables: - # need user to set SDK_NAME and CONFIG_FILE (may need to set BIN_PATH and APP_NAME later) in before_script - SCRIPT_PATH: /home/gitlab-runner/auto_test_script - BIN_PATH: ${CI_PROJECT_DIR}/SSC/build/ - APP_NAME: ssc - LOG_PATH: $CI_PROJECT_DIR/$CI_BUILD_REF - - artifacts: - when: always - paths: - - $LOG_PATH - expire_in: 6 mos - - script: - - cd $SCRIPT_PATH - - python CIRunner.py -l $LOG_PATH -c $SDK_NAME/$CONFIG_FILE bin_path $APP_NAME $BIN_PATH - -sanity_test: - <<: *test_template - tags: - - ESP32 - - SSC_T1_1 - - SSC_T2_1 - - SSC_T1_WAN - before_script: - - SDK_NAME=ESP32_IDF - - CONFIG_FILE=sanity_test.yml - - push_master_to_github: - before_script: + before_script: - echo "Not setting up GitLab key, not fetching submodules" stage: deploy only: @@ -165,3 +127,164 @@ push_master_to_github: - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config - git remote add github git@github.com:espressif/esp-idf.git - git push --follow-tags github HEAD:master + + +# AUTO GENERATED PART START, DO NOT MODIFY CONTENT BELOW +# template for test jobs +.test_template: &test_template + stage: test + when: on_success + only: + - master + - triggers + + variables: + LOCAL_ENV_CONFIG_PATH: "/home/gitlab-runner/LocalConfig/ESP32" + BIN_PATH: "$CI_PROJECT_DIR/SSC/build/" + APP_NAME: "ssc" + LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" + # assume it's tests are put in "components/test" + TEST_CASE_FILE_PATH: "components/test" + # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary + CONFIG_FILE: "jobs must set this variable" + + artifacts: + when: always + paths: + - $LOG_PATH + expire_in: 6 mos + + script: + # assume that auto_test_script is a sub-module of SDK, otherwise add as submodule here + - git submodule update --init --recursive + - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH + + +# template for overnight test jobs +.test_template_night: &test_template_night + <<: *test_template + only: + # can only be triggered + - triggers + script: + # must be night build triggers, otherwise exit without test + - test $NIGHT_BUILD != "Yes" || exit + # assume that auto_test_script is a sub-module of SDK + - git submodule update --init --recursive + - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH + +Function_SYS_01: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_SYS_01.yml + +Function_WIFI_01: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_APC + - SSC_T1_1 + - SSC_T1_WEP + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_WIFI_01.yml + +Function_WIFI_02: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_APC + - SSC_T1_1 + - SSC_T1_WEP + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_WIFI_02.yml + +Function_TCPIP_01: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_01.yml + +Function_TCPIP_02: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_02.yml + +Function_TCPIP_03: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_03.yml + +Function_TCPIP_04: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_04.yml + +Function_TCPIP_05: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_05.yml + +Function_TCPIP_06: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T2_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_06.yml + +Function_TCPIP_07: + <<: *test_template_night + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - SDK_NAME=ESP32_IDF + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=Function_TCPIP_07.yml + From e2dd6ebcf08334c6d4bf16f8a3e3056afb3967d3 Mon Sep 17 00:00:00 2001 From: Yinling Date: Mon, 26 Sep 2016 19:24:51 +0800 Subject: [PATCH 14/36] revise .gitlab-ci.yml: 1. remove duplicated code 2. fix path error for config file --- .gitlab-ci.yml | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 094579575..a0e59d62f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -139,14 +139,13 @@ push_master_to_github: - triggers variables: - LOCAL_ENV_CONFIG_PATH: "/home/gitlab-runner/LocalConfig/ESP32" + # LOCAL_ENV_CONFIG_PATH: define LOCAL_ENV_CONFIG in jobs because this variable may need complicated logic to generate BIN_PATH: "$CI_PROJECT_DIR/SSC/build/" APP_NAME: "ssc" LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" - # assume it's tests are put in "components/test" - TEST_CASE_FILE_PATH: "components/test" + # assume tests are put in "components/test" + TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/test" # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary - CONFIG_FILE: "jobs must set this variable" artifacts: when: always @@ -179,9 +178,8 @@ Function_SYS_01: - ESP32_IDF - SSC_T1_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_SYS_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_SYS_01.yml Function_WIFI_01: <<: *test_template @@ -192,9 +190,8 @@ Function_WIFI_01: - SSC_T1_WEP - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_WIFI_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_01.yml Function_WIFI_02: <<: *test_template @@ -205,9 +202,8 @@ Function_WIFI_02: - SSC_T1_WEP - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_WIFI_02.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_02.yml Function_TCPIP_01: <<: *test_template @@ -217,9 +213,8 @@ Function_TCPIP_01: - SSC_T1_2 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_01.yml Function_TCPIP_02: <<: *test_template @@ -228,9 +223,8 @@ Function_TCPIP_02: - SSC_T1_1 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_02.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_02.yml Function_TCPIP_03: <<: *test_template @@ -239,9 +233,8 @@ Function_TCPIP_03: - SSC_T1_1 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_03.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_03.yml Function_TCPIP_04: <<: *test_template @@ -251,9 +244,8 @@ Function_TCPIP_04: - SSC_T1_2 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_04.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_04.yml Function_TCPIP_05: <<: *test_template @@ -263,9 +255,8 @@ Function_TCPIP_05: - SSC_T1_2 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_05.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_05.yml Function_TCPIP_06: <<: *test_template @@ -274,9 +265,8 @@ Function_TCPIP_06: - SSC_T1_1 - SSC_T2_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_06.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_06.yml Function_TCPIP_07: <<: *test_template_night @@ -284,7 +274,6 @@ Function_TCPIP_07: - ESP32_IDF - SSC_T1_1 before_script: - - SDK_NAME=ESP32_IDF - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=Function_TCPIP_07.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_07.yml From 99ebc93abb14ee2a6b509bdf8442138472a4ef32 Mon Sep 17 00:00:00 2001 From: Yinling Date: Mon, 26 Sep 2016 19:26:53 +0800 Subject: [PATCH 15/36] modify document to add how to run test locally --- components/test/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/components/test/README.md b/components/test/README.md index 0e4172d62..3267e47ca 100644 --- a/components/test/README.md +++ b/components/test/README.md @@ -33,3 +33,15 @@ test --- CIConfigs --- sanity_test1.yml (Runner config files) 2. use [auto_test_script](https://gitlab.espressif.cn:6688/yinling/auto_test_script) to load the modified case and verify the modification 3. create a merge request and assign to HYL (or add comment @yinling for merging test). After review it will be merged to SDK and will be The cases will be synced to database in auto_test_script. + + +## Run test case locally + +1. clone auto_test_script (ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git) from gitlab +2. create test environment: + 1. search test case (search test case ID in components/test/TestCaseAll.yml, get the "test environment" value + 2. goto [test environment list](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Documents/TestEnvList.md), find the link and goto the environment detail page + 3. create test environment according to figure and description + 4. [config test environment](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestEnvConfig.DesignNote.md). All parameters in table "Parameters require config before use" MUST be configured. +3. run test cases with [CIRunner.py](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/RunnerConfigs.DesignNote.md) + From 745ecef2630c468507de04b88d5422bc1bc5264c Mon Sep 17 00:00:00 2001 From: Yinling Date: Tue, 27 Sep 2016 16:22:18 +0800 Subject: [PATCH 16/36] auto_test_script will be cloned from gitlab --- .gitlab-ci.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a0e59d62f..730e72686 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -154,8 +154,8 @@ push_master_to_github: expire_in: 6 mos script: - # assume that auto_test_script is a sub-module of SDK, otherwise add as submodule here - - git submodule update --init --recursive + - git clone ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git + - cd auto_test_script - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH @@ -168,8 +168,8 @@ push_master_to_github: script: # must be night build triggers, otherwise exit without test - test $NIGHT_BUILD != "Yes" || exit - # assume that auto_test_script is a sub-module of SDK - - git submodule update --init --recursive + - git clone ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git + - cd auto_test_script - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH Function_SYS_01: @@ -185,7 +185,6 @@ Function_WIFI_01: <<: *test_template tags: - ESP32_IDF - - SSC_T1_APC - SSC_T1_1 - SSC_T1_WEP - SSC_T2_1 @@ -197,7 +196,6 @@ Function_WIFI_02: <<: *test_template tags: - ESP32_IDF - - SSC_T1_APC - SSC_T1_1 - SSC_T1_WEP - SSC_T2_1 @@ -277,3 +275,12 @@ Function_TCPIP_07: - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_07.yml +Function_WIFI_03: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_APC + before_script: + - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml + From 4de2054541e9705fbd069676baffd8ad9c146b6c Mon Sep 17 00:00:00 2001 From: Yinling Date: Tue, 27 Sep 2016 16:22:51 +0800 Subject: [PATCH 17/36] fix bugs in config files: 1. filter name is "Add" not "ADD" 2. SSC_T1_APC is special environment 3. remove "debug mode" from config as it will implemented with other ways --- components/test/CIConfigs/Function_SYS_01.yml | 4 +- .../test/CIConfigs/Function_TCPIP_01.yml | 4 +- .../test/CIConfigs/Function_TCPIP_02.yml | 4 +- .../test/CIConfigs/Function_TCPIP_03.yml | 4 +- .../test/CIConfigs/Function_TCPIP_04.yml | 4 +- .../test/CIConfigs/Function_TCPIP_05.yml | 4 +- .../test/CIConfigs/Function_TCPIP_06.yml | 4 +- .../test/CIConfigs/Function_TCPIP_07.yml | 4 +- .../test/CIConfigs/Function_WIFI_01.yml | 14 +- .../test/CIConfigs/Function_WIFI_02.yml | 13 +- .../test/CIConfigs/Function_WIFI_03.yml | 5 + components/test/TestCaseAll.yml | 196 ------------------ components/test/TestEnvAll.yml | 2 +- 13 files changed, 35 insertions(+), 227 deletions(-) create mode 100644 components/test/CIConfigs/Function_WIFI_03.yml diff --git a/components/test/CIConfigs/Function_SYS_01.yml b/components/test/CIConfigs/Function_SYS_01.yml index 501f15f6b..51a689902 100644 --- a/components/test/CIConfigs/Function_SYS_01.yml +++ b/components/test/CIConfigs/Function_SYS_01.yml @@ -1,5 +1,5 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: -- ADD: +- Add: ID: [SYS_MISC_0101, SYS_MISC_0201] diff --git a/components/test/CIConfigs/Function_TCPIP_01.yml b/components/test/CIConfigs/Function_TCPIP_01.yml index 9b43ab589..7eb46ef55 100644 --- a/components/test/CIConfigs/Function_TCPIP_01.yml +++ b/components/test/CIConfigs/Function_TCPIP_01.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [TCPIP_ICMP_0101, TCPIP_ARP_0202, ^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, TCPIP_DHCP_0302, TCPIP_DHCP_0301, TCPIP_ARP_0204, TCPIP_TCP_0412, TCPIP_TCP_0403, TCPIP_TCP_0402, TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, TCPIP_TCP_0404, diff --git a/components/test/CIConfigs/Function_TCPIP_02.yml b/components/test/CIConfigs/Function_TCPIP_02.yml index 7e0a3ead4..0cafa781b 100644 --- a/components/test/CIConfigs/Function_TCPIP_02.yml +++ b/components/test/CIConfigs/Function_TCPIP_02.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [^TCPIP_IGMP_0104, ^TCPIP_UDP_0110, TCPIP_IGMP_0104, TCPIP_IGMP_0103, TCPIP_IGMP_0102, TCPIP_IGMP_0101, ^TCPIP_UDP_0201, ^TCPIP_ICMP_0101, TCPIP_UDP_0108, TCPIP_UDP_0109, TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0104, TCPIP_UDP_0105, TCPIP_UDP_0102, diff --git a/components/test/CIConfigs/Function_TCPIP_03.yml b/components/test/CIConfigs/Function_TCPIP_03.yml index 33dcd14be..cdaad2586 100644 --- a/components/test/CIConfigs/Function_TCPIP_03.yml +++ b/components/test/CIConfigs/Function_TCPIP_03.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [^TCPIP_UDP_0305, ^TCPIP_UDP_0304, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0102, ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, diff --git a/components/test/CIConfigs/Function_TCPIP_04.yml b/components/test/CIConfigs/Function_TCPIP_04.yml index af2cc7d22..3476bb706 100644 --- a/components/test/CIConfigs/Function_TCPIP_04.yml +++ b/components/test/CIConfigs/Function_TCPIP_04.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, TCPIP_UDP_0114, TCPIP_UDP_0111, TCPIP_UDP_0110, TCPIP_UDP_0113, TCPIP_UDP_0112, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, ^TCPIP_TCP_0207, TCPIP_TCP_0501, ^TCPIP_DNS_0101, ^TCPIP_DNS_0103, ^TCPIP_DNS_0102, diff --git a/components/test/CIConfigs/Function_TCPIP_05.yml b/components/test/CIConfigs/Function_TCPIP_05.yml index a89ece34c..85b6e72d8 100644 --- a/components/test/CIConfigs/Function_TCPIP_05.yml +++ b/components/test/CIConfigs/Function_TCPIP_05.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [TCPIP_UDP_0305, TCPIP_UDP_0306, TCPIP_UDP_0307, TCPIP_UDP_0301, TCPIP_UDP_0302, TCPIP_UDP_0303, ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, diff --git a/components/test/CIConfigs/Function_TCPIP_06.yml b/components/test/CIConfigs/Function_TCPIP_06.yml index 929aafd13..1aceda2b7 100644 --- a/components/test/CIConfigs/Function_TCPIP_06.yml +++ b/components/test/CIConfigs/Function_TCPIP_06.yml @@ -1,7 +1,7 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [TCPIP_DHCP_0201, ^TCPIP_TCP_0208, TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, ^TCPIP_TCP_0411, TCPIP_ARP_0203, ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, TCPIP_ARP_0201, TCPIP_TCP_0115, TCPIP_TCP_0114, diff --git a/components/test/CIConfigs/Function_TCPIP_07.yml b/components/test/CIConfigs/Function_TCPIP_07.yml index d42b5902a..7cf627999 100644 --- a/components/test/CIConfigs/Function_TCPIP_07.yml +++ b/components/test/CIConfigs/Function_TCPIP_07.yml @@ -1,5 +1,5 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: -- ADD: +- Add: ID: [TCPIP_TCP_0405, ^TCPIP_TCP_0405] diff --git a/components/test/CIConfigs/Function_WIFI_01.yml b/components/test/CIConfigs/Function_WIFI_01.yml index 594a1fc21..4a6b3e0c1 100644 --- a/components/test/CIConfigs/Function_WIFI_01.yml +++ b/components/test/CIConfigs/Function_WIFI_01.yml @@ -1,11 +1,11 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: +- Add: ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, ^WIFI_CONN_0903, WIFI_SCAN_0103, WIFI_SCAN_0102, WIFI_SCAN_0101, WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0702, - WIFI_CONN_0703, WIFI_CONN_0701, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0701, - ^WIFI_CONN_0703, ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, - ^WIFI_ADDR_0102, WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, - WIFI_CONN_0301, ^WIFI_CONN_0801, WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, - WIFI_CONN_0502] + WIFI_CONN_0703, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0703, ^WIFI_SCAN_0102, + ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, ^WIFI_ADDR_0102, WIFI_CONN_0401, + ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_CONN_0301, ^WIFI_CONN_0801, + WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, ^WIFI_CONN_0401, + WIFI_MODE_0101] diff --git a/components/test/CIConfigs/Function_WIFI_02.yml b/components/test/CIConfigs/Function_WIFI_02.yml index 30735791b..78ef087b5 100644 --- a/components/test/CIConfigs/Function_WIFI_02.yml +++ b/components/test/CIConfigs/Function_WIFI_02.yml @@ -1,9 +1,8 @@ -Config: {debug mode: false, execute count: 1, execute order: in order} +Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: -- ADD: - ID: [^WIFI_CONN_0401, WIFI_MODE_0101, WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, - ^WIFI_CONN_0902, ^WIFI_CONN_0901, WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0902, - WIFI_CONN_0903, WIFI_CONN_0503, ^WIFI_CONN_0104, WIFI_CONN_0101, WIFI_CONN_0102, - WIFI_CONN_0103, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, ^WIFI_CONN_0503, - ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] +- Add: + ID: [WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, ^WIFI_CONN_0901, WIFI_CONN_0601, + WIFI_CONN_0901, WIFI_CONN_0903, WIFI_CONN_0503, ^WIFI_CONN_0104, WIFI_CONN_0101, + WIFI_CONN_0102, WIFI_CONN_0103, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, + ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] diff --git a/components/test/CIConfigs/Function_WIFI_03.yml b/components/test/CIConfigs/Function_WIFI_03.yml new file mode 100644 index 000000000..1ac97dece --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_03.yml @@ -0,0 +1,5 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [WIFI_CONN_0701, ^WIFI_CONN_0701, ^WIFI_CONN_0902, WIFI_CONN_0902] diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml index c5e10b794..cf634005d 100644 --- a/components/test/TestCaseAll.yml +++ b/components/test/TestCaseAll.yml @@ -2065,64 +2065,6 @@ test cases: test point 1: basic function test point 2: wifi connect status check version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0701 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - [R SSC1 C QAP] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:0'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:1', 'R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:5'] - - - APC OFF - - [P PC_COM L OK, P SSC1 C bcn_timout] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:4'] - - - APC ON - - [P PC_COM L OK] - comment: '' - execution time: 0.0 - expected result: '1. idle state - - 2. connecting state - - 3. got IP state - - 4. connect fail state' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. sta disconnected, query status - - 2. sta connect to AP, query status - - 3. got IP, query status - - 4. AP power off, query status when beacon timeout' - sub module: WIFI Connect - summary: check wifi status idle, connecting, got ip and connect fail - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0102 SDK: '8266_NonOS @@ -2603,64 +2545,6 @@ test cases: test point 1: basic function test point 2: IGMP API parameter check version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0701 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - [R SSC1 C QAP] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:0'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:1', 'R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:5'] - - - APC OFF - - [P PC_COM L OK, P SSC1 C bcn_timout] - - - SSC SSC1 sta -Q - - ['R SSC1 C +STA_STATUS:4'] - - - APC ON - - [P PC_COM L OK] - comment: '' - execution time: 0.0 - expected result: '1. idle state - - 2. connecting state - - 3. got IP state - - 4. connect fail state' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1. sta disconnected, query status - - 2. sta connect to AP, query status - - 3. got IP, query status - - 4. AP power off, query status when beacon timeout' - sub module: WIFI Connect - summary: check wifi status idle, connecting, got ip and connect fail - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0703 SDK: '8266_NonOS @@ -7985,46 +7869,6 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0902 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - APC OFF - - [P PC_COM L OK, 'R SSC1 C +JAP:DISCONNECTED,1,200'] - - - APC ON - - [P PC_COM L OK] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. disconnect event REASON_BEACON_TIMEOUT' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1. connect to AP - - 2. AP power off' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_BEACON_TIMEOUT - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0901 SDK: '8266_NonOS @@ -12218,46 +12062,6 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0902 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - APC OFF - - [P PC_COM L OK, 'R SSC1 C +JAP:DISCONNECTED,1,200'] - - - APC ON - - [P PC_COM L OK] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. disconnect event REASON_BEACON_TIMEOUT' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. connect to AP - - 2. AP power off' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_BEACON_TIMEOUT - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_ARP_0203 SDK: '8266_NonOS diff --git a/components/test/TestEnvAll.yml b/components/test/TestEnvAll.yml index 703fafcb6..a978f5f73 100644 --- a/components/test/TestEnvAll.yml +++ b/components/test/TestEnvAll.yml @@ -97,7 +97,7 @@ test environment: Multimeter connect to input, able to measure input voltage. 1 SSC target connect with PC by UART.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_APC, +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_APC, test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ \ connected to APC (static IP within the same subnet with APC). \nAPC control\ \ AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with PC by UART.", From 024a1ce26060a28d72ec09503d71f60506dafe9a Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 28 Sep 2016 19:43:45 +0800 Subject: [PATCH 18/36] add KnownIssues file to test: add known issues to this file so that they will be exculded in CI results --- components/test/KnownIssues | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 components/test/KnownIssues diff --git a/components/test/KnownIssues b/components/test/KnownIssues new file mode 100644 index 000000000..e69de29bb From 59b35eb16ac06f561555c73f2962e70ba257b459 Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 28 Sep 2016 19:48:38 +0800 Subject: [PATCH 19/36] sync several changes from auto_test_script: 1. use variable for gitlab server 2. add LOCAL_ENV_CONFIG_PATH to template 2. update jobs with feature "allow fail" --- .gitlab-ci.yml | 142 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 113 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 730e72686..ad6db4169 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -139,7 +139,8 @@ push_master_to_github: - triggers variables: - # LOCAL_ENV_CONFIG_PATH: define LOCAL_ENV_CONFIG in jobs because this variable may need complicated logic to generate + # LOCAL_ENV_CONFIG_PATH: define in template and jobs can overwrite if required + LOCAL_ENV_CONFIG_PATH: /home/gitlab-runner/LocalConfig/ESP32_IDF BIN_PATH: "$CI_PROJECT_DIR/SSC/build/" APP_NAME: "ssc" LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" @@ -154,7 +155,7 @@ push_master_to_github: expire_in: 6 mos script: - - git clone ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git + - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH @@ -168,7 +169,7 @@ push_master_to_github: script: # must be night build triggers, otherwise exit without test - test $NIGHT_BUILD != "Yes" || exit - - git clone ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git + - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH @@ -178,18 +179,18 @@ Function_SYS_01: - ESP32_IDF - SSC_T1_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_SYS_01.yml Function_WIFI_01: <<: *test_template tags: - ESP32_IDF + - SSC_T3_PhyMode - SSC_T1_1 - SSC_T1_WEP + - SSC_T2_PhyMode - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_01.yml Function_WIFI_02: @@ -198,20 +199,28 @@ Function_WIFI_02: - ESP32_IDF - SSC_T1_1 - SSC_T1_WEP + - SSC_T2_PhyMode - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_02.yml +Function_WIFI_03: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T3_PhyMode + - SSC_T1_1 + - SSC_T2_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml + Function_TCPIP_01: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - - SSC_T1_2 - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_01.yml Function_TCPIP_02: @@ -221,7 +230,6 @@ Function_TCPIP_02: - SSC_T1_1 - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_02.yml Function_TCPIP_03: @@ -231,7 +239,6 @@ Function_TCPIP_03: - SSC_T1_1 - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_03.yml Function_TCPIP_04: @@ -239,10 +246,8 @@ Function_TCPIP_04: tags: - ESP32_IDF - SSC_T1_1 - - SSC_T1_2 - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_04.yml Function_TCPIP_05: @@ -250,37 +255,116 @@ Function_TCPIP_05: tags: - ESP32_IDF - SSC_T1_1 - - SSC_T1_2 - SSC_T2_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_05.yml Function_TCPIP_06: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T1_1 - - SSC_T2_1 - before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_06.yml - -Function_TCPIP_07: <<: *test_template_night tags: - ESP32_IDF - SSC_T1_1 before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_07.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_06.yml -Function_WIFI_03: +Function_WIFI_04: <<: *test_template tags: - ESP32_IDF - SSC_T1_APC before_script: - - LOCAL_ENV_CONFIG_PATH=/home/gitlab-runner/LocalConfig/ESP32_IDF - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_04.yml + +Function_WIFI_05: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_05.yml + +Function_WIFI_06: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_06.yml + +Function_WIFI_07: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_07.yml + +Function_WIFI_08: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_08.yml + +Function_WIFI_09: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_09.yml + +Function_TCPIP_07: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_07.yml + +Function_TCPIP_08: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T2_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_08.yml + +Function_TCPIP_09: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_09.yml + +Function_TCPIP_10: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + - SSC_T2_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_10.yml + +Function_TCPIP_11: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_11.yml + +Function_TCPIP_12: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_12.yml From d695d4019659927e9afc37e33b4cd656cc6bea2e Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 28 Sep 2016 19:52:04 +0800 Subject: [PATCH 20/36] add note that test folder is for internal use. Will move data in readme to wiki except first two notes. --- components/test/README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/components/test/README.md b/components/test/README.md index 3267e47ca..f23153bca 100644 --- a/components/test/README.md +++ b/components/test/README.md @@ -1,4 +1,7 @@ -# The test folder in SDK + +# Note: The test cases in this folder are for Espressif internal use. + +# Goto internal project wiki Testing page for detail about this folder. ## File Structure @@ -45,3 +48,14 @@ After review it will be merged to SDK and will be The cases will be synced to da 4. [config test environment](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestEnvConfig.DesignNote.md). All parameters in table "Parameters require config before use" MUST be configured. 3. run test cases with [CIRunner.py](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/RunnerConfigs.DesignNote.md) + + +## exclude known issues for CI +the test cases listed in file "KnownIssues" will be excluded by CI when calculating results + +Editing KnownIssues file is very simple, one single line for the ID for each case. +``` +TCPIP_TCP_0101 +TCPIP_TCP_0201 +... +``` \ No newline at end of file From 5fab6c36c887feef3119c635c55b8b46e3b26073 Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 28 Sep 2016 19:54:43 +0800 Subject: [PATCH 21/36] update job configs for allow case fail feature --- .../test/CIConfigs/Function_TCPIP_01.yml | 13 +- .../test/CIConfigs/Function_TCPIP_02.yml | 13 +- .../test/CIConfigs/Function_TCPIP_03.yml | 13 +- .../test/CIConfigs/Function_TCPIP_04.yml | 13 +- .../test/CIConfigs/Function_TCPIP_05.yml | 12 +- .../test/CIConfigs/Function_TCPIP_06.yml | 7 +- .../test/CIConfigs/Function_TCPIP_07.yml | 7 +- .../test/CIConfigs/Function_TCPIP_08.yml | 10 + .../test/CIConfigs/Function_TCPIP_09.yml | 10 + .../test/CIConfigs/Function_TCPIP_10.yml | 10 + .../test/CIConfigs/Function_TCPIP_11.yml | 10 + .../test/CIConfigs/Function_TCPIP_12.yml | 6 + .../test/CIConfigs/Function_WIFI_01.yml | 11 +- .../test/CIConfigs/Function_WIFI_02.yml | 10 +- .../test/CIConfigs/Function_WIFI_03.yml | 5 +- .../test/CIConfigs/Function_WIFI_04.yml | 5 + .../test/CIConfigs/Function_WIFI_05.yml | 10 + .../test/CIConfigs/Function_WIFI_06.yml | 10 + .../test/CIConfigs/Function_WIFI_07.yml | 10 + .../test/CIConfigs/Function_WIFI_08.yml | 10 + .../test/CIConfigs/Function_WIFI_09.yml | 10 + components/test/TestCaseAll.yml | 3877 +++++++++++++++++ 22 files changed, 4029 insertions(+), 53 deletions(-) create mode 100644 components/test/CIConfigs/Function_TCPIP_08.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_09.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_10.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_11.yml create mode 100644 components/test/CIConfigs/Function_TCPIP_12.yml create mode 100644 components/test/CIConfigs/Function_WIFI_04.yml create mode 100644 components/test/CIConfigs/Function_WIFI_05.yml create mode 100644 components/test/CIConfigs/Function_WIFI_06.yml create mode 100644 components/test/CIConfigs/Function_WIFI_07.yml create mode 100644 components/test/CIConfigs/Function_WIFI_08.yml create mode 100644 components/test/CIConfigs/Function_WIFI_09.yml diff --git a/components/test/CIConfigs/Function_TCPIP_01.yml b/components/test/CIConfigs/Function_TCPIP_01.yml index 7eb46ef55..29542e9fe 100644 --- a/components/test/CIConfigs/Function_TCPIP_01.yml +++ b/components/test/CIConfigs/Function_TCPIP_01.yml @@ -2,10 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [TCPIP_ICMP_0101, TCPIP_ARP_0202, ^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, - TCPIP_DHCP_0302, TCPIP_DHCP_0301, TCPIP_ARP_0204, TCPIP_TCP_0412, TCPIP_TCP_0403, - TCPIP_TCP_0402, TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, TCPIP_TCP_0404, - TCPIP_TCP_0408, ^TCPIP_TCP_0202, TCPIP_TCP_0110, ^TCPIP_TCP_0203, TCPIP_DHCP_0101, - TCPIP_DHCP_0103, TCPIP_DHCP_0102, ^TCPIP_UDP_0303, ^TCPIP_UDP_0302, ^TCPIP_UDP_0301, - TCPIP_DNS_0102, TCPIP_DNS_0101, TCPIP_IP_0101, TCPIP_IP_0102, ^TCPIP_IGMP_0102, - ^TCPIP_IGMP_0101] + ID: [TCPIP_ARP_0202, ^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, TCPIP_DHCP_0302, + TCPIP_DHCP_0301, TCPIP_ARP_0204, TCPIP_TCP_0412, TCPIP_TCP_0403, TCPIP_TCP_0402, + TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, TCPIP_TCP_0404, TCPIP_TCP_0408, + ^TCPIP_TCP_0202, TCPIP_TCP_0110, ^TCPIP_TCP_0203, TCPIP_DHCP_0101, TCPIP_DHCP_0103, + TCPIP_DHCP_0102, TCPIP_IP_0101, TCPIP_IP_0102, ^TCPIP_IGMP_0102, ^TCPIP_IGMP_0101, + ^TCPIP_IGMP_0104, TCPIP_IGMP_0104, TCPIP_IGMP_0103, TCPIP_IGMP_0102, TCPIP_IGMP_0101] diff --git a/components/test/CIConfigs/Function_TCPIP_02.yml b/components/test/CIConfigs/Function_TCPIP_02.yml index 0cafa781b..e40f69db5 100644 --- a/components/test/CIConfigs/Function_TCPIP_02.yml +++ b/components/test/CIConfigs/Function_TCPIP_02.yml @@ -2,10 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_IGMP_0104, ^TCPIP_UDP_0110, TCPIP_IGMP_0104, TCPIP_IGMP_0103, TCPIP_IGMP_0102, - TCPIP_IGMP_0101, ^TCPIP_UDP_0201, ^TCPIP_ICMP_0101, TCPIP_UDP_0108, TCPIP_UDP_0109, - TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0104, TCPIP_UDP_0105, TCPIP_UDP_0102, - TCPIP_UDP_0103, TCPIP_UDP_0101, TCPIP_IGMP_0204, TCPIP_IGMP_0201, TCPIP_IGMP_0202, - TCPIP_IGMP_0203, ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, - ^TCPIP_TCP_0402, ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, TCPIP_UDP_0201, ^TCPIP_UDP_0307, - ^TCPIP_UDP_0306] + ID: [^TCPIP_UDP_0201, TCPIP_UDP_0108, TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0105, + TCPIP_UDP_0101, TCPIP_IGMP_0204, TCPIP_IGMP_0201, TCPIP_IGMP_0202, TCPIP_IGMP_0203, + ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, ^TCPIP_TCP_0402, + ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, TCPIP_UDP_0201, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, + ^TCPIP_TCP_0102, ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, + ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210] diff --git a/components/test/CIConfigs/Function_TCPIP_03.yml b/components/test/CIConfigs/Function_TCPIP_03.yml index cdaad2586..79107aca8 100644 --- a/components/test/CIConfigs/Function_TCPIP_03.yml +++ b/components/test/CIConfigs/Function_TCPIP_03.yml @@ -2,10 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_UDP_0305, ^TCPIP_UDP_0304, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0102, - ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, - ^TCPIP_DHCP_0211, TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, - TCPIP_DHCP_0211, TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, ^TCPIP_IP_0102, - ^TCPIP_UDP_0105, ^TCPIP_UDP_0104, ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, - ^TCPIP_UDP_0103, ^TCPIP_UDP_0102, ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, ^TCPIP_UDP_0108, - ^TCPIP_IGMP_0201] + ID: [^TCPIP_TCP_0212, TCPIP_DHCP_0211, TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, + ^TCPIP_IP_0102, ^TCPIP_UDP_0105, ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, + ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, ^TCPIP_UDP_0108, ^TCPIP_IGMP_0201, ^TCPIP_IGMP_0203, + ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, TCPIP_UDP_0114, TCPIP_UDP_0113, TCPIP_UDP_0112, + ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, ^TCPIP_TCP_0207, TCPIP_TCP_0501, TCPIP_TCP_0106, + TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, TCPIP_TCP_0102, TCPIP_TCP_0103] diff --git a/components/test/CIConfigs/Function_TCPIP_04.yml b/components/test/CIConfigs/Function_TCPIP_04.yml index 3476bb706..8d20569c1 100644 --- a/components/test/CIConfigs/Function_TCPIP_04.yml +++ b/components/test/CIConfigs/Function_TCPIP_04.yml @@ -2,10 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, TCPIP_UDP_0114, TCPIP_UDP_0111, - TCPIP_UDP_0110, TCPIP_UDP_0113, TCPIP_UDP_0112, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, - ^TCPIP_TCP_0207, TCPIP_TCP_0501, ^TCPIP_DNS_0101, ^TCPIP_DNS_0103, ^TCPIP_DNS_0102, - TCPIP_TCP_0106, TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, TCPIP_TCP_0102, - TCPIP_TCP_0103, TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114, ^TCPIP_TCP_0115, - ^TCPIP_TCP_0112, ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, TCPIP_ARP_0101, - TCPIP_UDP_0304] + ID: [TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114, ^TCPIP_TCP_0115, ^TCPIP_TCP_0112, + ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, TCPIP_ARP_0101, ^TCPIP_DHCP_0209, + ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, + ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, TCPIP_TCP_0204, TCPIP_TCP_0207, + TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, TCPIP_TCP_0203, TCPIP_TCP_0202, + TCPIP_TCP_0208, TCPIP_DHCP_0206, TCPIP_DHCP_0207, TCPIP_DHCP_0204, TCPIP_DHCP_0205] diff --git a/components/test/CIConfigs/Function_TCPIP_05.yml b/components/test/CIConfigs/Function_TCPIP_05.yml index 85b6e72d8..7ff1bbf8c 100644 --- a/components/test/CIConfigs/Function_TCPIP_05.yml +++ b/components/test/CIConfigs/Function_TCPIP_05.yml @@ -2,10 +2,8 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [TCPIP_UDP_0305, TCPIP_UDP_0306, TCPIP_UDP_0307, TCPIP_UDP_0301, TCPIP_UDP_0302, - TCPIP_UDP_0303, ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, - ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, - TCPIP_TCP_0204, TCPIP_TCP_0207, TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, - TCPIP_TCP_0203, TCPIP_TCP_0202, TCPIP_TCP_0208, TCPIP_DNS_0103, TCPIP_DHCP_0206, - TCPIP_DHCP_0207, TCPIP_DHCP_0204, TCPIP_DHCP_0205, TCPIP_DHCP_0202, TCPIP_DHCP_0203, - ^TCPIP_TCP_0204] + ID: [TCPIP_DHCP_0202, TCPIP_DHCP_0203, ^TCPIP_TCP_0204, TCPIP_DHCP_0201, ^TCPIP_TCP_0208, + TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, ^TCPIP_TCP_0411, TCPIP_ARP_0203, + ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, + TCPIP_ARP_0201, TCPIP_TCP_0115, TCPIP_TCP_0114, TCPIP_TCP_0116, TCPIP_TCP_0111, + TCPIP_TCP_0113, TCPIP_TCP_0112] diff --git a/components/test/CIConfigs/Function_TCPIP_06.yml b/components/test/CIConfigs/Function_TCPIP_06.yml index 1aceda2b7..7cf627999 100644 --- a/components/test/CIConfigs/Function_TCPIP_06.yml +++ b/components/test/CIConfigs/Function_TCPIP_06.yml @@ -1,8 +1,5 @@ Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] +DUT: [SSC1] Filter: - Add: - ID: [TCPIP_DHCP_0201, ^TCPIP_TCP_0208, TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, - ^TCPIP_TCP_0411, TCPIP_ARP_0203, ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, - ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, TCPIP_ARP_0201, TCPIP_TCP_0115, TCPIP_TCP_0114, - TCPIP_TCP_0116, TCPIP_TCP_0111, TCPIP_TCP_0113, TCPIP_TCP_0112] + ID: [TCPIP_TCP_0405, ^TCPIP_TCP_0405] diff --git a/components/test/CIConfigs/Function_TCPIP_07.yml b/components/test/CIConfigs/Function_TCPIP_07.yml index 7cf627999..2a047b8e1 100644 --- a/components/test/CIConfigs/Function_TCPIP_07.yml +++ b/components/test/CIConfigs/Function_TCPIP_07.yml @@ -2,4 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: - Add: - ID: [TCPIP_TCP_0405, ^TCPIP_TCP_0405] + ID: [TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, + ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, + ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, + ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, + TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, + TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101] diff --git a/components/test/CIConfigs/Function_TCPIP_08.yml b/components/test/CIConfigs/Function_TCPIP_08.yml new file mode 100644 index 000000000..4ada8f3ee --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_08.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, + ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, + TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, + TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, + TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, + TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103] diff --git a/components/test/CIConfigs/Function_TCPIP_09.yml b/components/test/CIConfigs/Function_TCPIP_09.yml new file mode 100644 index 000000000..a4c1a5163 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_09.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, + ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, + ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, + ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, + ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, + ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103] diff --git a/components/test/CIConfigs/Function_TCPIP_10.yml b/components/test/CIConfigs/Function_TCPIP_10.yml new file mode 100644 index 000000000..201f95eea --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_10.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, + TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, + TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, + ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, + ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, + ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102] diff --git a/components/test/CIConfigs/Function_TCPIP_11.yml b/components/test/CIConfigs/Function_TCPIP_11.yml new file mode 100644 index 000000000..1d083887c --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_11.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, + TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, + TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, + TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, + TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, + TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302] diff --git a/components/test/CIConfigs/Function_TCPIP_12.yml b/components/test/CIConfigs/Function_TCPIP_12.yml new file mode 100644 index 000000000..e9f5b72a5 --- /dev/null +++ b/components/test/CIConfigs/Function_TCPIP_12.yml @@ -0,0 +1,6 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, + TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103] diff --git a/components/test/CIConfigs/Function_WIFI_01.yml b/components/test/CIConfigs/Function_WIFI_01.yml index 4a6b3e0c1..9d177e5ee 100644 --- a/components/test/CIConfigs/Function_WIFI_01.yml +++ b/components/test/CIConfigs/Function_WIFI_01.yml @@ -1,11 +1,10 @@ Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] +DUT: [SSC3, SSC2, SSC1] Filter: - Add: ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, ^WIFI_CONN_0903, WIFI_SCAN_0103, WIFI_SCAN_0102, WIFI_SCAN_0101, WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0702, - WIFI_CONN_0703, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0703, ^WIFI_SCAN_0102, - ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, ^WIFI_ADDR_0102, WIFI_CONN_0401, - ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_CONN_0301, ^WIFI_CONN_0801, - WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, ^WIFI_CONN_0401, - WIFI_MODE_0101] + WIFI_CONN_0703, WIFI_PHY_0403, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0703, + ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, ^WIFI_ADDR_0102, + WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_PHY_0502, + WIFI_PHY_0503, WIFI_PHY_0501, WIFI_PHY_0506, WIFI_PHY_0505, WIFI_CONN_0301] diff --git a/components/test/CIConfigs/Function_WIFI_02.yml b/components/test/CIConfigs/Function_WIFI_02.yml index 78ef087b5..c68445488 100644 --- a/components/test/CIConfigs/Function_WIFI_02.yml +++ b/components/test/CIConfigs/Function_WIFI_02.yml @@ -2,7 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, ^WIFI_CONN_0901, WIFI_CONN_0601, - WIFI_CONN_0901, WIFI_CONN_0903, WIFI_CONN_0503, ^WIFI_CONN_0104, WIFI_CONN_0101, - WIFI_CONN_0102, WIFI_CONN_0103, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, - ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] + ID: [WIFI_SCAN_0301, WIFI_SCAN_0303, ^WIFI_CONN_0801, WIFI_SCAN_0304, WIFI_CONN_0104, + ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, ^WIFI_CONN_0401, WIFI_MODE_0101, + WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, ^WIFI_CONN_0901, WIFI_SCAN_0302, + WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0903, WIFI_SCAN_0201, WIFI_CONN_0503, + WIFI_PHY_0402, WIFI_PHY_0401, WIFI_PHY_0407, WIFI_PHY_0406, WIFI_PHY_0405, WIFI_PHY_0404, + WIFI_PHY_0408, ^WIFI_CONN_0104, WIFI_CONN_0101, WIFI_CONN_0102] diff --git a/components/test/CIConfigs/Function_WIFI_03.yml b/components/test/CIConfigs/Function_WIFI_03.yml index 1ac97dece..72a9db2de 100644 --- a/components/test/CIConfigs/Function_WIFI_03.yml +++ b/components/test/CIConfigs/Function_WIFI_03.yml @@ -1,5 +1,6 @@ Config: {execute count: 1, execute order: in order} -DUT: [SSC1] +DUT: [SSC3, SSC2, SSC1] Filter: - Add: - ID: [WIFI_CONN_0701, ^WIFI_CONN_0701, ^WIFI_CONN_0902, WIFI_CONN_0902] + ID: [WIFI_CONN_0103, WIFI_PHY_0504, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, + ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] diff --git a/components/test/CIConfigs/Function_WIFI_04.yml b/components/test/CIConfigs/Function_WIFI_04.yml new file mode 100644 index 000000000..1ac97dece --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_04.yml @@ -0,0 +1,5 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [WIFI_CONN_0701, ^WIFI_CONN_0701, ^WIFI_CONN_0902, WIFI_CONN_0902] diff --git a/components/test/CIConfigs/Function_WIFI_05.yml b/components/test/CIConfigs/Function_WIFI_05.yml new file mode 100644 index 000000000..22840fa7a --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_05.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0102, WIFI_PHY_0102, + WIFI_PHY_0102, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0101, WIFI_PHY_0101, + WIFI_PHY_0101, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0312, WIFI_PHY_0312, + WIFI_PHY_0312, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0310, WIFI_PHY_0310, + WIFI_PHY_0310, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0315, WIFI_PHY_0315, + WIFI_PHY_0315] diff --git a/components/test/CIConfigs/Function_WIFI_06.yml b/components/test/CIConfigs/Function_WIFI_06.yml new file mode 100644 index 000000000..640330233 --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_06.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0308, WIFI_PHY_0308, + WIFI_PHY_0308, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0304, WIFI_PHY_0304, + WIFI_PHY_0304, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0306, WIFI_PHY_0306, + WIFI_PHY_0306, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0301, WIFI_PHY_0301, + WIFI_PHY_0301, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0110, WIFI_PHY_0110, + WIFI_PHY_0110] diff --git a/components/test/CIConfigs/Function_WIFI_07.yml b/components/test/CIConfigs/Function_WIFI_07.yml new file mode 100644 index 000000000..a51560fd6 --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_07.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0120, WIFI_PHY_0120, + WIFI_PHY_0120, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0118, WIFI_PHY_0118, + WIFI_PHY_0118, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0114, WIFI_PHY_0114, + WIFI_PHY_0114, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0111, WIFI_PHY_0111, + WIFI_PHY_0111, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0205, WIFI_PHY_0205, + WIFI_PHY_0205] diff --git a/components/test/CIConfigs/Function_WIFI_08.yml b/components/test/CIConfigs/Function_WIFI_08.yml new file mode 100644 index 000000000..f143efb3b --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_08.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0207, WIFI_PHY_0207, + WIFI_PHY_0207, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0201, WIFI_PHY_0201, + WIFI_PHY_0201, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0202, WIFI_PHY_0202, + WIFI_PHY_0202, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0208, WIFI_PHY_0208, + WIFI_PHY_0208, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0303, WIFI_PHY_0303, + WIFI_PHY_0303] diff --git a/components/test/CIConfigs/Function_WIFI_09.yml b/components/test/CIConfigs/Function_WIFI_09.yml new file mode 100644 index 000000000..f4adf0d2e --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_09.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0109, WIFI_PHY_0109, + WIFI_PHY_0109, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0107, WIFI_PHY_0107, + WIFI_PHY_0107, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0212, WIFI_PHY_0212, + WIFI_PHY_0212, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0210, WIFI_PHY_0210, + WIFI_PHY_0210, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0104, WIFI_PHY_0104, + WIFI_PHY_0104] diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml index cf634005d..5e72da0f4 100644 --- a/components/test/TestCaseAll.yml +++ b/components/test/TestCaseAll.yml @@ -1,4 +1,151 @@ test cases: +- CI ready: 'Yes' + ID: WIFI_PHY_0105 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in [1/2/5/5/11]' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. ht40 STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11b, ht40 STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0102 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in [1/2/5/5/11]' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. 11b STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11b, 11b STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0103 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in [1/2/5/5/11]' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. 11bg STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11b, 11g STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0601 SDK: '8266_NonOS @@ -7,6 +154,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -50,6 +198,438 @@ test cases: test point 1: basic function test point 2: list SoftAP connected station version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0101 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK', 'R CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")'] + comment: '' + execution time: 0.0 + expected result: 1. beacon has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: 1. target set to PHY mode 11b, capture beacon + sub module: Phy Mode + summary: SoftAP set as 11b, check beacon + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0313 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP ht40, STA 11b + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP ht40, STA 11b, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0312 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bgn, STA ht40 + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bgn, STA ht40, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0311 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bgn, STA 11bgn + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bgn, STA 11bgn, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0310 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bgn, STA 11bg + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bgn, STA 11bg, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0316 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP ht40, STA ht40 + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP ht40, STA ht40, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0315 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP ht40, STA 11bgn + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP ht40, STA 11bgn, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0314 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP ht40, STA 11bg + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP ht40, STA 11bg, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_ICMP_0101 SDK: '8266_NonOS @@ -58,6 +638,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -97,6 +678,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -129,6 +711,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -181,6 +764,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -247,6 +831,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -306,6 +891,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -363,6 +949,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -430,6 +1017,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -489,6 +1077,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -525,6 +1114,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -566,6 +1156,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -635,6 +1226,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -690,6 +1282,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -753,6 +1346,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -816,6 +1410,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -870,6 +1465,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -933,6 +1529,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -987,6 +1584,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1042,6 +1640,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1073,6 +1672,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1136,6 +1736,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1217,6 +1818,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1280,6 +1882,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1361,6 +1964,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1410,6 +2014,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1479,6 +2084,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1524,6 +2130,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -1575,6 +2182,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1626,6 +2234,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1665,6 +2274,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1710,6 +2320,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1773,6 +2384,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -1836,6 +2448,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -1893,6 +2506,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -1950,6 +2564,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2001,6 +2616,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2042,6 +2658,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2065,6 +2682,340 @@ test cases: test point 1: basic function test point 2: wifi connect status check version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0308 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bg, STA ht40 + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bg, STA ht40, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0309 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bgn, STA 11b + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bgn, STA 11b, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0304 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11b, STA ht40 + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11b, STA ht40, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0305 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bg, STA 11b + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bg, STA 11b, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0306 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bg, STA 11bg + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bg, STA 11bg, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0307 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11bg, STA 11bgn + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11bg, STA 11bgn, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0102 SDK: '8266_NonOS @@ -2073,6 +3024,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -2112,6 +3064,116 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0301 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11b, STA 11b + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11b, STA 11b, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0302 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11b, STA 11bg + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11b, STA 11bg, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0101 SDK: '8266_NonOS @@ -2120,6 +3182,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -2143,6 +3206,52 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0403 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0904 SDK: '8266_NonOS @@ -2151,6 +3260,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2221,6 +3331,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2278,6 +3389,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2333,6 +3445,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2376,6 +3489,55 @@ test cases: test point 1: basic function test point 2: query JAP status version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0110 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. beacon has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates and xrates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. ht40 STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bg, ht40 STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IGMP_0102 SDK: '8266_NonOS @@ -2384,6 +3546,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2441,6 +3604,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2488,6 +3652,55 @@ test cases: test point 1: basic function test point 2: IGMP API parameter check version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0113 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. 11bg STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bgn, 11g STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IGMP_0104 SDK: '8266_NonOS @@ -2496,6 +3709,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2553,6 +3767,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2584,6 +3799,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -2648,6 +3864,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2686,6 +3903,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2736,6 +3954,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2798,6 +4017,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2860,6 +4080,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2917,6 +4138,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -2972,6 +4194,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3029,6 +4252,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3084,6 +4308,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3159,6 +4384,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -3198,6 +4424,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3265,6 +4492,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3316,6 +4544,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -3382,6 +4611,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3439,6 +4669,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3478,6 +4709,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -3547,6 +4779,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3586,6 +4819,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -3643,6 +4877,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -3706,6 +4941,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3757,6 +4993,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3804,6 +5041,57 @@ test cases: test point 1: basic function test point 2: IGMP send/recv test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0120 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed, + + 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=2,sta_channel_width=1, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates/msc0-7' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode ht40 + + 2. ht40 STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as ht40, ht40 STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_IGMP_0201 SDK: '8266_NonOS @@ -3812,6 +5100,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3861,6 +5150,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3918,6 +5208,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -3967,6 +5258,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4038,6 +5330,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4093,6 +5386,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4147,6 +5441,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4210,6 +5505,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4273,6 +5569,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4336,6 +5633,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4391,6 +5689,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4454,6 +5753,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4529,6 +5829,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -4588,6 +5889,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -4647,6 +5949,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -4698,6 +6001,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -4749,6 +6053,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4807,6 +6112,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4870,6 +6176,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4945,6 +6252,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -4996,6 +6304,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5090,6 +6399,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5177,6 +6487,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5237,6 +6548,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5330,6 +6642,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5391,6 +6704,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5453,6 +6767,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5536,6 +6851,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5605,6 +6921,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5672,6 +6989,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5755,6 +7073,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5818,6 +7137,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5880,6 +7200,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5935,6 +7256,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -5995,6 +7317,257 @@ test cases: test point 1: basic function test point 2: mac address function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0119 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed, + + 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates/msc0-7' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode ht40 + + 2. 11bgn STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as ht40, 11n STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0118 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode ht40 + + 2. 11bg STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as ht40, 11g STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0115 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed, + + 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates/msc0-7' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. ht40 STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bgn, ht40 STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0114 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed, + + 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates/xrates/msc0-7' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. 11bgn STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bgn, 11n STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0117 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in rates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode ht40 + + 2. 11b STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as ht40, 11b STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_UDP_0202 SDK: '8266_NonOS @@ -6003,6 +7576,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6070,6 +7644,92 @@ test cases: test point 1: abnormal/special use test point 2: use UDP SAP (socket/espconn API) in different state version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0111 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] + comment: '' + execution time: 0.0 + expected result: 1. beacon has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: 1. target set to PHY mode 11bgn, capture beacon + sub module: Phy Mode + summary: SoftAP set as 11bgn, check beacon + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0112 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in rates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. 11b STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bgn, 11b STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0411 SDK: '8266_NonOS @@ -6078,6 +7738,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6139,6 +7800,281 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0502 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0503 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0501 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0506 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0505 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M ,SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0301 SDK: '8266_NonOS @@ -6147,6 +8083,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6191,6 +8128,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6245,6 +8183,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6284,6 +8223,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -6353,6 +8293,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6392,6 +8333,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6449,6 +8391,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6500,6 +8443,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -6563,6 +8507,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -6612,6 +8557,310 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0205 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. target connect to 11g AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bg, join 11g external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0204 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + assoc-req has no erp/ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. target connect to 11b AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bg, join 11b external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0207 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates/ht, cap.short_slot_time=1,rates=[1/2/5.5/11/24/36/48/54]; + + assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. target connect to 11b AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn, join 11b external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0206 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. target connect to 11n AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bg, join 11n external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0201 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. target connect to 11b AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11b, join 11b external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DHCP_0102 SDK: '8266_NonOS @@ -6620,6 +8869,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6656,6 +8906,126 @@ test cases: test point 1: basic function test point 2: DHCP client function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0203 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-reqhas no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. target connect to 11n AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11b, join 11b external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0202 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-reqhas no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. target connect to 11g AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11b, join 11g external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DHCP_0103 SDK: '8266_NonOS @@ -6664,6 +9034,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6725,6 +9096,216 @@ test cases: test point 1: basic function test point 2: DHCP client function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0209 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates or msc0-7' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. target connect to 11n AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn, join 11n external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0208 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + assoc-req has xrates no ht, cap.short_slot_time=1,rates=[1/2/5.5/11], xrates=[24/36/48/54]; + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. target connect to 11g AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn, join 11g external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0301 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANFAIL, 'P SSC1 P +SCAN:', R SSC1 C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1. second scan failed + + 2. first scan succeed' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. do all channel scan + + 2. do scan before scan finished' + sub module: WIFI Scan + summary: reject scan request before scan finished + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0303 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 1 STA join AP + + 2. target 1 STA scan before JAP succeed + + 3. target 1 quite AP + + 4. target 1 scan + + 5. target 1 JAP before scan succeed' + sub module: WIFI Scan + summary: scan during JAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0801 SDK: '8266_NonOS @@ -6733,6 +9314,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6787,6 +9369,55 @@ test cases: test point 1: basic function test point 2: wifi auth changed event test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0304 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC2 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 2 STA join target 1 SoftAP + + 2. target 1 STA scan before target 2 JAP succeed + + 3. target 2 STA QAP + + 4. target 1 STA scan + + 5. target 2 STA JAP before target 1 STA scan succeed' + sub module: WIFI Scan + summary: scan during ext STA join SoftAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0108 SDK: '8266_NonOS @@ -6795,6 +9426,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6846,6 +9478,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6899,6 +9532,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6948,6 +9582,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -6997,6 +9632,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7054,6 +9690,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7108,6 +9745,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7147,6 +9785,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7186,6 +9825,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -7260,6 +9900,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -7324,6 +9965,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7381,6 +10023,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7420,6 +10063,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7497,6 +10141,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7566,6 +10211,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7637,6 +10283,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7700,6 +10347,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7757,6 +10405,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7808,6 +10457,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7877,6 +10527,7 @@ test cases: ESP32_IDF' Test App: basic function + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -7925,6 +10576,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8024,6 +10676,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8107,6 +10760,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8206,6 +10860,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8242,6 +10897,43 @@ test cases: test point 1: abnormal/special use test point 2: TCP connect and disconnect abnormal case version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0116 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK', 'R CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] + comment: '' + execution time: 0.0 + expected result: 1. beacon has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=3,sta_channel_width=1, + rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: 1. target set to PHY mode ht40, capture beacon + sub module: Phy Mode + summary: SoftAP set as ht40, check beacon + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DNS_0101 SDK: '8266_NonOS @@ -8250,6 +10942,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -8281,6 +10974,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -8324,6 +11018,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -8371,6 +11066,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8464,6 +11160,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8525,6 +11222,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8612,6 +11310,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8706,6 +11405,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8757,6 +11457,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8832,6 +11533,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8895,6 +11597,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -8955,6 +11658,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9049,6 +11753,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9142,6 +11847,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9217,6 +11923,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9304,6 +12011,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9367,6 +12075,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9410,6 +12119,61 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0302 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -n 1000000 -j 5 + - [''] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: 3. target 2 able to scan AP + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 1 connect to AP + + 2. target 1 start sending UDP packets + + 3. target 2 scan in AP channel in 11b.g,n,ht40 mode' + sub module: WIFI Scan + summary: scan in congest channel + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_ARP_0101 SDK: '8266_NonOS @@ -9418,6 +12182,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9457,6 +12222,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9508,6 +12274,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9559,6 +12326,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9618,6 +12386,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9677,6 +12446,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9734,6 +12504,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9793,6 +12564,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: @@ -9844,6 +12616,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9896,6 +12669,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -9958,6 +12732,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10022,6 +12797,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10094,6 +12870,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10156,6 +12933,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10204,6 +12982,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10284,6 +13063,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10352,6 +13132,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10410,6 +13191,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10467,6 +13249,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10538,6 +13321,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10637,6 +13421,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10720,6 +13505,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10819,6 +13605,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10868,6 +13655,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -10949,6 +13737,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11030,6 +13819,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11111,6 +13901,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: @@ -11146,6 +13937,62 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0303 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s + + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. check STA packet + + 3. check SoftAP packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. set softAP 11b, STA 11bgn + + 2. STA connect to ext AP + + 3. ext STA connect to SoftAP' + sub module: Phy Mode + summary: SoftAP 11b, STA 11bgn, get connected and join AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DHCP_0206 SDK: '8266_NonOS @@ -11154,6 +14001,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11217,6 +14065,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11290,6 +14139,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11371,6 +14221,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11420,6 +14271,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11479,6 +14331,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11548,6 +14401,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11617,6 +14471,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11675,6 +14530,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11756,6 +14612,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11821,6 +14678,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11884,6 +14742,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -11953,6 +14812,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12022,6 +14882,7 @@ test cases: ESP32_IDF' Test App: basic function + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12070,6 +14931,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12116,6 +14978,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12139,6 +15002,257 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0108 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates and xrates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. 11bg STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bg, 11g STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0109 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates and xrates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. 11bgn STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bg, 11n STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0106 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] + comment: '' + execution time: 0.0 + expected result: 1. beacon has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: 1. target set to PHY mode 11bg, capture beacon + sub module: Phy Mode + summary: SoftAP set as 11bg, check beacon + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0107 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.supported_rates=""1/","2/","5.5/","11/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 3. radiotap rates in rates' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bg + + 2. 11b STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11bg, 11b STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0201 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + comment: '' + execution time: 0.0 + expected result: '3. find all 3 ext APs + + 5. find all 3 ext APs + + 7. find all 3 ext APs + + 9. find all 3 ext APs' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. 3 ext APs in 11b, 11g, 11n mode + + 2. STA in 11b mode + + 3. do all channel scan + + 4. STA in 11g mode + + 5. do all channel scan + + 6. STA in 11n ht20 mode + + 7. do all channel scan + + 8. STA in 11n ht40 mode + + 9. do all channel scan' + sub module: WIFI Scan + summary: STA in differnt PHY mode to scan AP in different PHY mode + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: Scan in different mode and channel + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0503 SDK: '8266_NonOS @@ -12147,6 +15261,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12196,6 +15311,285 @@ test cases: test point 1: basic function test point 2: reconnect policy test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0402 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0401 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0407 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0406 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0405 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0404 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0112 SDK: '8266_NonOS @@ -12204,6 +15598,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12235,6 +15630,53 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0408 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0114 SDK: '8266_NonOS @@ -12243,6 +15685,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12274,6 +15717,315 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0214 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + 4. 40M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn ht40 + + 2. target connect to 11n ht40 AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn ht40,join ht40 external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0212 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + assoc-req has xrates no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn ht40 + + 2. target connect to 11g AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn ht40, join 11g external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0213 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn ht40 + + 2. target connect to 11n AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn ht40, join 11n external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0210 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', + 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") + PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req and assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in rates or xrates or msc0-7' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn + + 2. target connect to 11n ht40 AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn, join ht40 external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0211 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC1 sta -C -s -p + - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; + + assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] + + 4. 20M + + 5. succeed + + 6. data rate in radiotap is in [1/2/5.5/11]' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. target set to PHY mode 11bgn ht40 + + 2. target connect to 11b AP + + 3. capture probe-req and assoc-req in step2 + + 4. check if config bandwidth correct + + 5. send data from target + + 6. capture data in step5' + sub module: Phy Mode + summary: target STA set as 11bgn ht40, join 11b external AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0104 SDK: '8266_NonOS @@ -12282,6 +16034,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12334,6 +16087,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12409,6 +16163,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12464,6 +16219,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12527,6 +16283,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12590,6 +16347,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12641,6 +16399,61 @@ test cases: test point 1: basic function test point 2: SAP/JAP with different config version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0504 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IP_0101 SDK: '8266_NonOS @@ -12649,6 +16462,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12706,6 +16520,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12745,6 +16560,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12808,6 +16624,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12870,6 +16687,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12916,6 +16734,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -12971,6 +16790,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13039,6 +16859,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13115,6 +16936,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13208,6 +17030,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13252,6 +17075,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13346,6 +17170,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13407,6 +17232,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13450,6 +17276,55 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0104 + SDK: ESP32_IDF + Test App: SSC + allow fail: 2/3 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 2 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - STRING wlan%20addr2%20%%s + - [R PC_COM C OK] + - - 'NIC CAP START wlan_capture ' + - ['R PC_COM C +NIC_START:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', + 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] + + 3. radiotap rates in [1/2/5/5/11]' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + module: WIFI MAC + steps: '1. target set to PHY mode 11b + + 2. 11bgn STA connect to SoftAP, capture assoc response + + 3. ping, capture Data' + sub module: Phy Mode + summary: SoftAP set as 11b, 11n STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: SoftAP PHY mode test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0113 SDK: '8266_NonOS @@ -13458,6 +17333,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: @@ -13545,6 +17421,7 @@ test cases: ESP32_IDF' Test App: SSC + allow fail: '' auto test: 'Yes' category: Function cmd set: From 5ba6c1b1b7118bfdb637aea14475f59b56e320cd Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 12:07:35 +0800 Subject: [PATCH 22/36] sync test config from test bench: 1. night jobs should exit without error if not triggered 2. remove get wifi connect status cases from IDF 3. use Env tag to check if test environment is special --- .gitlab-ci.yml | 108 +- .../test/CIConfigs/Function_WIFI_01.yml | 12 +- .../test/CIConfigs/Function_WIFI_02.yml | 9 +- .../test/CIConfigs/Function_WIFI_03.yml | 4 +- .../test/CIConfigs/Function_WIFI_04.yml | 2 +- .../test/CIConfigs/Function_WIFI_05.yml | 9 +- .../test/CIConfigs/Function_WIFI_06.yml | 9 +- .../test/CIConfigs/Function_WIFI_07.yml | 12 +- .../test/CIConfigs/Function_WIFI_08.yml | 12 +- .../test/CIConfigs/Function_WIFI_09.yml | 12 +- .../test/CIConfigs/Function_WIFI_10.yml | 10 + .../test/CIConfigs/Function_WIFI_11.yml | 10 + components/test/TestCaseAll.yml | 3885 +---------------- 13 files changed, 116 insertions(+), 3978 deletions(-) create mode 100644 components/test/CIConfigs/Function_WIFI_10.yml create mode 100644 components/test/CIConfigs/Function_WIFI_11.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad6db4169..f422f9f25 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,28 +64,10 @@ build_ssc: script: - git clone ssh://git@gitlab.espressif.cn:27227/yinling/SSC.git - cd SSC - - git checkout ${CI_BUILD_REF_NAME} || echo "Using SSC default branch..." - make defconfig - chmod +x gen_misc_ng.sh - ./gen_misc_ng.sh -build_examples: - <<: *build_template - artifacts: - paths: - - build_examples/*/*/build/*.bin - - build_examples/*/*/build/*.elf - - build_examples/*/*/build/*.map - - build_examples/*/*/build/bootloader/*.bin - expire_in: 6 mos - - script: - # it's not possible to build 100% out-of-tree and have the "artifacts" - # mechanism work, but this is the next best thing - - mkdir build_examples - - cd build_examples - - ${IDF_PATH}/make/build_examples.sh - test_nvs_on_host: stage: test image: espressif/esp32-ci-env @@ -168,7 +150,7 @@ push_master_to_github: - triggers script: # must be night build triggers, otherwise exit without test - - test $NIGHT_BUILD != "Yes" || exit + - test $NIGHT_BUILD != "Yes" || exit 0 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH @@ -185,10 +167,7 @@ Function_WIFI_01: <<: *test_template tags: - ESP32_IDF - - SSC_T3_PhyMode - SSC_T1_1 - - SSC_T1_WEP - - SSC_T2_PhyMode - SSC_T2_1 before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_01.yml @@ -198,22 +177,10 @@ Function_WIFI_02: tags: - ESP32_IDF - SSC_T1_1 - - SSC_T1_WEP - - SSC_T2_PhyMode - SSC_T2_1 before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_02.yml -Function_WIFI_03: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T3_PhyMode - - SSC_T1_1 - - SSC_T2_1 - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml - Function_TCPIP_01: <<: *test_template tags: @@ -267,6 +234,14 @@ Function_TCPIP_06: before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_06.yml +Function_WIFI_03: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T3_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml + Function_WIFI_04: <<: *test_template tags: @@ -279,7 +254,7 @@ Function_WIFI_05: <<: *test_template tags: - ESP32_IDF - - SSC_T2_PhyMode + - SSC_T1_WEP before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_05.yml @@ -291,30 +266,6 @@ Function_WIFI_06: before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_06.yml -Function_WIFI_07: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_07.yml - -Function_WIFI_08: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_08.yml - -Function_WIFI_09: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_09.yml - Function_TCPIP_07: <<: *test_template tags: @@ -368,3 +319,42 @@ Function_TCPIP_12: before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_12.yml +Function_WIFI_07: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_07.yml + +Function_WIFI_08: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_08.yml + +Function_WIFI_09: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_09.yml + +Function_WIFI_10: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_10.yml + +Function_WIFI_11: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T2_PhyMode + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_11.yml diff --git a/components/test/CIConfigs/Function_WIFI_01.yml b/components/test/CIConfigs/Function_WIFI_01.yml index 9d177e5ee..da9bfecd5 100644 --- a/components/test/CIConfigs/Function_WIFI_01.yml +++ b/components/test/CIConfigs/Function_WIFI_01.yml @@ -1,10 +1,10 @@ Config: {execute count: 1, execute order: in order} -DUT: [SSC3, SSC2, SSC1] +DUT: [SSC2, SSC1] Filter: - Add: - ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, ^WIFI_CONN_0903, WIFI_SCAN_0103, WIFI_SCAN_0102, - WIFI_SCAN_0101, WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0702, - WIFI_CONN_0703, WIFI_PHY_0403, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_CONN_0703, + ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, WIFI_SCAN_0103, WIFI_SCAN_0102, WIFI_SCAN_0101, + WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0904, ^WIFI_CONN_0201, ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, ^WIFI_ADDR_0102, - WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_PHY_0502, - WIFI_PHY_0503, WIFI_PHY_0501, WIFI_PHY_0506, WIFI_PHY_0505, WIFI_CONN_0301] + WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_CONN_0301, + ^WIFI_CONN_0801, WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, + ^WIFI_CONN_0401, WIFI_MODE_0101, WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904] diff --git a/components/test/CIConfigs/Function_WIFI_02.yml b/components/test/CIConfigs/Function_WIFI_02.yml index c68445488..e1b61a20e 100644 --- a/components/test/CIConfigs/Function_WIFI_02.yml +++ b/components/test/CIConfigs/Function_WIFI_02.yml @@ -2,9 +2,6 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_SCAN_0301, WIFI_SCAN_0303, ^WIFI_CONN_0801, WIFI_SCAN_0304, WIFI_CONN_0104, - ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, ^WIFI_CONN_0401, WIFI_MODE_0101, - WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904, ^WIFI_CONN_0901, WIFI_SCAN_0302, - WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0903, WIFI_SCAN_0201, WIFI_CONN_0503, - WIFI_PHY_0402, WIFI_PHY_0401, WIFI_PHY_0407, WIFI_PHY_0406, WIFI_PHY_0405, WIFI_PHY_0404, - WIFI_PHY_0408, ^WIFI_CONN_0104, WIFI_CONN_0101, WIFI_CONN_0102] + ID: [^WIFI_CONN_0901, WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0503, ^WIFI_CONN_0104, + WIFI_CONN_0101, WIFI_CONN_0102, WIFI_CONN_0103, WIFI_CONN_0801, ^WIFI_CONN_0101, + ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] diff --git a/components/test/CIConfigs/Function_WIFI_03.yml b/components/test/CIConfigs/Function_WIFI_03.yml index 72a9db2de..0f0b4bbaa 100644 --- a/components/test/CIConfigs/Function_WIFI_03.yml +++ b/components/test/CIConfigs/Function_WIFI_03.yml @@ -2,5 +2,5 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC3, SSC2, SSC1] Filter: - Add: - ID: [WIFI_CONN_0103, WIFI_PHY_0504, ^WIFI_CONN_0702, WIFI_CONN_0801, ^WIFI_CONN_0101, - ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] + ID: [WIFI_PHY_0502, WIFI_PHY_0503, WIFI_PHY_0501, WIFI_PHY_0506, WIFI_PHY_0505, + WIFI_PHY_0504] diff --git a/components/test/CIConfigs/Function_WIFI_04.yml b/components/test/CIConfigs/Function_WIFI_04.yml index 1ac97dece..50f8707c7 100644 --- a/components/test/CIConfigs/Function_WIFI_04.yml +++ b/components/test/CIConfigs/Function_WIFI_04.yml @@ -2,4 +2,4 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: - Add: - ID: [WIFI_CONN_0701, ^WIFI_CONN_0701, ^WIFI_CONN_0902, WIFI_CONN_0902] + ID: [^WIFI_CONN_0902, WIFI_CONN_0902] diff --git a/components/test/CIConfigs/Function_WIFI_05.yml b/components/test/CIConfigs/Function_WIFI_05.yml index 22840fa7a..3694a698b 100644 --- a/components/test/CIConfigs/Function_WIFI_05.yml +++ b/components/test/CIConfigs/Function_WIFI_05.yml @@ -1,10 +1,5 @@ Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] +DUT: [SSC1] Filter: - Add: - ID: [WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0102, WIFI_PHY_0102, - WIFI_PHY_0102, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0101, WIFI_PHY_0101, - WIFI_PHY_0101, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0312, WIFI_PHY_0312, - WIFI_PHY_0312, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0310, WIFI_PHY_0310, - WIFI_PHY_0310, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0315, WIFI_PHY_0315, - WIFI_PHY_0315] + ID: [^WIFI_CONN_0903, WIFI_CONN_0903] diff --git a/components/test/CIConfigs/Function_WIFI_06.yml b/components/test/CIConfigs/Function_WIFI_06.yml index 640330233..f3db504c9 100644 --- a/components/test/CIConfigs/Function_WIFI_06.yml +++ b/components/test/CIConfigs/Function_WIFI_06.yml @@ -2,9 +2,6 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0308, WIFI_PHY_0308, - WIFI_PHY_0308, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0304, WIFI_PHY_0304, - WIFI_PHY_0304, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0306, WIFI_PHY_0306, - WIFI_PHY_0306, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0301, WIFI_PHY_0301, - WIFI_PHY_0301, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0110, WIFI_PHY_0110, - WIFI_PHY_0110] + ID: [WIFI_PHY_0403, WIFI_SCAN_0301, WIFI_SCAN_0303, WIFI_SCAN_0304, WIFI_SCAN_0302, + WIFI_SCAN_0201, WIFI_PHY_0402, WIFI_PHY_0401, WIFI_PHY_0407, WIFI_PHY_0406, + WIFI_PHY_0405, WIFI_PHY_0404, WIFI_PHY_0408] diff --git a/components/test/CIConfigs/Function_WIFI_07.yml b/components/test/CIConfigs/Function_WIFI_07.yml index a51560fd6..22840fa7a 100644 --- a/components/test/CIConfigs/Function_WIFI_07.yml +++ b/components/test/CIConfigs/Function_WIFI_07.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0120, WIFI_PHY_0120, - WIFI_PHY_0120, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0118, WIFI_PHY_0118, - WIFI_PHY_0118, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0114, WIFI_PHY_0114, - WIFI_PHY_0114, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0111, WIFI_PHY_0111, - WIFI_PHY_0111, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0205, WIFI_PHY_0205, - WIFI_PHY_0205] + ID: [WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0102, WIFI_PHY_0102, + WIFI_PHY_0102, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0101, WIFI_PHY_0101, + WIFI_PHY_0101, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0312, WIFI_PHY_0312, + WIFI_PHY_0312, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0310, WIFI_PHY_0310, + WIFI_PHY_0310, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0315, WIFI_PHY_0315, + WIFI_PHY_0315] diff --git a/components/test/CIConfigs/Function_WIFI_08.yml b/components/test/CIConfigs/Function_WIFI_08.yml index f143efb3b..640330233 100644 --- a/components/test/CIConfigs/Function_WIFI_08.yml +++ b/components/test/CIConfigs/Function_WIFI_08.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0207, WIFI_PHY_0207, - WIFI_PHY_0207, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0201, WIFI_PHY_0201, - WIFI_PHY_0201, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0202, WIFI_PHY_0202, - WIFI_PHY_0202, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0208, WIFI_PHY_0208, - WIFI_PHY_0208, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0303, WIFI_PHY_0303, - WIFI_PHY_0303] + ID: [WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0308, WIFI_PHY_0308, + WIFI_PHY_0308, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0304, WIFI_PHY_0304, + WIFI_PHY_0304, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0306, WIFI_PHY_0306, + WIFI_PHY_0306, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0301, WIFI_PHY_0301, + WIFI_PHY_0301, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0110, WIFI_PHY_0110, + WIFI_PHY_0110] diff --git a/components/test/CIConfigs/Function_WIFI_09.yml b/components/test/CIConfigs/Function_WIFI_09.yml index f4adf0d2e..a51560fd6 100644 --- a/components/test/CIConfigs/Function_WIFI_09.yml +++ b/components/test/CIConfigs/Function_WIFI_09.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0109, WIFI_PHY_0109, - WIFI_PHY_0109, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0107, WIFI_PHY_0107, - WIFI_PHY_0107, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0212, WIFI_PHY_0212, - WIFI_PHY_0212, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0210, WIFI_PHY_0210, - WIFI_PHY_0210, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0104, WIFI_PHY_0104, - WIFI_PHY_0104] + ID: [WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0120, WIFI_PHY_0120, + WIFI_PHY_0120, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0118, WIFI_PHY_0118, + WIFI_PHY_0118, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0114, WIFI_PHY_0114, + WIFI_PHY_0114, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0111, WIFI_PHY_0111, + WIFI_PHY_0111, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0205, WIFI_PHY_0205, + WIFI_PHY_0205] diff --git a/components/test/CIConfigs/Function_WIFI_10.yml b/components/test/CIConfigs/Function_WIFI_10.yml new file mode 100644 index 000000000..f143efb3b --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_10.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0207, WIFI_PHY_0207, + WIFI_PHY_0207, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0201, WIFI_PHY_0201, + WIFI_PHY_0201, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0202, WIFI_PHY_0202, + WIFI_PHY_0202, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0208, WIFI_PHY_0208, + WIFI_PHY_0208, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0303, WIFI_PHY_0303, + WIFI_PHY_0303] diff --git a/components/test/CIConfigs/Function_WIFI_11.yml b/components/test/CIConfigs/Function_WIFI_11.yml new file mode 100644 index 000000000..f4adf0d2e --- /dev/null +++ b/components/test/CIConfigs/Function_WIFI_11.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0109, WIFI_PHY_0109, + WIFI_PHY_0109, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0107, WIFI_PHY_0107, + WIFI_PHY_0107, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0212, WIFI_PHY_0212, + WIFI_PHY_0212, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0210, WIFI_PHY_0210, + WIFI_PHY_0210, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0104, WIFI_PHY_0104, + WIFI_PHY_0104] diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml index 5e72da0f4..d78701759 100644 --- a/components/test/TestCaseAll.yml +++ b/components/test/TestCaseAll.yml @@ -1,151 +1,4 @@ test cases: -- CI ready: 'Yes' - ID: WIFI_PHY_0105 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in [1/2/5/5/11]' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. ht40 STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11b, ht40 STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0102 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in [1/2/5/5/11]' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. 11b STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11b, 11b STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0103 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in [1/2/5/5/11]' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. 11bg STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11b, 11g STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0601 SDK: '8266_NonOS @@ -198,438 +51,6 @@ test cases: test point 1: basic function test point 2: list SoftAP connected station version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0101 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK', 'R CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")'] - comment: '' - execution time: 0.0 - expected result: 1. beacon has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: 1. target set to PHY mode 11b, capture beacon - sub module: Phy Mode - summary: SoftAP set as 11b, check beacon - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0313 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP ht40, STA 11b - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP ht40, STA 11b, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0312 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bgn, STA ht40 - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bgn, STA ht40, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0311 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bgn, STA 11bgn - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bgn, STA 11bgn, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0310 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bgn, STA 11bg - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bgn, STA 11bg, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0316 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP ht40, STA ht40 - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP ht40, STA ht40, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0315 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP ht40, STA 11bgn - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP ht40, STA 11bgn, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0314 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP ht40, STA 11bg - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP ht40, STA 11bg, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_ICMP_0101 SDK: '8266_NonOS @@ -1632,38 +1053,6 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0903 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 C +JAP:DISCONNECTED,4,2'] - comment: '' - execution time: 0.0 - expected result: 1. disconect event reason REASON_AUTH_EXPIRE - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_AUTH_EXPIRE - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. - - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0408 SDK: '8266_NonOS @@ -2608,414 +1997,6 @@ test cases: test point 1: basic function test point 2: query JAP status version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0702 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,3'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,2'] - comment: '' - execution time: 0.0 - expected result: '1. get status AP not exist in disconnect event - - 2. get status wrong password in disconnect event' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. sta connect to ap not exist - - 2. sta connect to ap with wrong password - - ' - sub module: WIFI Connect - summary: check wifi status wrong password, no ap found - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0703 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 C +JAP:DISCONNECTED,4,2'] - comment: '' - execution time: 0.0 - expected result: 1. connect status connect fail in disconnect evnet - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: check wifi status connect fail - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. - - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0308 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bg, STA ht40 - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bg, STA ht40, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0309 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bgn, STA 11b - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bgn, STA 11b, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0304 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11b, STA ht40 - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11b, STA ht40, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0305 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bg, STA 11b - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bg, STA 11b, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0306 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bg, STA 11bg - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bg, STA 11bg, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0307 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11bg, STA 11bgn - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11bg, STA 11bgn, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0102 SDK: '8266_NonOS @@ -3064,116 +2045,6 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0301 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11b, STA 11b - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11b, STA 11b, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0302 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11b, STA 11bg - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11b, STA 11bg, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0101 SDK: '8266_NonOS @@ -3206,52 +2077,6 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0403 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 - - 2. STA connect to ext AP - - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect - to AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0904 SDK: '8266_NonOS @@ -3268,17 +2093,17 @@ test cases: - - SSC SSC1 ap -S -s -p -t 3 -m 1 - ['R SSC1 C +SAP:OK'] - - SSC SSC2 sta -C -s -p 1234567890 - - ['R SSC2 C +JAP:DISCONNECTED,1,204'] + - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] - - SSC SSC2 sta -D - ['R SSC2 C +QAP:OK'] - - WIFI CONN - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:DISCONNECTED,1,5'] + - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] - - WIFI DISCONN - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:DISCONNECTED,5,4'] + - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] comment: '' execution time: 0.0 expected result: '1. succeed @@ -3489,55 +2314,6 @@ test cases: test point 1: basic function test point 2: query JAP status version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0110 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. beacon has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates and xrates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. ht40 STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bg, ht40 STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IGMP_0102 SDK: '8266_NonOS @@ -3652,55 +2428,6 @@ test cases: test point 1: basic function test point 2: IGMP API parameter check version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0113 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. 11bg STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bgn, 11g STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IGMP_0104 SDK: '8266_NonOS @@ -3759,38 +2486,6 @@ test cases: test point 1: basic function test point 2: IGMP API parameter check version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0703 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 C +JAP:DISCONNECTED,4,2'] - comment: '' - execution time: 0.0 - expected result: 1. connect status connect fail in disconnect evnet - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: check wifi status connect fail - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. - - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0110 SDK: '8266_NonOS @@ -5041,57 +3736,6 @@ test cases: test point 1: basic function test point 2: IGMP send/recv test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0120 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed, - - 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=2,sta_channel_width=1, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates/msc0-7' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode ht40 - - 2. ht40 STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as ht40, ht40 STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_IGMP_0201 SDK: '8266_NonOS @@ -7317,257 +5961,6 @@ test cases: test point 1: basic function test point 2: mac address function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0119 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed, - - 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates/msc0-7' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode ht40 - - 2. 11bgn STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as ht40, 11n STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0118 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode ht40 - - 2. 11bg STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as ht40, 11g STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0115 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed, - - 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates/msc0-7' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. ht40 STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bgn, ht40 STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0114 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed, - - 2. assoc response has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates/xrates/msc0-7' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. 11bgn STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bgn, 11n STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0117 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in rates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode ht40 - - 2. 11b STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as ht40, 11b STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_UDP_0202 SDK: '8266_NonOS @@ -7644,92 +6037,6 @@ test cases: test point 1: abnormal/special use test point 2: use UDP SAP (socket/espconn API) in different state version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0111 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_operation.second_channel_offset="0")(Wlan.ie_list.ht_operation.sta_channel_width="0")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] - comment: '' - execution time: 0.0 - expected result: 1. beacon has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=0,sta_channel_width=0, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: 1. target set to PHY mode 11bgn, capture beacon - sub module: Phy Mode - summary: SoftAP set as 11bgn, check beacon - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0112 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in rates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. 11b STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bgn, 11b STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0411 SDK: '8266_NonOS @@ -7800,281 +6107,6 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0502 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2; SoftAP in 20M, STA in 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M, SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_20 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_40' - sub module: Phy Mode - summary: SoftAP STA in channel1 20M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0503 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M, SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0501 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_20 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1 20M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0506 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 40M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_40' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0505 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2; SoftAP in 20M, STA in 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M ,SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0301 SDK: '8266_NonOS @@ -8557,310 +6589,6 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0205 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. target connect to 11g AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bg, join 11g external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0204 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - assoc-req has no erp/ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. target connect to 11b AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bg, join 11b external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0207 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates/ht, cap.short_slot_time=1,rates=[1/2/5.5/11/24/36/48/54]; - - assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. target connect to 11b AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn, join 11b external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0206 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has xrates, no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. target connect to 11n AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bg, join 11n external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0201 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. target connect to 11b AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11b, join 11b external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DHCP_0102 SDK: '8266_NonOS @@ -8906,126 +6634,6 @@ test cases: test point 1: basic function test point 2: DHCP client function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0203 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-reqhas no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. target connect to 11n AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11b, join 11b external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0202 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-reqhas no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. target connect to 11g AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11b, join 11g external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DHCP_0103 SDK: '8266_NonOS @@ -9096,216 +6704,6 @@ test cases: test point 1: basic function test point 2: DHCP client function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0209 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates or msc0-7' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. target connect to 11n AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn, join 11n external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0208 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - assoc-req has xrates no ht, cap.short_slot_time=1,rates=[1/2/5.5/11], xrates=[24/36/48/54]; - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. target connect to 11g AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn, join 11g external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0301 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -S - - [''] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANFAIL, 'P SSC1 P +SCAN:', R SSC1 C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1. second scan failed - - 2. first scan succeed' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. do all channel scan - - 2. do scan before scan finished' - sub module: WIFI Scan - summary: reject scan request before scan finished - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0303 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK'] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:OK'] - - - SSC SSC1 sta -S - - [''] - - - SSC SSC1 sta -C -s -p - - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '2. scan succeed, JAP succeed - - 5. JAP succeed, scan succeed' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 1 STA join AP - - 2. target 1 STA scan before JAP succeed - - 3. target 1 quite AP - - 4. target 1 scan - - 5. target 1 JAP before scan succeed' - sub module: WIFI Scan - summary: scan during JAP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0801 SDK: '8266_NonOS @@ -9369,55 +6767,6 @@ test cases: test point 1: basic function test point 2: wifi auth changed event test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0304 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:OK'] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC1 sta -S - - [''] - - - SSC SSC2 sta -C -s -p - - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '2. scan succeed, JAP succeed - - 5. JAP succeed, scan succeed' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 2 STA join target 1 SoftAP - - 2. target 1 STA scan before target 2 JAP succeed - - 3. target 2 STA QAP - - 4. target 1 STA scan - - 5. target 2 STA JAP before target 1 STA scan succeed' - sub module: WIFI Scan - summary: scan during ext STA join SoftAP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0108 SDK: '8266_NonOS @@ -10465,17 +7814,17 @@ test cases: - - SSC SSC1 ap -S -s -p -t 3 -m 1 - ['R SSC1 C +SAP:OK'] - - SSC SSC2 sta -C -s -p 1234567890 - - ['R SSC2 C +JAP:DISCONNECTED,1,204'] + - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] - - SSC SSC2 sta -D - ['R SSC2 C +QAP:OK'] - - WIFI CONN - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:DISCONNECTED,1,5'] + - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] - - WIFI DISCONN - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:DISCONNECTED,5,4'] + - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] comment: '' execution time: 0.0 expected result: '1. succeed @@ -10535,11 +7884,11 @@ test cases: - - SSC SSC1 sta -C -s -p - ['R SSC1 C +JAP:CONNECTED'] - - SSC SSC1 sta -D - - ['R SSC1 C +JAP:DISCONNECTED,0,8'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:DISCONNECTED,2,15'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:DISCONNECTED,1,201'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] comment: '' execution time: 0.0 expected result: '1. disconnect event reason REASON_ASSOC_LEAVE @@ -10897,43 +8246,6 @@ test cases: test point 1: abnormal/special use test point 2: TCP connect and disconnect abnormal case version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0116 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK', 'R CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.ht_operation.second_channel_offset!="0","2")(Wlan.ie_list.ht_operation.sta_channel_width="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] - comment: '' - execution time: 0.0 - expected result: 1. beacon has erp/ht/xrates, cap.short_slot_time=1, ht_info.2nd_channel_offset=3,sta_channel_width=1, - rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: 1. target set to PHY mode ht40, capture beacon - sub module: Phy Mode - summary: SoftAP set as ht40, check beacon - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DNS_0101 SDK: '8266_NonOS @@ -12119,61 +9431,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0302 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -n 1000000 -j 5 - - [''] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - comment: '' - execution time: 0.0 - expected result: 3. target 2 able to scan AP - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 1 connect to AP - - 2. target 1 start sending UDP packets - - 3. target 2 scan in AP channel in 11b.g,n,ht40 mode' - sub module: WIFI Scan - summary: scan in congest channel - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_ARP_0101 SDK: '8266_NonOS @@ -13937,62 +11194,6 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0303 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s%20or%20wlan%20addr2%20%%s - - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. check STA packet - - 3. check SoftAP packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set softAP 11b, STA 11bgn - - 2. STA connect to ext AP - - 3. ext STA connect to SoftAP' - sub module: Phy Mode - summary: SoftAP 11b, STA 11bgn, get connected and join AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_DHCP_0206 SDK: '8266_NonOS @@ -14890,11 +12091,11 @@ test cases: - - SSC SSC1 sta -C -s -p - ['R SSC1 C +JAP:CONNECTED'] - - SSC SSC1 sta -D - - ['R SSC1 C +JAP:DISCONNECTED,0,8'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:DISCONNECTED,2,15'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:DISCONNECTED,1,201'] + - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] comment: '' execution time: 0.0 expected result: '1. disconnect event reason REASON_ASSOC_LEAVE @@ -14970,289 +12171,6 @@ test cases: test point 1: abnormal/special use test point 2: handling ARP request version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0903 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 C +JAP:DISCONNECTED,4,2'] - comment: '' - execution time: 0.0 - expected result: 1. disconect event reason REASON_AUTH_EXPIRE - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_AUTH_EXPIRE - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. - - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0108 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates and xrates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. 11bg STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bg, 11g STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0109 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates and xrates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. 11bgn STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bg, 11n STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0106 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-Beacon")(Wlan.ie_list.erp="")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")'] - comment: '' - execution time: 0.0 - expected result: 1. beacon has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: 1. target set to PHY mode 11bg, capture beacon - sub module: Phy Mode - summary: SoftAP set as 11bg, check beacon - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0107 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.supported_rates=""1/","2/","5.5/","11/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has erp/xrates, no ht, cap.short_slot_time=1, rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 3. radiotap rates in rates' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bg - - 2. 11b STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11bg, 11b STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0201 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - comment: '' - execution time: 0.0 - expected result: '3. find all 3 ext APs - - 5. find all 3 ext APs - - 7. find all 3 ext APs - - 9. find all 3 ext APs' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. 3 ext APs in 11b, 11g, 11n mode - - 2. STA in 11b mode - - 3. do all channel scan - - 4. STA in 11g mode - - 5. do all channel scan - - 6. STA in 11n ht20 mode - - 7. do all channel scan - - 8. STA in 11n ht40 mode - - 9. do all channel scan' - sub module: WIFI Scan - summary: STA in differnt PHY mode to scan AP in different PHY mode - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: Scan in different mode and channel - version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0503 SDK: '8266_NonOS @@ -15311,285 +12229,6 @@ test cases: test point 1: basic function test point 2: reconnect policy test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0402 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get - disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 - - 2. AP get connected - - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected - than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0401 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 - - 2. STA connect to ext AP - - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to - AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0407 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 - - 2. STA connect to ext AP - - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect - to AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0406 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get - disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 - - 2. AP get connected - - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected - than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0405 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 - - 2. STA connect to ext AP - - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to - AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0404 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not - get disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 - - 2. AP get connected - - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get - connected than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0112 SDK: '8266_NonOS @@ -15630,53 +12269,6 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0408 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not - get disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 - - 2. AP get connected - - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get - connected than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0114 SDK: '8266_NonOS @@ -15717,315 +12309,6 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0214 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities.short_gi_for_40="1")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - 4. 40M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn ht40 - - 2. target connect to 11n ht40 AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn ht40,join ht40 external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0212 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - assoc-req has xrates no ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn ht40 - - 2. target connect to 11g AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn ht40, join 11g external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0213 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn ht40 - - 2. target connect to 11n AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn ht40, join 11n external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0210 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities="")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")(Wlan.capability.short_slot_time="1")', - 'P CAP OR 2 PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M") - PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.msc="")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req and assoc-req has xrates/ht, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in rates or xrates or msc0-7' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn - - 2. target connect to 11n ht40 AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn, join ht40 external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0211 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 sta -C -s -p - - ['P SSC1 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-ProbeReq")(Wlan.ie_list.extended_supported_rates+Wlan.ie_list.supported_rates="24/","36/","48/","54/","1/","2/","5.5/","11/","6/","9/","12/","18/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocReq")(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. probe-req has xrates/ht, ht_cap.short_gi40=1, 40width=1, cap.short_slot_time=1,rates+xrates=[1/2/5.5/11/6/9/12/18/24/36/48/54]; - - assoc-req has no ht/xrates, cap.short_slot_time=1,rates=[1/2/5.5/11] - - 4. 20M - - 5. succeed - - 6. data rate in radiotap is in [1/2/5.5/11]' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. target set to PHY mode 11bgn ht40 - - 2. target connect to 11b AP - - 3. capture probe-req and assoc-req in step2 - - 4. check if config bandwidth correct - - 5. send data from target - - 6. capture data in step5' - sub module: Phy Mode - summary: target STA set as 11bgn ht40, join 11b external AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0104 SDK: '8266_NonOS @@ -16399,61 +12682,6 @@ test cases: test point 1: basic function test point 2: SAP/JAP with different config version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0504 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 40M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IP_0101 SDK: '8266_NonOS @@ -16512,46 +12740,6 @@ test cases: test point 1: basic function test point 2: set and query static IP version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0702 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,3'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 C +JAP:DISCONNECTED,2'] - comment: '' - execution time: 0.0 - expected result: '1. get status AP not exist in disconnect event - - 2. get status wrong password in disconnect event' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1. sta connect to ap not exist - - 2. sta connect to ap with wrong password' - sub module: WIFI Connect - summary: check wifi status wrong password, no ap found - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi connect status check - version: v1 (2016-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0801 SDK: '8266_NonOS @@ -17276,55 +13464,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0104 - SDK: ESP32_IDF - Test App: SSC - allow fail: 2/3 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 2 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - STRING wlan%20addr2%20%%s - - [R PC_COM C OK] - - - 'NIC CAP START wlan_capture ' - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED', 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Management-AssocRes")(Wlan.ie_list.erp!)(Wlan.ie_list.ht_capabilities!)(Wlan.ie_list.extended_supported_rates!)(Wlan.capability.short_slot_time="1")(Wlan.ie_list.supported_rates="1/","2/","5.5/","11/")', - 'P CAP PDU (Wlan.frame_ctrl.type_subtype="Data")(Wlan.radiotap.rate<"1M","2M","5.5M","11M")'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. assoc response has no erp/xrates/ht, cap.short_slot_time=1, rates=[1/2/5/5/11] - - 3. radiotap rates in [1/2/5/5/11]' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target set to PHY mode 11b - - 2. 11bgn STA connect to SoftAP, capture assoc response - - 3. ping, capture Data' - sub module: Phy Mode - summary: SoftAP set as 11b, 11n STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: SoftAP PHY mode test - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0113 SDK: '8266_NonOS From d7db3e6a35f3877577ed7eb53c028b321bb59dcc Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Wed, 28 Sep 2016 20:11:42 +0800 Subject: [PATCH 23/36] build SSC should also use variable for server name --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f422f9f25..a258da418 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,7 +62,7 @@ build_ssc: expire_in: 6 mos script: - - git clone ssh://git@gitlab.espressif.cn:27227/yinling/SSC.git + - git clone $GITLAB_SSH_SERVER/yinling/SSC.git - cd SSC - make defconfig - chmod +x gen_misc_ng.sh From 4929534448cbcc711bb180ce29d3ecc8a4df37e4 Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 13:38:29 +0800 Subject: [PATCH 24/36] add gitlab key in test template job --- .gitlab-ci.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a258da418..952cba7d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,6 +64,7 @@ build_ssc: script: - git clone $GITLAB_SSH_SERVER/yinling/SSC.git - cd SSC + - git checkout ${CI_BUILD_REF_NAME} || echo "Using SSC default branch..." - make defconfig - chmod +x gen_misc_ng.sh - ./gen_misc_ng.sh @@ -137,8 +138,17 @@ push_master_to_github: expire_in: 6 mos script: + # add gitlab ssh key + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64 + - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa + - chmod 600 ~/.ssh/id_rsa + - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config + # clone test bench - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script + # run test - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH @@ -151,8 +161,17 @@ push_master_to_github: script: # must be night build triggers, otherwise exit without test - test $NIGHT_BUILD != "Yes" || exit 0 + # add gitlab ssh key + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64 + - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa + - chmod 600 ~/.ssh/id_rsa + - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config + # clone test bench - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script + # run test - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH Function_SYS_01: From 9b72441b450a0320c0ebe5d21e5ffe3c1fd97bc2 Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 14:14:19 +0800 Subject: [PATCH 25/36] Test cases use libpcap or libnet are not CI ready now: 1. It need rebuild native lib 2. require root permission --- .gitlab-ci.yml | 40 --- .../test/CIConfigs/Function_TCPIP_01.yml | 12 +- .../test/CIConfigs/Function_TCPIP_02.yml | 12 +- .../test/CIConfigs/Function_TCPIP_03.yml | 12 +- .../test/CIConfigs/Function_TCPIP_04.yml | 12 +- .../test/CIConfigs/Function_TCPIP_05.yml | 7 +- .../test/CIConfigs/Function_WIFI_07.yml | 10 - .../test/CIConfigs/Function_WIFI_08.yml | 10 - .../test/CIConfigs/Function_WIFI_09.yml | 10 - .../test/CIConfigs/Function_WIFI_10.yml | 10 - .../test/CIConfigs/Function_WIFI_11.yml | 10 - components/test/TestCaseAll.yml | 274 ------------------ 12 files changed, 27 insertions(+), 392 deletions(-) delete mode 100644 components/test/CIConfigs/Function_WIFI_07.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_08.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_09.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_10.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_11.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 952cba7d7..89269aa42 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -337,43 +337,3 @@ Function_TCPIP_12: - SSC_T1_2 before_script: - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_12.yml - -Function_WIFI_07: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_07.yml - -Function_WIFI_08: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_08.yml - -Function_WIFI_09: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_09.yml - -Function_WIFI_10: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_10.yml - -Function_WIFI_11: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T2_PhyMode - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_11.yml diff --git a/components/test/CIConfigs/Function_TCPIP_01.yml b/components/test/CIConfigs/Function_TCPIP_01.yml index 29542e9fe..e947b0c5c 100644 --- a/components/test/CIConfigs/Function_TCPIP_01.yml +++ b/components/test/CIConfigs/Function_TCPIP_01.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [TCPIP_ARP_0202, ^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, TCPIP_DHCP_0302, - TCPIP_DHCP_0301, TCPIP_ARP_0204, TCPIP_TCP_0412, TCPIP_TCP_0403, TCPIP_TCP_0402, - TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, TCPIP_TCP_0404, TCPIP_TCP_0408, - ^TCPIP_TCP_0202, TCPIP_TCP_0110, ^TCPIP_TCP_0203, TCPIP_DHCP_0101, TCPIP_DHCP_0103, - TCPIP_DHCP_0102, TCPIP_IP_0101, TCPIP_IP_0102, ^TCPIP_IGMP_0102, ^TCPIP_IGMP_0101, - ^TCPIP_IGMP_0104, TCPIP_IGMP_0104, TCPIP_IGMP_0103, TCPIP_IGMP_0102, TCPIP_IGMP_0101] + ID: [^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, TCPIP_DHCP_0302, TCPIP_DHCP_0301, + TCPIP_TCP_0412, TCPIP_TCP_0403, TCPIP_TCP_0402, TCPIP_TCP_0401, TCPIP_TCP_0407, + TCPIP_TCP_0406, TCPIP_TCP_0404, TCPIP_TCP_0408, ^TCPIP_TCP_0202, TCPIP_TCP_0110, + ^TCPIP_TCP_0203, TCPIP_DHCP_0101, TCPIP_DHCP_0103, TCPIP_DHCP_0102, TCPIP_IP_0101, + TCPIP_IP_0102, ^TCPIP_IGMP_0102, ^TCPIP_IGMP_0101, ^TCPIP_IGMP_0104, TCPIP_IGMP_0104, + TCPIP_IGMP_0103, TCPIP_IGMP_0102, TCPIP_IGMP_0101, ^TCPIP_UDP_0201, TCPIP_UDP_0108] diff --git a/components/test/CIConfigs/Function_TCPIP_02.yml b/components/test/CIConfigs/Function_TCPIP_02.yml index e40f69db5..6a3cb08d6 100644 --- a/components/test/CIConfigs/Function_TCPIP_02.yml +++ b/components/test/CIConfigs/Function_TCPIP_02.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_UDP_0201, TCPIP_UDP_0108, TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0105, - TCPIP_UDP_0101, TCPIP_IGMP_0204, TCPIP_IGMP_0201, TCPIP_IGMP_0202, TCPIP_IGMP_0203, - ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, ^TCPIP_TCP_0402, - ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, TCPIP_UDP_0201, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, - ^TCPIP_TCP_0102, ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, - ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210] + ID: [TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0105, TCPIP_UDP_0101, TCPIP_IGMP_0204, + TCPIP_IGMP_0201, TCPIP_IGMP_0202, TCPIP_IGMP_0203, ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, + ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, ^TCPIP_TCP_0402, ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, + TCPIP_UDP_0201, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0102, ^TCPIP_TCP_0105, + ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, + TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, TCPIP_DHCP_0211] diff --git a/components/test/CIConfigs/Function_TCPIP_03.yml b/components/test/CIConfigs/Function_TCPIP_03.yml index 79107aca8..0c4ac3752 100644 --- a/components/test/CIConfigs/Function_TCPIP_03.yml +++ b/components/test/CIConfigs/Function_TCPIP_03.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_TCP_0212, TCPIP_DHCP_0211, TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, - ^TCPIP_IP_0102, ^TCPIP_UDP_0105, ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, - ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, ^TCPIP_UDP_0108, ^TCPIP_IGMP_0201, ^TCPIP_IGMP_0203, - ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, TCPIP_UDP_0114, TCPIP_UDP_0113, TCPIP_UDP_0112, - ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, ^TCPIP_TCP_0207, TCPIP_TCP_0501, TCPIP_TCP_0106, - TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, TCPIP_TCP_0102, TCPIP_TCP_0103] + ID: [TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, ^TCPIP_IP_0102, ^TCPIP_UDP_0105, + ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, + ^TCPIP_UDP_0108, ^TCPIP_IGMP_0201, ^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, + TCPIP_UDP_0114, TCPIP_UDP_0113, TCPIP_UDP_0112, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, + ^TCPIP_TCP_0207, TCPIP_TCP_0106, TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, + TCPIP_TCP_0102, TCPIP_TCP_0103, TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114] diff --git a/components/test/CIConfigs/Function_TCPIP_04.yml b/components/test/CIConfigs/Function_TCPIP_04.yml index 8d20569c1..f8bdb264b 100644 --- a/components/test/CIConfigs/Function_TCPIP_04.yml +++ b/components/test/CIConfigs/Function_TCPIP_04.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114, ^TCPIP_TCP_0115, ^TCPIP_TCP_0112, - ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, TCPIP_ARP_0101, ^TCPIP_DHCP_0209, - ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, - ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, TCPIP_TCP_0204, TCPIP_TCP_0207, - TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, TCPIP_TCP_0203, TCPIP_TCP_0202, - TCPIP_TCP_0208, TCPIP_DHCP_0206, TCPIP_DHCP_0207, TCPIP_DHCP_0204, TCPIP_DHCP_0205] + ID: [^TCPIP_TCP_0115, ^TCPIP_TCP_0112, ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, + ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, + ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, TCPIP_TCP_0204, + TCPIP_TCP_0207, TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, TCPIP_TCP_0203, + TCPIP_TCP_0202, TCPIP_TCP_0208, TCPIP_DHCP_0206, TCPIP_DHCP_0207, TCPIP_DHCP_0204, + TCPIP_DHCP_0205, TCPIP_DHCP_0202, TCPIP_DHCP_0203, ^TCPIP_TCP_0204, TCPIP_DHCP_0201] diff --git a/components/test/CIConfigs/Function_TCPIP_05.yml b/components/test/CIConfigs/Function_TCPIP_05.yml index 7ff1bbf8c..21b3b7a6d 100644 --- a/components/test/CIConfigs/Function_TCPIP_05.yml +++ b/components/test/CIConfigs/Function_TCPIP_05.yml @@ -2,8 +2,7 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [TCPIP_DHCP_0202, TCPIP_DHCP_0203, ^TCPIP_TCP_0204, TCPIP_DHCP_0201, ^TCPIP_TCP_0208, - TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, ^TCPIP_TCP_0411, TCPIP_ARP_0203, + ID: [^TCPIP_TCP_0208, TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, ^TCPIP_TCP_0411, ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, - TCPIP_ARP_0201, TCPIP_TCP_0115, TCPIP_TCP_0114, TCPIP_TCP_0116, TCPIP_TCP_0111, - TCPIP_TCP_0113, TCPIP_TCP_0112] + TCPIP_TCP_0115, TCPIP_TCP_0114, TCPIP_TCP_0116, TCPIP_TCP_0111, TCPIP_TCP_0113, + TCPIP_TCP_0112] diff --git a/components/test/CIConfigs/Function_WIFI_07.yml b/components/test/CIConfigs/Function_WIFI_07.yml deleted file mode 100644 index 22840fa7a..000000000 --- a/components/test/CIConfigs/Function_WIFI_07.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0105, WIFI_PHY_0102, WIFI_PHY_0102, - WIFI_PHY_0102, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0103, WIFI_PHY_0101, WIFI_PHY_0101, - WIFI_PHY_0101, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0313, WIFI_PHY_0312, WIFI_PHY_0312, - WIFI_PHY_0312, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0311, WIFI_PHY_0310, WIFI_PHY_0310, - WIFI_PHY_0310, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0316, WIFI_PHY_0315, WIFI_PHY_0315, - WIFI_PHY_0315] diff --git a/components/test/CIConfigs/Function_WIFI_08.yml b/components/test/CIConfigs/Function_WIFI_08.yml deleted file mode 100644 index 640330233..000000000 --- a/components/test/CIConfigs/Function_WIFI_08.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0314, WIFI_PHY_0308, WIFI_PHY_0308, - WIFI_PHY_0308, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0309, WIFI_PHY_0304, WIFI_PHY_0304, - WIFI_PHY_0304, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0305, WIFI_PHY_0306, WIFI_PHY_0306, - WIFI_PHY_0306, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0307, WIFI_PHY_0301, WIFI_PHY_0301, - WIFI_PHY_0301, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0302, WIFI_PHY_0110, WIFI_PHY_0110, - WIFI_PHY_0110] diff --git a/components/test/CIConfigs/Function_WIFI_09.yml b/components/test/CIConfigs/Function_WIFI_09.yml deleted file mode 100644 index a51560fd6..000000000 --- a/components/test/CIConfigs/Function_WIFI_09.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0113, WIFI_PHY_0120, WIFI_PHY_0120, - WIFI_PHY_0120, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0119, WIFI_PHY_0118, WIFI_PHY_0118, - WIFI_PHY_0118, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0115, WIFI_PHY_0114, WIFI_PHY_0114, - WIFI_PHY_0114, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0117, WIFI_PHY_0111, WIFI_PHY_0111, - WIFI_PHY_0111, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0112, WIFI_PHY_0205, WIFI_PHY_0205, - WIFI_PHY_0205] diff --git a/components/test/CIConfigs/Function_WIFI_10.yml b/components/test/CIConfigs/Function_WIFI_10.yml deleted file mode 100644 index f143efb3b..000000000 --- a/components/test/CIConfigs/Function_WIFI_10.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0204, WIFI_PHY_0207, WIFI_PHY_0207, - WIFI_PHY_0207, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0206, WIFI_PHY_0201, WIFI_PHY_0201, - WIFI_PHY_0201, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0203, WIFI_PHY_0202, WIFI_PHY_0202, - WIFI_PHY_0202, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0209, WIFI_PHY_0208, WIFI_PHY_0208, - WIFI_PHY_0208, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0116, WIFI_PHY_0303, WIFI_PHY_0303, - WIFI_PHY_0303] diff --git a/components/test/CIConfigs/Function_WIFI_11.yml b/components/test/CIConfigs/Function_WIFI_11.yml deleted file mode 100644 index f4adf0d2e..000000000 --- a/components/test/CIConfigs/Function_WIFI_11.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0108, WIFI_PHY_0109, WIFI_PHY_0109, - WIFI_PHY_0109, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0106, WIFI_PHY_0107, WIFI_PHY_0107, - WIFI_PHY_0107, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0214, WIFI_PHY_0212, WIFI_PHY_0212, - WIFI_PHY_0212, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0213, WIFI_PHY_0210, WIFI_PHY_0210, - WIFI_PHY_0210, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0211, WIFI_PHY_0104, WIFI_PHY_0104, - WIFI_PHY_0104] diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml index d78701759..40d189171 100644 --- a/components/test/TestCaseAll.yml +++ b/components/test/TestCaseAll.yml @@ -124,59 +124,6 @@ test cases: test point 1: basic function test point 2: sw reboot version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ARP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+send+block_arp_ip - - ['R PC_COM C +NIC_START:OK'] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr "192.168.11.240" - ethernet_len_type "ARP" ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_sender_hw_addr - "18:18:18:18:18:18" ethernet_len_type "ARP" ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_sender_proto_addr - ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - comment: '' - execution time: 0.0 - expected result: 1. PC can't recv ARP reply from target - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: 1. PC send ARP req with target_hw_addr, sender_hw_addr and sender_proto_addr - not correct - sub module: ARP - summary: PC send invalid ARP request to target 2 - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: handling ARP request - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DHCP_0302 SDK: '8266_NonOS @@ -527,48 +474,6 @@ test cases: test point 1: basic function test point 2: 'get heap size ' version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ARP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+send+block_arp_ip - - ['R PC_COM C +NIC_START:OK'] - - - NIC NIC1 SEND ARP arp_op_code 0xFF arp_target_proto_addr ethernet_dst_addr - "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - comment: '' - execution time: 0.0 - expected result: 1. PC can't recv ARP reply from target - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: 1. PC send ARP with error op_code - sub module: ARP - summary: PC send invalid ARP request to target 4 - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: handling ARP request - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0412 SDK: '8266_NonOS @@ -8201,51 +8106,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0501 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+block_ip - - ['R PC_COM C +NIC_START:OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - [''] - - - DELAY 10 - - ['R SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: 2. connect failed, no exception - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. PC do not reply any IP packet on NIC - - 2. target try to connect to TCP server with PC NIC IP' - sub module: TCP - summary: PC do not reply TCP SYN of target - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP connect and disconnect abnormal case - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_DNS_0101 SDK: '8266_NonOS @@ -9431,46 +9291,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ARP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+send+block_arp_ip - - ['R PC_COM C +NIC_START:OK'] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr ethernet_dst_addr - "ff:ff:ff:ff:ff:ff" - - ['P PC_COM C +NIC_SEND:OK', P NIC1 PDU (Ethernet.dst_addr=)(ARP.hw_type="Ethernet")(ARP.protocol="IPv4")(ARP.hw_len="6")(ARP.proto_len="4")(ARP.op_code="reply")(ARP.sender_hw_addr=)(ARP.sender_proto_addr=)(ARP.target_hw_addr=)(ARP.target_proto_addr=)] - comment: '' - execution time: 0.0 - expected result: 1. PC recv target valid ARP reply - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: 1. PC send ARP req to target - sub module: ARP - summary: PC send valid ARP request to target - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: handling ARP request - version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_UDP_0304 SDK: '8266_NonOS @@ -12124,53 +11944,6 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ARP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+send+block_arp_ip - - ['R PC_COM C +NIC_START:OK'] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_hw_len - 10 ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_target_proto_addr arp_proto_len - 10 ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - comment: '' - execution time: 0.0 - expected result: 1. PC can't recv ARP reply from target - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: 1. PC send ARP req with hw_addr_len and proto_addr_len not correct - sub module: ARP - summary: PC send invalid ARP request to target 3 - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: handling ARP request - version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0503 SDK: '8266_NonOS @@ -12867,53 +12640,6 @@ test cases: test point 1: basic function test point 2: SAP/JAP with different config version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ARP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - STRING ether%20src%20%%s%20or%20ether%20dst%20%%s - - - [R PC_COM C OK] - - - NIC NIC1 START capture+send+block_arp_ip - - ['R PC_COM C +NIC_START:OK'] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_hw_type 0xF1F1 arp_target_proto_addr - ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - - - NIC NIC1 SEND ARP arp_op_code "request" arp_proto_type 0xF1F1 arp_target_proto_addr - ethernet_dst_addr "ff:ff:ff:ff:ff:ff" - - [''] - - - DELAY 2 - - [P PC_COM C +DELAYDONE, P NIC1 NPDU (Ethernet.dst_addr=)(Ethernet.len_type="ARP")] - comment: '' - execution time: 0.0 - expected result: 1. PC can't recv ARP reply from target - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: 1. PC send ARP req with unsupported hw type and protocol type - sub module: ARP - summary: PC send invalid ARP request to target 1 - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: handling ARP request - version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0503 SDK: '8266_NonOS From 547fb6ed6ca0dc9dd6da222f16762ea26903b54c Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 20:20:40 +0800 Subject: [PATCH 26/36] update current known issue for ESP32 IDF test --- components/test/KnownIssues | 66 +++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/components/test/KnownIssues b/components/test/KnownIssues index e69de29bb..08bc48f18 100644 --- a/components/test/KnownIssues +++ b/components/test/KnownIssues @@ -0,0 +1,66 @@ + +# NOT SUPPORT + +# ICMP send Ping not supported +TCPIP_ICMP_0101 +^TCPIP_ICMP_0101 + +# IGMP cases are not supported for now +TCPIP_IGMP_0101 +TCPIP_IGMP_0102 +TCPIP_IGMP_0103 +TCPIP_IGMP_0104 +TCPIP_IGMP_0201 +TCPIP_IGMP_0202 +TCPIP_IGMP_0203 +TCPIP_IGMP_0204 +^TCPIP_IGMP_0101 +^TCPIP_IGMP_0102 +^TCPIP_IGMP_0103 +^TCPIP_IGMP_0104 +^TCPIP_IGMP_0201 +^TCPIP_IGMP_0202 +^TCPIP_IGMP_0203 +^TCPIP_IGMP_0204 + +# BUG + +# auth change event +WIFI_CONN_0801 + +# disconnect reason +WIFI_CONN_0904 +^WIFI_CONN_0904 +WIFI_CONN_0901 +^WIFI_CONN_0901 + +# Wifi connect issue +WIFI_CONN_0104 +^WIFI_CONN_0104 + +# DHCP issues +^TCPIP_DHCP_0301 +TCPIP_DHCP_0301 +TCPIP_DHCP_0101 +TCPIP_DHCP_0207 +^TCPIP_DHCP_0207 +TCPIP_DHCP_0208 +^TCPIP_DHCP_0208 + +# TCP issue +TCPIP_TCP_0402 +^TCPIP_TCP_0406 +^TCPIP_TCP_0401 +TCPIP_TCP_0210 +^TCPIP_TCP_0210 +TCPIP_TCP_0103 + + +# UDP issue +TCPIP_UDP_0103 +^TCPIP_UDP_0103 +TCPIP_UDP_0110 +^TCPIP_UDP_0110 + + + From 12fa7472ea1bfa3759a47b219054ffce2997c546 Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 20:21:33 +0800 Subject: [PATCH 27/36] night jobs should exit succeed if no need to run --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 89269aa42..2b421e77a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,7 +160,7 @@ push_master_to_github: - triggers script: # must be night build triggers, otherwise exit without test - - test $NIGHT_BUILD != "Yes" || exit 0 + - test $NIGHT_BUILD = "Yes" || exit 0 # add gitlab ssh key - mkdir -p ~/.ssh - chmod 700 ~/.ssh From 64426013333f01838babe444307ddc7511afff8d Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 20:22:33 +0800 Subject: [PATCH 28/36] add some missing cases caused by autogen bug --- components/test/TestCaseAll.yml | 1239 +++++++++++++++++++++++++++++++ 1 file changed, 1239 insertions(+) diff --git a/components/test/TestCaseAll.yml b/components/test/TestCaseAll.yml index 40d189171..7112c8793 100644 --- a/components/test/TestCaseAll.yml +++ b/components/test/TestCaseAll.yml @@ -902,6 +902,72 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0405 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -S -s -l 1 + - [''] + - - DELAY 5400 + - ['P SSC1 RE CLOSED:\d+,0'] + comment: '' + execution time: 1.5 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.TCP连接断开' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.PC 网卡 disable + + 6.target1上使用socket1发送数据,等待 90 分钟' + sub module: TCP + summary: do TCP send after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0404 SDK: '8266_NonOS @@ -958,6 +1024,38 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0408 SDK: '8266_NonOS @@ -1982,6 +2080,52 @@ test cases: test point 1: basic function test point 2: DNS function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0403 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0904 SDK: '8266_NonOS @@ -3927,6 +4071,72 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0405 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -S -s -l 1 + - [''] + - - DELAY 5400 + - ['P SSC1 RE CLOSED:\d+,0'] + comment: '' + execution time: 1.5 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.TCP连接断开' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.PC 网卡 disable + + 6.target1上使用socket1发送数据,等待 90 分钟' + sub module: TCP + summary: do TCP send after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_TCP_0406 SDK: '8266_NonOS @@ -6012,6 +6222,281 @@ test cases: test point 1: abnormal/special use test point 2: TCP handling abnormal event version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0502 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0503 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0501 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0506 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0505 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA set to 40M ,SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0301 SDK: '8266_NonOS @@ -6609,6 +7094,93 @@ test cases: test point 1: basic function test point 2: DHCP client function test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0301 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANFAIL, 'P SSC1 P +SCAN:', R SSC1 C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1. second scan failed + + 2. first scan succeed' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. do all channel scan + + 2. do scan before scan finished' + sub module: WIFI Scan + summary: reject scan request before scan finished + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0303 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 1 STA join AP + + 2. target 1 STA scan before JAP succeed + + 3. target 1 quite AP + + 4. target 1 scan + + 5. target 1 JAP before scan succeed' + sub module: WIFI Scan + summary: scan during JAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0801 SDK: '8266_NonOS @@ -6672,6 +7244,55 @@ test cases: test point 1: basic function test point 2: wifi auth changed event test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0304 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC2 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 2 STA join target 1 SoftAP + + 2. target 1 STA scan before target 2 JAP succeed + + 3. target 2 STA QAP + + 4. target 1 STA scan + + 5. target 2 STA JAP before target 1 STA scan succeed' + sub module: WIFI Scan + summary: scan during ext STA join SoftAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0108 SDK: '8266_NonOS @@ -7773,6 +8394,47 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0901 SDK: '8266_NonOS @@ -9291,6 +9953,61 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0302 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -n 1000000 -j 5 + - [''] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: 3. target 2 able to scan AP + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. target 1 connect to AP + + 2. target 1 start sending UDP packets + + 3. target 2 scan in AP channel in 11b.g,n,ht40 mode' + sub module: WIFI Scan + summary: scan in congest channel + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) - CI ready: 'Yes' ID: TCPIP_UDP_0304 SDK: '8266_NonOS @@ -11944,6 +12661,147 @@ test cases: test point 1: basic function test point 2: wifi disconnect reason test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0201 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + comment: '' + execution time: 0.0 + expected result: '3. find all 3 ext APs + + 5. find all 3 ext APs + + 7. find all 3 ext APs + + 9. find all 3 ext APs' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + module: WIFI MAC + steps: '1. 3 ext APs in 11b, 11g, 11n mode + + 2. STA in 11b mode + + 3. do all channel scan + + 4. STA in 11g mode + + 5. do all channel scan + + 6. STA in 11n ht20 mode + + 7. do all channel scan + + 8. STA in 11n ht40 mode + + 9. do all channel scan' + sub module: WIFI Scan + summary: STA in differnt PHY mode to scan AP in different PHY mode + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: Scan in different mode and channel + version: v1 (2015-8-15) - CI ready: 'Yes' ID: WIFI_CONN_0503 SDK: '8266_NonOS @@ -12002,6 +12860,285 @@ test cases: test point 1: basic function test point 2: reconnect policy test version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0402 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0401 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0407 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0406 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0405 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0404 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0112 SDK: '8266_NonOS @@ -12042,6 +13179,53 @@ test cases: test point 1: basic function test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0408 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0114 SDK: '8266_NonOS @@ -12455,6 +13639,61 @@ test cases: test point 1: basic function test point 2: SAP/JAP with different config version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0504 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) - CI ready: 'Yes' ID: ^TCPIP_IP_0101 SDK: '8266_NonOS From fbb654fa686ccce365af7317a1cf76db578b921e Mon Sep 17 00:00:00 2001 From: Yinling Date: Thu, 29 Sep 2016 20:47:31 +0800 Subject: [PATCH 29/36] move content from readme to wiki --- components/test/README.md | 57 --------------------------------------- 1 file changed, 57 deletions(-) diff --git a/components/test/README.md b/components/test/README.md index f23153bca..1d0c4cfbd 100644 --- a/components/test/README.md +++ b/components/test/README.md @@ -2,60 +2,3 @@ # Note: The test cases in this folder are for Espressif internal use. # Goto internal project wiki Testing page for detail about this folder. - -## File Structure - -``` -test --- CIConfigs --- sanity_test1.yml (Runner config files) - | |-- stress_test1.yml - |-- TestCaseAll.yml (TestCaseFiles) - |-- TestEnvAll.yml (TestCaseFiles) - |-- InitialConditionAll.yml (TestCaseFiles) - |-- TestCaseScript --- ... (Test case scripts) -``` - -1. CIConfigs folder - * config for CI config files are put in this folder - * CI config files configs the cases and some other options for the CI job with same name -1. Test case files - * TestCaseAll.yml (test cases) - * InitialConditionAll.yml (initial conditions) - * TestEnvAll.yml (test environments) - * [how to modify test cases](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestCaseFiles.DesignNote.md) -1. Test case scripts - * some cases are implemented by specified script. those scripts are put in this folder. - - -## Modify test cases - -1. check if the "SDK" of the test case only contain the current SDK - * if Yes, then just modify the test case behavior - * if No: - 1. then remove current SDK name from "SDK" of the test case - 2. Add a new test case, and set "SDK" only support current SDK name -2. use [auto_test_script](https://gitlab.espressif.cn:6688/yinling/auto_test_script) to load the modified case and verify the modification -3. create a merge request and assign to HYL (or add comment @yinling for merging test). -After review it will be merged to SDK and will be The cases will be synced to database in auto_test_script. - - -## Run test case locally - -1. clone auto_test_script (ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git) from gitlab -2. create test environment: - 1. search test case (search test case ID in components/test/TestCaseAll.yml, get the "test environment" value - 2. goto [test environment list](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Documents/TestEnvList.md), find the link and goto the environment detail page - 3. create test environment according to figure and description - 4. [config test environment](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestEnvConfig.DesignNote.md). All parameters in table "Parameters require config before use" MUST be configured. -3. run test cases with [CIRunner.py](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/RunnerConfigs.DesignNote.md) - - - -## exclude known issues for CI -the test cases listed in file "KnownIssues" will be excluded by CI when calculating results - -Editing KnownIssues file is very simple, one single line for the ID for each case. -``` -TCPIP_TCP_0101 -TCPIP_TCP_0201 -... -``` \ No newline at end of file From 19ca66c96824d3205fb178021064093b61f43972 Mon Sep 17 00:00:00 2001 From: Yinling Date: Fri, 30 Sep 2016 13:58:02 +0800 Subject: [PATCH 30/36] add job to generate test report --- .gitlab-ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2b421e77a..bd6e3ce5a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,6 +88,30 @@ test_build_system: script: - ./make/test_build_system.sh +test_report: + stage: deploy + only: + - master + - triggers + tags: + - test_report + variables: + LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" + TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/test" + REPORT_PATH: "$CI_PROJECT_DIR/CI_Test_Report" + artifacts: + when: always + paths: + - $REPORT_PATH + expire_in: 6 mos + script: + - ls $LOG_PATH + # clone test bench + - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git + - cd auto_test_script + # generate report + - python CITestReport.py -l $LOG_PATH -t $TEST_CASE_FILE_PATH -p $REPORT_PATH + push_master_to_github: before_script: From e5b8854d96ee155c7509ed5edffa2139b33467f6 Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Fri, 30 Sep 2016 15:34:17 +0800 Subject: [PATCH 31/36] can not put test report to deploy stage, otherwise if test fails it won't generate test report. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd6e3ce5a..775a13b47 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,7 +89,7 @@ test_build_system: - ./make/test_build_system.sh test_report: - stage: deploy + stage: test only: - master - triggers From 1447cd4136f251099cec0fe60a98d1a9881e21fe Mon Sep 17 00:00:00 2001 From: Yinling Date: Fri, 30 Sep 2016 16:11:24 +0800 Subject: [PATCH 32/36] fix issue on test report job: 1. test report job should be put to deploy stage, otherwise it can't get logs from test stage 2. allow test fail so that test report job will be executed for failed test --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 775a13b47..ef2848907 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,12 +89,13 @@ test_build_system: - ./make/test_build_system.sh test_report: - stage: test + stage: deploy only: - master - triggers tags: - test_report + allow_failure: true variables: LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/test" @@ -144,6 +145,7 @@ push_master_to_github: only: - master - triggers + allow_failure: true variables: # LOCAL_ENV_CONFIG_PATH: define in template and jobs can overwrite if required From 685c1084ba276e4ff9e39e28fe796ed0a347eac0 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Tue, 11 Oct 2016 16:41:05 +1100 Subject: [PATCH 33/36] Reinstate build_examples gitlab CI case Had been removed in 42e31116 --- .gitlab-ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef2848907..7834707fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -69,6 +69,23 @@ build_ssc: - chmod +x gen_misc_ng.sh - ./gen_misc_ng.sh +build_examples: + <<: *build_template + artifacts: + paths: + - build_examples/*/*/build/*.bin + - build_examples/*/*/build/*.elf + - build_examples/*/*/build/*.map + - build_examples/*/*/build/bootloader/*.bin + expire_in: 6 mos + + script: + # it's not possible to build 100% out-of-tree and have the "artifacts" + # mechanism work, but this is the next best thing + - mkdir build_examples + - cd build_examples + - ${IDF_PATH}/make/build_examples.sh + test_nvs_on_host: stage: test image: espressif/esp32-ci-env From b72d22041ca922792c3648806e5abdc187055ba8 Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 12 Oct 2016 11:17:56 +0800 Subject: [PATCH 34/36] rename components/test to idf_test: 1. test will be categorized by test level 2. add test level as attribute to test cases 3. will select TestCaseScript by the test cases added to CI (currently no test case uses test case script) 4. adding test level to test jobs 5. update .gitlab-ci.yml, each job need to set its test case file path 6. update .gitlab-ci.yml, test case path for test report is changed to idf_test --- .gitlab-ci.yml | 141 +- components/idf_test/README.md | 61 + .../CIConfigs/IT_Function_SYS_01.yml} | 0 .../CIConfigs/IT_Function_TCPIP_01.yml | 10 + .../CIConfigs/IT_Function_TCPIP_02.yml | 10 + .../CIConfigs/IT_Function_TCPIP_03.yml | 10 + .../CIConfigs/IT_Function_TCPIP_04.yml | 10 + .../CIConfigs/IT_Function_TCPIP_05.yml | 8 + .../CIConfigs/IT_Function_TCPIP_06.yml} | 0 .../CIConfigs/IT_Function_TCPIP_07.yml} | 8 +- .../CIConfigs/IT_Function_TCPIP_08.yml} | 8 +- .../CIConfigs/IT_Function_TCPIP_09.yml | 10 + .../CIConfigs/IT_Function_TCPIP_10.yml} | 6 +- .../CIConfigs/IT_Function_TCPIP_11.yml} | 6 +- .../CIConfigs/IT_Function_TCPIP_12.yml | 6 + .../CIConfigs/IT_Function_WIFI_01.yml | 10 + .../CIConfigs/IT_Function_WIFI_02.yml | 7 + .../CIConfigs/IT_Function_WIFI_03.yml} | 0 .../CIConfigs/IT_Function_WIFI_04.yml} | 0 .../CIConfigs/IT_Function_WIFI_05.yml} | 0 .../CIConfigs/IT_Function_WIFI_06.yml | 7 + .../integration_test}/InitialConditionAll.yml | 3650 +-- .../integration_test}/KnownIssues | 0 .../integration_test}/TestCaseAll.yml | 24339 ++++++++-------- .../integration_test}/TestEnvAll.yml | 388 +- .../uint_test/InitialConditionAll.yml | 2935 ++ components/idf_test/uint_test/TestCaseAll.yml | 1 + components/idf_test/uint_test/TestEnvAll.yml | 275 + .../test/CIConfigs/Function_TCPIP_01.yml | 10 - .../test/CIConfigs/Function_TCPIP_02.yml | 10 - .../test/CIConfigs/Function_TCPIP_03.yml | 10 - .../test/CIConfigs/Function_TCPIP_04.yml | 10 - .../test/CIConfigs/Function_TCPIP_05.yml | 8 - .../test/CIConfigs/Function_TCPIP_07.yml | 10 - .../test/CIConfigs/Function_TCPIP_12.yml | 6 - .../test/CIConfigs/Function_WIFI_01.yml | 10 - .../test/CIConfigs/Function_WIFI_02.yml | 7 - .../test/CIConfigs/Function_WIFI_06.yml | 7 - components/test/README.md | 4 - .../TestCaseScript/ATFunc/CmdInterruptTest.py | 130 - components/test/TestCaseScript/ATFunc/LAP.py | 64 - .../ATFunc/SendDataValidation.py | 161 - .../test/TestCaseScript/ATFunc/UARTTest.py | 164 - .../test/TestCaseScript/ATFunc/__init__.py | 2 - .../TestCaseScript/ATStress/ATPassThrough.py | 179 - .../test/TestCaseScript/ATStress/ATSleep.py | 251 - .../TestCaseScript/ATStress/SoftAPServer.py | 308 - .../TestCaseScript/ATStress/TCPClientMulti.py | 116 - .../ATStress/TCPClientSingle.py | 123 - .../TestCaseScript/ATStress/TCPSendPerf.py | 148 - .../TestCaseScript/ATStress/TCPServerMulti.py | 126 - .../TestCaseScript/ATStress/TCPTransparent.py | 280 - .../test/TestCaseScript/ATStress/UDPMulti.py | 113 - .../test/TestCaseScript/ATStress/UDPSingle.py | 105 - .../TestCaseScript/ATStress/UDPTransparent.py | 262 - .../test/TestCaseScript/ATStress/__init__.py | 2 - components/test/TestCaseScript/IOT/SCIOT.py | 357 - .../test/TestCaseScript/IOT/SCUDPServer.py | 378 - .../TestCaseScript/IOT/WifiConnUtility.py | 244 - components/test/TestCaseScript/IOT/WifiJAP.py | 183 - .../test/TestCaseScript/IOT/__init__.py | 1 - .../TestCaseScript/MeshStress/MeshSendRecv.py | 525 - .../TestCaseScript/MeshStress/__init__.py | 1 - .../test/TestCaseScript/SSLTest/Capability.py | 90 - .../TestCaseScript/SSLTest/ConfigUtility.py | 333 - .../test/TestCaseScript/SSLTest/Parameter.py | 56 - .../test/TestCaseScript/SSLTest/SSLHandler.py | 498 - .../TestCaseScript/SSLTest/SSLHandshake.py | 240 - .../test/TestCaseScript/SSLTest/SSLLowMem.py | 140 - .../TestCaseScript/SSLTest/SSLSendRecv.py | 147 - .../test/TestCaseScript/SSLTest/__init__.py | 1 - .../TestCaseScript/SleepMode/AutoSleep.py | 561 - .../TestCaseScript/SleepMode/DeepSleep.py | 259 - .../TestCaseScript/SleepMode/ForceSleep.py | 254 - .../test/TestCaseScript/SleepMode/__init__.py | 1 - .../TestCaseScript/StableTest/StableCase1.py | 160 - .../TestCaseScript/StableTest/__init__.py | 1 - .../TestCaseScript/TCPIPStress/ARPStress.py | 121 - .../TestCaseScript/TCPIPStress/PingStress.py | 122 - .../TestCaseScript/TCPIPStress/__init__.py | 1 - .../TestCaseScript/TCPStress/TCPAP4STA.py | 168 - .../TestCaseScript/TCPStress/TCPAPNSTA.py | 209 - .../TCPStress/TCPConnStressTC.py | 363 - .../TCPStress/TCPConnUtility.py | 273 - .../TestCaseScript/TCPStress/TCPConnection.py | 321 - .../TCPStress/TCPConnectionUtility.py | 251 - .../TCPStress/TCPDataValidation.py | 244 - .../TestCaseScript/TCPStress/TCPRandomSend.py | 103 - .../TestCaseScript/TCPStress/TCPSendRecv.py | 143 - .../TCPStress/TCPSoftAPSTASendRecv.py | 318 - .../TestCaseScript/TCPStress/TCPThroughput.py | 315 - .../test/TestCaseScript/TCPStress/__init__.py | 1 - .../TestCaseScript/UDPStress/UDPSendRecv.py | 130 - .../TestCaseScript/UDPStress/UDPThroughput.py | 305 - .../test/TestCaseScript/UDPStress/__init__.py | 1 - .../TestCaseScript/WiFiStress/SoftAPNSTA.py | 178 - .../WiFiStress/WifiConnUtility.py | 240 - .../test/TestCaseScript/WiFiStress/WifiJAP.py | 218 - .../TestCaseScript/WiFiStress/WifiJAPAtt.py | 173 - .../WiFiStress/WifiSmartConfig.py | 273 - .../TestCaseScript/WiFiStress/__init__.py | 1 - components/test/TestCaseScript/__init__.py | 2 - 102 files changed, 17710 insertions(+), 25726 deletions(-) create mode 100644 components/idf_test/README.md rename components/{test/CIConfigs/Function_SYS_01.yml => idf_test/integration_test/CIConfigs/IT_Function_SYS_01.yml} (100%) create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_01.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_02.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_03.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_04.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_05.yml rename components/{test/CIConfigs/Function_TCPIP_06.yml => idf_test/integration_test/CIConfigs/IT_Function_TCPIP_06.yml} (100%) rename components/{test/CIConfigs/Function_TCPIP_08.yml => idf_test/integration_test/CIConfigs/IT_Function_TCPIP_07.yml} (53%) rename components/{test/CIConfigs/Function_TCPIP_09.yml => idf_test/integration_test/CIConfigs/IT_Function_TCPIP_08.yml} (51%) create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_09.yml rename components/{test/CIConfigs/Function_TCPIP_10.yml => idf_test/integration_test/CIConfigs/IT_Function_TCPIP_10.yml} (66%) rename components/{test/CIConfigs/Function_TCPIP_11.yml => idf_test/integration_test/CIConfigs/IT_Function_TCPIP_11.yml} (67%) create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_12.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_01.yml create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_02.yml rename components/{test/CIConfigs/Function_WIFI_03.yml => idf_test/integration_test/CIConfigs/IT_Function_WIFI_03.yml} (100%) rename components/{test/CIConfigs/Function_WIFI_04.yml => idf_test/integration_test/CIConfigs/IT_Function_WIFI_04.yml} (100%) rename components/{test/CIConfigs/Function_WIFI_05.yml => idf_test/integration_test/CIConfigs/IT_Function_WIFI_05.yml} (100%) create mode 100644 components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_06.yml rename components/{test => idf_test/integration_test}/InitialConditionAll.yml (96%) rename components/{test => idf_test/integration_test}/KnownIssues (100%) rename components/{test => idf_test/integration_test}/TestCaseAll.yml (98%) rename components/{test => idf_test/integration_test}/TestEnvAll.yml (100%) create mode 100644 components/idf_test/uint_test/InitialConditionAll.yml create mode 100644 components/idf_test/uint_test/TestCaseAll.yml create mode 100644 components/idf_test/uint_test/TestEnvAll.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_01.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_02.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_03.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_04.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_05.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_07.yml delete mode 100644 components/test/CIConfigs/Function_TCPIP_12.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_01.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_02.yml delete mode 100644 components/test/CIConfigs/Function_WIFI_06.yml delete mode 100644 components/test/README.md delete mode 100755 components/test/TestCaseScript/ATFunc/CmdInterruptTest.py delete mode 100644 components/test/TestCaseScript/ATFunc/LAP.py delete mode 100755 components/test/TestCaseScript/ATFunc/SendDataValidation.py delete mode 100644 components/test/TestCaseScript/ATFunc/UARTTest.py delete mode 100755 components/test/TestCaseScript/ATFunc/__init__.py delete mode 100755 components/test/TestCaseScript/ATStress/ATPassThrough.py delete mode 100644 components/test/TestCaseScript/ATStress/ATSleep.py delete mode 100755 components/test/TestCaseScript/ATStress/SoftAPServer.py delete mode 100755 components/test/TestCaseScript/ATStress/TCPClientMulti.py delete mode 100755 components/test/TestCaseScript/ATStress/TCPClientSingle.py delete mode 100755 components/test/TestCaseScript/ATStress/TCPSendPerf.py delete mode 100755 components/test/TestCaseScript/ATStress/TCPServerMulti.py delete mode 100755 components/test/TestCaseScript/ATStress/TCPTransparent.py delete mode 100755 components/test/TestCaseScript/ATStress/UDPMulti.py delete mode 100755 components/test/TestCaseScript/ATStress/UDPSingle.py delete mode 100755 components/test/TestCaseScript/ATStress/UDPTransparent.py delete mode 100755 components/test/TestCaseScript/ATStress/__init__.py delete mode 100755 components/test/TestCaseScript/IOT/SCIOT.py delete mode 100755 components/test/TestCaseScript/IOT/SCUDPServer.py delete mode 100755 components/test/TestCaseScript/IOT/WifiConnUtility.py delete mode 100755 components/test/TestCaseScript/IOT/WifiJAP.py delete mode 100755 components/test/TestCaseScript/IOT/__init__.py delete mode 100755 components/test/TestCaseScript/MeshStress/MeshSendRecv.py delete mode 100755 components/test/TestCaseScript/MeshStress/__init__.py delete mode 100755 components/test/TestCaseScript/SSLTest/Capability.py delete mode 100755 components/test/TestCaseScript/SSLTest/ConfigUtility.py delete mode 100755 components/test/TestCaseScript/SSLTest/Parameter.py delete mode 100644 components/test/TestCaseScript/SSLTest/SSLHandler.py delete mode 100755 components/test/TestCaseScript/SSLTest/SSLHandshake.py delete mode 100644 components/test/TestCaseScript/SSLTest/SSLLowMem.py delete mode 100644 components/test/TestCaseScript/SSLTest/SSLSendRecv.py delete mode 100755 components/test/TestCaseScript/SSLTest/__init__.py delete mode 100755 components/test/TestCaseScript/SleepMode/AutoSleep.py delete mode 100755 components/test/TestCaseScript/SleepMode/DeepSleep.py delete mode 100755 components/test/TestCaseScript/SleepMode/ForceSleep.py delete mode 100755 components/test/TestCaseScript/SleepMode/__init__.py delete mode 100755 components/test/TestCaseScript/StableTest/StableCase1.py delete mode 100755 components/test/TestCaseScript/StableTest/__init__.py delete mode 100755 components/test/TestCaseScript/TCPIPStress/ARPStress.py delete mode 100755 components/test/TestCaseScript/TCPIPStress/PingStress.py delete mode 100755 components/test/TestCaseScript/TCPIPStress/__init__.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPAP4STA.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPAPNSTA.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPConnStressTC.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPConnUtility.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPConnection.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPDataValidation.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPRandomSend.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPSendRecv.py delete mode 100644 components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py delete mode 100755 components/test/TestCaseScript/TCPStress/TCPThroughput.py delete mode 100755 components/test/TestCaseScript/TCPStress/__init__.py delete mode 100755 components/test/TestCaseScript/UDPStress/UDPSendRecv.py delete mode 100755 components/test/TestCaseScript/UDPStress/UDPThroughput.py delete mode 100755 components/test/TestCaseScript/UDPStress/__init__.py delete mode 100755 components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py delete mode 100755 components/test/TestCaseScript/WiFiStress/WifiConnUtility.py delete mode 100755 components/test/TestCaseScript/WiFiStress/WifiJAP.py delete mode 100755 components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py delete mode 100755 components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py delete mode 100755 components/test/TestCaseScript/WiFiStress/__init__.py delete mode 100755 components/test/TestCaseScript/__init__.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7834707fe..42dc78e9e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -115,7 +115,7 @@ test_report: allow_failure: true variables: LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" - TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/test" + TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test" REPORT_PATH: "$CI_PROJECT_DIR/CI_Test_Report" artifacts: when: always @@ -170,8 +170,8 @@ push_master_to_github: BIN_PATH: "$CI_PROJECT_DIR/SSC/build/" APP_NAME: "ssc" LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF" - # assume tests are put in "components/test" - TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/test" + # append test level folder to TEST_CASE_FILE_PATH in before_script of test job + TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test" # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary artifacts: @@ -217,144 +217,131 @@ push_master_to_github: # run test - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH -Function_SYS_01: +IT_Function_SYS_01: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_SYS_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_SYS_01.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_01: +IT_Function_WIFI_01: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_01.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_02: +IT_Function_WIFI_02: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_02.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_02.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_01: +IT_Function_TCPIP_01: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_01.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_01.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_02: +IT_Function_TCPIP_02: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_02.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_02.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_03: +IT_Function_TCPIP_03: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_03.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_03.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_04: +IT_Function_TCPIP_04: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_04.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_04.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_05: +IT_Function_TCPIP_05: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_05.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_05.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_06: +IT_Function_TCPIP_06: <<: *test_template_night tags: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_06.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_06.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_03: +IT_Function_WIFI_03: <<: *test_template tags: - ESP32_IDF - SSC_T3_PhyMode before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_03.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_03.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_04: +IT_Function_WIFI_04: <<: *test_template tags: - ESP32_IDF - SSC_T1_APC before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_04.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_04.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_05: +IT_Function_WIFI_05: <<: *test_template tags: - ESP32_IDF - SSC_T1_WEP before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_05.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_05.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_WIFI_06: +IT_Function_WIFI_06: <<: *test_template tags: - ESP32_IDF - SSC_T2_PhyMode before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_WIFI_06.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_06.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_07: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T1_1 - - SSC_T1_2 - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_07.yml - -Function_TCPIP_08: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T1_1 - - SSC_T2_1 - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_08.yml - -Function_TCPIP_09: - <<: *test_template - tags: - - ESP32_IDF - - SSC_T1_1 - before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_09.yml - -Function_TCPIP_10: +IT_Function_TCPIP_07: <<: *test_template tags: - ESP32_IDF @@ -362,21 +349,53 @@ Function_TCPIP_10: - SSC_T1_2 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_10.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_07.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_11: +IT_Function_TCPIP_08: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_11.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_08.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test -Function_TCPIP_12: +IT_Function_TCPIP_09: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_09.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + +IT_Function_TCPIP_10: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + - SSC_T1_2 + - SSC_T2_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_10.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + +IT_Function_TCPIP_11: + <<: *test_template + tags: + - ESP32_IDF + - SSC_T1_1 + before_script: + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_11.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + +IT_Function_TCPIP_12: <<: *test_template tags: - ESP32_IDF - SSC_T1_1 - SSC_T1_2 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/Function_TCPIP_12.yml + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_12.yml + - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test diff --git a/components/idf_test/README.md b/components/idf_test/README.md new file mode 100644 index 000000000..f23153bca --- /dev/null +++ b/components/idf_test/README.md @@ -0,0 +1,61 @@ + +# Note: The test cases in this folder are for Espressif internal use. + +# Goto internal project wiki Testing page for detail about this folder. + +## File Structure + +``` +test --- CIConfigs --- sanity_test1.yml (Runner config files) + | |-- stress_test1.yml + |-- TestCaseAll.yml (TestCaseFiles) + |-- TestEnvAll.yml (TestCaseFiles) + |-- InitialConditionAll.yml (TestCaseFiles) + |-- TestCaseScript --- ... (Test case scripts) +``` + +1. CIConfigs folder + * config for CI config files are put in this folder + * CI config files configs the cases and some other options for the CI job with same name +1. Test case files + * TestCaseAll.yml (test cases) + * InitialConditionAll.yml (initial conditions) + * TestEnvAll.yml (test environments) + * [how to modify test cases](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestCaseFiles.DesignNote.md) +1. Test case scripts + * some cases are implemented by specified script. those scripts are put in this folder. + + +## Modify test cases + +1. check if the "SDK" of the test case only contain the current SDK + * if Yes, then just modify the test case behavior + * if No: + 1. then remove current SDK name from "SDK" of the test case + 2. Add a new test case, and set "SDK" only support current SDK name +2. use [auto_test_script](https://gitlab.espressif.cn:6688/yinling/auto_test_script) to load the modified case and verify the modification +3. create a merge request and assign to HYL (or add comment @yinling for merging test). +After review it will be merged to SDK and will be The cases will be synced to database in auto_test_script. + + +## Run test case locally + +1. clone auto_test_script (ssh://git@gitlab.espressif.cn:27227/yinling/auto_test_script.git) from gitlab +2. create test environment: + 1. search test case (search test case ID in components/test/TestCaseAll.yml, get the "test environment" value + 2. goto [test environment list](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Documents/TestEnvList.md), find the link and goto the environment detail page + 3. create test environment according to figure and description + 4. [config test environment](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/TestEnvConfig.DesignNote.md). All parameters in table "Parameters require config before use" MUST be configured. +3. run test cases with [CIRunner.py](https://gitlab.espressif.cn:6688/yinling/auto_test_script/blob/master/public/Design/RunnerConfigs.DesignNote.md) + + + +## exclude known issues for CI +the test cases listed in file "KnownIssues" will be excluded by CI when calculating results + +Editing KnownIssues file is very simple, one single line for the ID for each case. +``` +TCPIP_TCP_0101 +TCPIP_TCP_0201 +... +``` \ No newline at end of file diff --git a/components/test/CIConfigs/Function_SYS_01.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_SYS_01.yml similarity index 100% rename from components/test/CIConfigs/Function_SYS_01.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_SYS_01.yml diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_01.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_01.yml new file mode 100644 index 000000000..25a3ccda9 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_01.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_DHCP_0302, TCPIP_DHCP_0302, TCPIP_DHCP_0301, TCPIP_TCP_0403, TCPIP_TCP_0402, + TCPIP_TCP_0401, TCPIP_TCP_0407, TCPIP_TCP_0406, ^TCPIP_TCP_0411, TCPIP_TCP_0404, + TCPIP_TCP_0408, TCPIP_TCP_0110, TCPIP_TCP_0115, TCPIP_IP_0101, TCPIP_IP_0102, + ^TCPIP_IGMP_0102, ^TCPIP_IGMP_0101, ^TCPIP_IGMP_0104, TCPIP_IGMP_0104, TCPIP_IGMP_0103, + TCPIP_IGMP_0102, TCPIP_IGMP_0101, TCPIP_UDP_0108, TCPIP_UDP_0106, TCPIP_UDP_0107, + TCPIP_UDP_0105, TCPIP_UDP_0101, TCPIP_IGMP_0204, TCPIP_IGMP_0201, TCPIP_IGMP_0202] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_02.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_02.yml new file mode 100644 index 000000000..61adea982 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_02.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [TCPIP_IGMP_0203, ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, TCPIP_UDP_0201, TCPIP_UDP_0202, + ^TCPIP_DHCP_0301, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0105, ^TCPIP_TCP_0104, + ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, ^TCPIP_TCP_0404, + TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0406, ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, + ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, TCPIP_DHCP_0211, TCPIP_DHCP_0210, TCPIP_DHCP_0101, + TCPIP_DHCP_0103, TCPIP_DHCP_0102, TCPIP_DHCP_0206, TCPIP_DHCP_0207, ^TCPIP_IP_0102] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_03.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_03.yml new file mode 100644 index 000000000..9d64630e9 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_03.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_UDP_0105, ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, TCPIP_TCP_0203, + TCPIP_TCP_0202, ^TCPIP_UDP_0108, ^TCPIP_IGMP_0201, ^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, + ^TCPIP_IGMP_0103, TCPIP_UDP_0114, TCPIP_UDP_0113, TCPIP_UDP_0112, TCPIP_DHCP_0205, + TCPIP_DHCP_0202, TCPIP_DHCP_0203, ^TCPIP_TCP_0102, TCPIP_TCP_0106, TCPIP_TCP_0107, + TCPIP_TCP_0104, TCPIP_TCP_0105, TCPIP_TCP_0102, TCPIP_TCP_0103, TCPIP_TCP_0101, + ^TCPIP_TCP_0116, ^TCPIP_TCP_0114, ^TCPIP_TCP_0115, ^TCPIP_TCP_0112, ^TCPIP_TCP_0113] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_04.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_04.yml new file mode 100644 index 000000000..6be01f698 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_04.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_TCP_0110, ^TCPIP_TCP_0111, TCPIP_DHCP_0209, ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0207, + ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, + ^TCPIP_DHCP_0201, TCPIP_TCP_0204, TCPIP_TCP_0207, TCPIP_TCP_0206, TCPIP_TCP_0201, + ^TCPIP_DHCP_0101, ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, ^TCPIP_DHCP_0208, TCPIP_TCP_0208, + ^TCPIP_TCP_0202, ^TCPIP_TCP_0203, TCPIP_DHCP_0204, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, + ^TCPIP_TCP_0207, ^TCPIP_TCP_0204, TCPIP_DHCP_0201, ^TCPIP_TCP_0208, TCPIP_DHCP_0208] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_05.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_05.yml new file mode 100644 index 000000000..627d67c40 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_05.yml @@ -0,0 +1,8 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^TCPIP_IGMP_0204, ^TCPIP_TCP_0412, TCPIP_TCP_0411, TCPIP_TCP_0412, ^TCPIP_UDP_0112, + ^TCPIP_UDP_0113, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, ^TCPIP_UDP_0201, ^TCPIP_IP_0101, + ^TCPIP_TCP_0402, TCPIP_TCP_0114, TCPIP_TCP_0116, TCPIP_TCP_0111, TCPIP_TCP_0113, + TCPIP_TCP_0112] diff --git a/components/test/CIConfigs/Function_TCPIP_06.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_06.yml similarity index 100% rename from components/test/CIConfigs/Function_TCPIP_06.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_06.yml diff --git a/components/test/CIConfigs/Function_TCPIP_08.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_07.yml similarity index 53% rename from components/test/CIConfigs/Function_TCPIP_08.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_07.yml index 4ada8f3ee..9b3d943fe 100644 --- a/components/test/CIConfigs/Function_TCPIP_08.yml +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_07.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, + ID: [TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, + TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, + TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, ^TCPIP_ICMP_0101, TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, TCPIP_UDP_0109, - TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, - TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, - TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103] + TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104, TCPIP_UDP_0104] diff --git a/components/test/CIConfigs/Function_TCPIP_09.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_08.yml similarity index 51% rename from components/test/CIConfigs/Function_TCPIP_09.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_08.yml index a4c1a5163..a2f8f0df0 100644 --- a/components/test/CIConfigs/Function_TCPIP_09.yml +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_08.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: - Add: - ID: [^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, + ID: [TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, TCPIP_UDP_0102, + TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, TCPIP_UDP_0103, + ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0307, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0306, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, ^TCPIP_UDP_0305, - ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, - ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, - ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103] + ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304, ^TCPIP_UDP_0304] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_09.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_09.yml new file mode 100644 index 000000000..146b98cf7 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_09.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, + ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, + ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, + ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, ^TCPIP_UDP_0104, + ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, ^TCPIP_UDP_0103, + ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102] diff --git a/components/test/CIConfigs/Function_TCPIP_10.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_10.yml similarity index 66% rename from components/test/CIConfigs/Function_TCPIP_10.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_10.yml index 201f95eea..44b7bd189 100644 --- a/components/test/CIConfigs/Function_TCPIP_10.yml +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_10.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC2, SSC1] Filter: - Add: - ID: [^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, ^TCPIP_UDP_0102, - TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, + ID: [TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0111, TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, TCPIP_UDP_0110, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0101, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, ^TCPIP_DNS_0103, - ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102] + ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, ^TCPIP_DNS_0102, + TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304] diff --git a/components/test/CIConfigs/Function_TCPIP_11.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_11.yml similarity index 67% rename from components/test/CIConfigs/Function_TCPIP_11.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_11.yml index 1d083887c..86690db67 100644 --- a/components/test/CIConfigs/Function_TCPIP_11.yml +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_11.yml @@ -2,9 +2,9 @@ Config: {execute count: 1, execute order: in order} DUT: [SSC1] Filter: - Add: - ID: [TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, TCPIP_UDP_0304, - TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, + ID: [TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0305, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0306, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0307, TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, TCPIP_UDP_0301, - TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302] + TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, TCPIP_UDP_0302, + TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_12.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_12.yml new file mode 100644 index 000000000..4e0495e44 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_TCPIP_12.yml @@ -0,0 +1,6 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC1] +Filter: +- Add: + ID: [TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, + ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110, ^TCPIP_UDP_0110] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_01.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_01.yml new file mode 100644 index 000000000..c22bc59bd --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_01.yml @@ -0,0 +1,10 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, WIFI_SCAN_0103, WIFI_SCAN_0102, WIFI_SCAN_0101, + WIFI_SCAN_0105, WIFI_SCAN_0104, ^WIFI_CONN_0103, WIFI_CONN_0201, WIFI_CONN_0904, + ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, WIFI_CONN_0401, + WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_CONN_0301, ^WIFI_CONN_0801, ^WIFI_CONN_0301, + WIFI_CONN_0501, WIFI_CONN_0502, ^WIFI_CONN_0401, WIFI_MODE_0101, WIFI_MODE_0103, + WIFI_MODE_0102, ^WIFI_CONN_0904, ^WIFI_CONN_0901, WIFI_CONN_0601, ^WIFI_CONN_0201] diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_02.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_02.yml new file mode 100644 index 000000000..049054dba --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_02.yml @@ -0,0 +1,7 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [^WIFI_ADDR_0102, WIFI_CONN_0901, WIFI_CONN_0801, ^WIFI_CONN_0104, WIFI_CONN_0104, + WIFI_CONN_0101, WIFI_CONN_0102, WIFI_CONN_0103, ^WIFI_SCAN_0101, ^WIFI_CONN_0101, + ^WIFI_CONN_0502, ^WIFI_CONN_0501] diff --git a/components/test/CIConfigs/Function_WIFI_03.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_03.yml similarity index 100% rename from components/test/CIConfigs/Function_WIFI_03.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_03.yml diff --git a/components/test/CIConfigs/Function_WIFI_04.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_04.yml similarity index 100% rename from components/test/CIConfigs/Function_WIFI_04.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_04.yml diff --git a/components/test/CIConfigs/Function_WIFI_05.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_05.yml similarity index 100% rename from components/test/CIConfigs/Function_WIFI_05.yml rename to components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_05.yml diff --git a/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_06.yml b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_06.yml new file mode 100644 index 000000000..9d639f912 --- /dev/null +++ b/components/idf_test/integration_test/CIConfigs/IT_Function_WIFI_06.yml @@ -0,0 +1,7 @@ +Config: {execute count: 1, execute order: in order} +DUT: [SSC2, SSC1] +Filter: +- Add: + ID: [WIFI_SCAN_0301, WIFI_SCAN_0303, WIFI_SCAN_0304, WIFI_SCAN_0302, WIFI_SCAN_0201, + WIFI_PHY_0403, WIFI_PHY_0402, WIFI_PHY_0401, WIFI_PHY_0407, WIFI_PHY_0406, WIFI_PHY_0405, + WIFI_PHY_0404, WIFI_PHY_0408] diff --git a/components/test/InitialConditionAll.yml b/components/idf_test/integration_test/InitialConditionAll.yml similarity index 96% rename from components/test/InitialConditionAll.yml rename to components/idf_test/integration_test/InitialConditionAll.yml index 797ccad55..ba06af9f8 100644 --- a/components/test/InitialConditionAll.yml +++ b/components/idf_test/integration_test/InitialConditionAll.yml @@ -1,135 +1,195 @@ initial condition: - check cmd set: - '' - - - ASSERT - - [dummy] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] force restore cmd set: - '' - - - SSC SSC[1-] reboot - - ['P SSC[1-] C !!!ready!!!'] - - - SSC SSC[1-] mesh -I -g -a 4 -k -i - -p -h 5 - - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] - - - SSC SSC1 mesh -A -s -k - - ['P SSC1 C +MESHINIT:AP,OK'] - - - SSC SSC1 mesh -E -o 1 -t 1 - - ['P SSC1 C +MESH:ENABLED'] - - - SSC SSC[2-] mesh -E -o 1 -t 2 - - [''] - - - DELAY 60 - - ['P SSC[2-] C +MESH:ENABLED'] - - - SSC SSC[1-] mesh -C - - ['P SSC[1-] C +MESH:CONNECTED'] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] - initial condition detail: root as LOCAL, rest node as ONLINE, mesh network established + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, DHCP on, will autogen a TC with initial condition + APSTA1 restore cmd set: - '' - - - SSC SSC[1-] mesh -E -o 0 - - ['P SSC[1-] C +MESH:DISABLED'] - - - SSC SSC[1-] mesh -I -g -a 4 -k -i - -p -h 5 - - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] - - - SSC SSC1 mesh -A -s -k - - ['P SSC1 C +MESHINIT:AP,OK'] - - - SSC SSC1 mesh -E -o 1 -t 1 - - ['P SSC1 C +MESH:ENABLED'] - - - SSC SSC[2-] mesh -E -o 1 -t 2 - - [''] - - - DELAY 60 - - ['P SSC[2-] C +MESH:ENABLED'] - - - SSC SSC[1-] mesh -C - - ['P SSC[1-] C +MESH:CONNECTED'] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] restore post cmd set: - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py - start: 24.0 - tag: ENABLED_2 + start: 31.0 + tag: APM1 test script: InitCondBase - check cmd set: - '' - - - ASSERT - - [dummy] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] force restore cmd set: - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC[1-] mesh -E -o 0 - - ['P SSC[1-] C +MESH:DISABLED'] - - - SSC SSC[1-] mesh -I -g -a 4 -k -i - -p -h 5 - - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] - - - SSC SSC[1-] mesh -A -s -k - - ['P SSC[1-] C +MESHINIT:AP,OK'] - - - SSC SSC1 mesh -E -o 1 -t 2 - - ['P SSC1 C +MESH:ENABLED'] - - - SOC SOC1 MACCEPT GSOC1 - - [R SOC_COM L OK] - - - SSC SSC[2-] mesh -E -o 1 -t 2 - - ['P SSC[2-] C +MESH:ENABLED'] - - - DELAY 60 - - [''] - - - SSC SSC[1-] mesh -C - - ['P SSC[1-] C +MESH:CONNECTED'] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] - - - SSC SSC[1-] mesh -O -t 1 -o 1 - - ['P SSC[1-] C +MESH:OK'] - initial condition detail: all mesh node enabled as ONLINE, mesh network established + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, PC join AP, DHCP on, will autogen a TC with initial + condition APSTA2 restore cmd set: - '' - - - SSC SSC[1-] reboot - - ['P SSC[1-] C !!!ready!!!'] - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC[1-] mesh -E -o 0 - - ['P SSC[1-] C +MESH:DISABLED'] - - - SSC SSC[1-] mesh -I -g -a 4 -k -i - -p -h 5 - - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] - - - SSC SSC[1-] mesh -A -s -k - - ['P SSC[1-] C +MESHINIT:AP,OK'] - - - SSC SSC1 mesh -E -o 1 -t 2 - - ['P SSC1 C +MESH:ENABLED'] - - - SOC SOC1 MACCEPT GSOC1 - - [R SOC_COM L OK] - - - SSC SSC[2-] mesh -E -o 1 -t 2 - - ['P SSC[2-] C +MESH:ENABLED'] - - - DELAY 60 - - [''] - - - SSC SSC[1-] mesh -C - - ['P SSC[1-] C +MESH:CONNECTED'] - - - SSC SSC[1-] mesh -Q -t 4 - - ['R SSC[1-] T '] - - - MESHTREE - - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] - - - SSC SSC[1-] mesh -O -t 1 -o 1 - - ['P SSC[1-] C +MESH:OK'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] restore post cmd set: - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py - start: 17.0 - tag: ENABLED_1 + start: 38.0 + tag: APM2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 31.0 + tag: APO1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 38.0 + tag: APO2 test script: InitCondBase - check cmd set: - '' @@ -137,17 +197,13 @@ initial condition: - ['R SSC1 C BIN_ID,0'] - - SSC SSC1 upgrade -Q -t 2 -b 0 - ['R SSC1 C BIN_INFO,0'] - - - SSC SSC1 op -S -o 3 + - - SSC SSC1 op -S -o 2 - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] force restore cmd set: - '' - - SSC SSC1 upgrade -R -r 1 -s - [R SSC1 NC ERROR C !!!ready!!!] - - - SSC SSC1 op -S -o 3 + - - SSC SSC1 op -S -o 1 - ['R SSC1 C +MODE:OK'] - - SSC SSC1 dhcp -S -o 1 - [R SSC1 C +DHCP] @@ -163,24 +219,17 @@ initial condition: - ['P SSC1 C +UPGRADE:SUCCEED'] - - SSC SSC1 upgrade -R -b 0 - [R SSC1 C !!!ready!!!] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - initial condition detail: APSTA mode, connected to AP, running BIN0 (located on - flash id 0) + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + initial condition detail: AP only mode, running BIN0 (located on flash id 0) restore cmd set: - '' - - SSC SSC1 upgrade -Q -t 2 -b 0 - ['R SSC1 C BIN_INFO,0'] - - SSC SSC1 upgrade -R -b 0 - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 3 + - - SSC SSC1 op -S -o 2 - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] restore post cmd set: - '' - - SSC SSC1 upgrade -D @@ -188,8 +237,51 @@ initial condition: - - SSC SSC1 ram - ['R SSC1 A :(\d+)'] script path: InitCondBase.py - start: 24.0 - tag: STAAPBIN0 + start: 31.0 + tag: APOBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: testing ap on sta + ap mode (autogen by APM1) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 59.0 + tag: APSTA1 test script: InitCondBase - check cmd set: - '' @@ -209,204 +301,46 @@ initial condition: - [R SSC1 C !!!ready!!!] - - SSC SSC1 op -S -o 3 - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - SSC SSC1 mac -S -o 2 -m - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] - initial condition detail: testing ap on sta + ap mode, PC join AP (autogen) + initial condition detail: testing ap on sta + ap mode, PC join AP (autogen by APM2) restore cmd set: - '' - - SSC SSC1 op -S -o 3 - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - SSC SSC1 mac -S -o 2 -m - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] restore post cmd set: - '' - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py start: 66.0 tag: APSTA2 test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:3'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 C +DHCP:AP,STARTED'] - - - SSC SSC1 mac -Q -o 2 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - initial condition detail: testing ap on sta + ap mode (autogen) - restore cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 59.0 - tag: APSTA1 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:3'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - initial condition detail: testing sta on sta + ap mode, quit AP (autogen) - restore cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 45.0 - tag: STAAP1 - test script: InitCondBase -- check cmd set: - - '' - - - DELAY 0.1 - - [dummy] - force restore cmd set: - - '' - - - DELAY 0.1 - - [dummy] - initial condition detail: none 2 - restore cmd set: - - '' - - - DELAY 0.1 - - [dummy] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 108.0 - tag: ATNone2 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:3'] - - - SSC SSC1 sta -Q - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - initial condition detail: testing sta on sta + ap mode, join AP, DHCP on (autogen) - restore cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 52.0 - tag: STAAP2 - test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:1'] - - - ATS AT1 AT+CWDHCP_CUR? - - ['R AT1 C DHCP:3'] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 - [R AT1 R *] force restore cmd set: - '' @@ -414,23 +348,18 @@ initial condition: - [R AT1 C ready] - - ATS AT1 AT+CWMODE_DEF=3 - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - - - ATC AT1 CWJAP_DEF + - - DELAY 5 + - [''] + - - ATC AT1 CWSAP_DEF - [R AT1 L OK] - - ATS AT1 AT+CWDHCP_DEF=2,1 - [R AT1 R *] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - initial condition detail: StationSoftAP mode, connected to AP, multi link, use dhcp + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + initial condition detail: StationSoftAP mode restore cmd set: - '' - - ATSO AT1 +++ @@ -441,20 +370,10 @@ initial condition: - [R AT1 R *] - - ATS AT1 AT+CWMODE_DEF=3 - [R AT1 L OK] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] - - ATS AT1 AT+CWDHCP_DEF=2,1 - [R AT1 R *] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] restore post cmd set: - '' - - ATS AT1 AT+CWSTOPSMART @@ -464,50 +383,8 @@ initial condition: - - AT+SYSRAM - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 94.0 - tag: ATAPSTA3 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 C +CWMODE_CUR:2 C OK'] - - - ATS AT2 AT+CWMODE_CUR? - - ['R AT2 C +CWMODE_CUR:3 C OK'] - - - ATS AT1 AT+CWJAP_CUR? - - [R AT1 NC OK L ERROR] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATS AT2 AT+CWMODE_DEF=3 - - [R AT2 L OK] - initial condition detail: Target 1 in SoftAP mode, Target 2 in StationSoftAP mode, - use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATS AT2 AT+CWMODE_DEF=3 - - [R AT2 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 80.0 - tag: ATT2_2 + start: 24.0 + tag: ATAP1 test script: InitCondBase - check cmd set: - '' @@ -586,82 +463,6 @@ initial condition: start: 31.0 tag: ATAP3 test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:1'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial - condition STAAP1 - restore cmd set: - - '' - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 17.0 - tag: STAO1 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT - - [R AT1 L OK] - - - ATS AT1 AT - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+RST - - [R AT1 L OK] - initial condition detail: StationSoftAP mode, both PC join Target AP, single link, - use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 3.0 - tag: ATAP5 - test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? @@ -739,6 +540,38 @@ initial condition: start: 45.0 tag: ATAP4 test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, both PC join Target AP, single link, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAP5 + test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT @@ -773,138 +606,190 @@ initial condition: test script: InitCondBase - check cmd set: - '' - - - SSC SSC1 upgrade -Q -t 1 - - ['R SSC1 C BIN_ID,0'] - - - SSC SSC1 upgrade -Q -t 2 -b 0 - - ['R SSC1 C BIN_INFO,0'] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:2'] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] force restore cmd set: - '' - - - SSC SSC1 upgrade -R -r 1 -s - - [R SSC1 NC ERROR C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SOC SOC1 ULISTEN - - [R SOC_COM L OK] - - - SOC SOC1 SETOPT REPLY BIN - - [R SOC_COM C OK] - - - SSC SSC1 upgrade -I -b 0 -f 0 - - ['P SSC1 C +UPGRADE:OK'] - - - SSC SSC1 upgrade -U -i -p -u - - ['P SSC1 C +UPGRADE:SUCCEED'] - - - SSC SSC1 upgrade -R -b 0 - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - initial condition detail: AP only mode, running BIN0 (located on flash id 0) + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, use dhcp restore cmd set: - '' - - - SSC SSC1 upgrade -Q -t 2 -b 0 - - ['R SSC1 C BIN_INFO,0'] - - - SSC SSC1 upgrade -R -b 0 - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] restore post cmd set: - '' - - - SSC SSC1 upgrade -D - - ['R SSC1 C +UPGRADE:OK'] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 31.0 - tag: APOBIN0 + start: 59.0 + tag: ATAPO1 test script: InitCondBase - check cmd set: - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:1'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] force restore cmd set: - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - initial condition detail: sta mode, quit AP, DHCP on + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, multi link, use dhcp restore cmd set: - '' - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 R *] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] restore post cmd set: - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 17.0 - tag: STAM1 + start: 66.0 + tag: ATAPO3 test script: InitCondBase - check cmd set: - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:1'] - - - SSC SSC1 sta -Q - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] force restore cmd set: - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - initial condition detail: sta mode, join AP, DHCP on + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, single link, use dhcp restore cmd set: - '' - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] restore post cmd set: - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 24.0 - tag: STAM2 + start: 73.0 + tag: ATAPO4 test script: InitCondBase - check cmd set: - '' @@ -918,7 +803,8 @@ initial condition: - [R AT1 C ready] - - ATS AT1 AT+RST - [R AT1 L OK] - initial condition detail: none + initial condition detail: SoftAP mode, both PC join Target AP, single link, use + dhcp restore cmd set: - '' - - ATSO AT1 +++ @@ -935,7 +821,193 @@ initial condition: - ['R AT1 A :(\d+)'] script path: InitCondBase.py start: 3.0 - tag: ATNone + tag: ATAPO5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: SoftAP mode, both PC join Target AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAPO6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, DHCP client on + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 94.0 + tag: ATAPSTA3 test script: InitCondBase - check cmd set: - '' @@ -1009,6 +1081,278 @@ initial condition: start: 101.0 tag: ATAPSTA4 test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 129.0 + tag: ATAPSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, single link, use + static ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 136.0 + tag: ATAPSTA6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + initial condition detail: 'first time usage. Use restore function. ' + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 143.0 + tag: ATFTU + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: none + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATNone + test script: InitCondBase +- check cmd set: + - '' + - - DELAY 0.1 + - [dummy] + force restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + initial condition detail: none 2 + restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 108.0 + tag: ATNone2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: same as STA1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATOSTA1 + test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? @@ -1078,6 +1422,51 @@ initial condition: start: 17.0 tag: ATOSTA4 test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:1 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + initial condition detail: same as OT2_1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: ATOT2_1 + test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? @@ -1092,7 +1481,7 @@ initial condition: - [R AT1 L OK] - - ATS AT1 AT+CWDHCP_DEF=1,1 - [R AT1 L OK] - initial condition detail: same as STA1, but will not autogen STA+AP STA test case + initial condition detail: station mode, use dhcp restore cmd set: - '' - - ATSO AT1 +++ @@ -1115,34 +1504,23 @@ initial condition: - ['R AT1 A :(\d+)'] script path: InitCondBase.py start: 10.0 - tag: ATOSTA1 + tag: ATSTA1 test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] force restore cmd set: - '' - - ATS AT1 AT+RST - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 + - - ATS AT1 AT+CWMODE_DEF=1 - [R AT1 L OK] - - - DELAY 5 - - [''] - - - ATC AT1 CWSAP_DEF + - - ATS AT1 AT+CWDHCP_DEF=1,1 - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - - - WIFI CONN - - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - initial condition detail: StationSoftAP mode + initial condition detail: station mode, DHCP client on, use dhcp restore cmd set: - '' - - ATSO AT1 +++ @@ -1151,12 +1529,10 @@ initial condition: - [R AT1 R *] - - ATS AT1 AT+SAVETRANSLINK=0 - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 - [R AT1 L OK] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] restore post cmd set: - '' - - ATS AT1 AT+CWSTOPSMART @@ -1166,45 +1542,42 @@ initial condition: - - AT+SYSRAM - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 24.0 - tag: ATAP1 - test script: InitCondBase -- check cmd set: - - '' - - - DELAY 0.1 - - [dummy] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - initial condition detail: none - restore cmd set: - - '' - - - DELAY 0.1 - - [dummy] - restore post cmd set: - - '' - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py start: 10.0 - tag: None + tag: ATSTA2 test script: InitCondBase - check cmd set: - '' - - - ATS AT1 AT - - [R AT1 L OK] - - - ATS AT1 AT+RESTORE - - [R AT1 L OK, R AT1 C ready] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] force restore cmd set: - '' - - ATS AT1 AT+RST - [R AT1 C ready] - - - ATS AT1 AT + - - ATS AT1 AT+CWMODE_DEF=1 - [R AT1 L OK] - - - ATS AT1 AT+RESTORE - - [R AT1 L OK, R AT1 C ready] - initial condition detail: 'first time usage. Use restore function. ' + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, multi link, use dhcp restore cmd set: - '' - - ATSO AT1 +++ @@ -1213,39 +1586,21 @@ initial condition: - [R AT1 R *] - - ATS AT1 AT+SAVETRANSLINK=0 - [R AT1 R *] - - - ATS AT1 AT+RESTORE - - [R AT1 L OK, R AT1 C ready] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 143.0 - tag: ATFTU - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT + - - ATS AT1 AT+CWMODE_DEF=1 - [R AT1 L OK] - - - ATS AT1 AT + - - ATS AT1 AT+CWDHCP_DEF=1,1 - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+RST + - - ATC AT1 CWJAP_DEF - [R AT1 L OK] - initial condition detail: SoftAP mode, both PC join Target AP, single link, use - dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT+SAVETRANSLINK=0 + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE - [R AT1 R *] restore post cmd set: - '' @@ -1256,83 +1611,217 @@ initial condition: - - AT+SYSRAM - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 3.0 - tag: ATAPO5 + start: 38.0 + tag: ATSTA3 test script: InitCondBase - check cmd set: - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:1'] - - - SSC SSC1 sta -Q - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED'] - - - SSC SSC1 mac -Q -o 1 - - [R SSC1 P ] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] force restore cmd set: - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with - initial condition STAAP2 + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, single link, use dhcp restore cmd set: - '' - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] restore post cmd set: - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 24.0 - tag: STAO2 + start: 17.0 + tag: ATSTA4 test script: InitCondBase - check cmd set: - '' - - - ASSERT - - [dummy] + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] force restore cmd set: - '' - - - SSC SSC[1-] reboot - - ['P SSC[1-] C !!!ready!!!'] - - - SSC SSC[1-] mesh -E -o 0 - - ['P SSC[1-] C +MESH:DISABLED'] - - - SSC SSC[1-] op -S -o 1 - - ['P SSC[1-] C +MODE:OK'] - - - SSC SSC[1-] sta -D - - ['P SSC[1-] C +QAP:OK'] - initial condition detail: all mesh node disabled + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, multi link, use static + ip restore cmd set: - '' - - - SSC SSC[1-] mesh -E -o 0 - - ['P SSC[1-] C +MESH:DISABLED'] - - - SSC SSC[1-] op -S -o 1 - - ['P SSC[1-] C +MODE:OK'] - - - SSC SSC[1-] sta -D - - ['P SSC[1-] C +QAP:OK'] + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] restore post cmd set: - '' - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 31.0 - tag: DISABLED + start: 115.0 + tag: ATSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, single link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 122.0 + tag: ATSTA6 test script: InitCondBase - check cmd set: - '' @@ -1380,138 +1869,24 @@ initial condition: start: 52.0 tag: ATT2_1 test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:2'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] - - - SSC SSC1 ap -L - - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 C +DHCP:AP,STARTED'] - - - SSC SSC1 mac -Q -o 2 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - initial condition detail: AP mode, will NOT autogen a TC with initial condition - APSTA2 - restore cmd set: - - '' - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 38.0 - tag: APO2 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:2'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 C +DHCP:AP,STARTED'] - - - SSC SSC1 mac -Q -o 2 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - initial condition detail: AP mode, will NOT autogen a TC with initial condition - APSTA1 - restore cmd set: - - '' - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 31.0 - tag: APO1 - test script: InitCondBase - check cmd set: - '' - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 C +CWMODE_CUR:2 L OK'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:1'] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] + - ['R AT1 C +CWMODE_CUR:2 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:3 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] force restore cmd set: - '' - - ATS AT1 AT+RST - [R AT1 C ready] - - ATS AT1 AT+CWMODE_DEF=2 - [R AT1 L OK] - - - ATC AT1 CWSAP_DEF - - [R AT1 L OK] - - - WIFI CONN - - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] - initial condition detail: SoftAP mode, PC join Target AP, multi link, use dhcp + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] + initial condition detail: Target 1 in SoftAP mode, Target 2 in StationSoftAP mode, + use dhcp restore cmd set: - '' - - ATSO AT1 +++ @@ -1522,20 +1897,8 @@ initial condition: - [R AT1 R *] - - ATS AT1 AT+CWMODE_DEF=2 - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 R *] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] restore post cmd set: - '' - - ATS AT1 AT+CWSTOPSMART @@ -1545,8 +1908,171 @@ initial condition: - - AT+SYSRAM - ['R AT1 A :(\d+)'] script path: InitCondBase.py - start: 66.0 - tag: ATAPO3 + start: 80.0 + tag: ATT2_2 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + initial condition detail: all mesh node disabled + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: DISABLED + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + initial condition detail: all mesh node enabled as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ENABLED_1 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + initial condition detail: root as LOCAL, rest node as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: ENABLED_2 test script: InitCondBase - check cmd set: - '' @@ -1641,77 +2167,24 @@ initial condition: test script: InitCondBase - check cmd set: - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 C +CWMODE_CUR:2 L OK'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:0'] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] + - - DELAY 0.1 + - [dummy] force restore cmd set: - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATC AT1 CWSAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] - - - WIFI CONN - - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - initial condition detail: SoftAP mode, PC join Target AP, single link, use dhcp + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + initial condition detail: none restore cmd set: - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CWLIF - - [R AT1 P ] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] + - - DELAY 0.1 + - [dummy] restore post cmd set: - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] + - - DELAY 0.1 + - [dummy] script path: InitCondBase.py - start: 73.0 - tag: ATAPO4 + start: 10.0 + tag: None test script: InitCondBase - check cmd set: - '' @@ -1734,83 +2207,6 @@ initial condition: start: 31.0 tag: PAIR1 test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT - - [R AT1 L OK] - - - ATS AT1 AT - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+RST - - [R AT1 L OK] - initial condition detail: SoftAP mode, both PC join Target AP, multi link, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 3.0 - tag: ATAPO6 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC[1,2] op -Q - - ['R SSC[1,2] C +MODE:[3,3]'] - - - SSC SSC[1,2] mac -Q -o 3 - - ['R SSC[1,2] P P '] - - - SSC SSC[1,2] sp -D - - ['R SSC[1,2] C +SP:OK'] - - - SSC SSC[1,2] sp -I - - ['R SSC[1,2] C +SP:OK'] - force restore cmd set: - - '' - - - SSC SSC[1,2] reboot - - ['R SSC[1,2] C !!!ready!!!'] - - - SSC SSC[1,2] op -S -o [3,3] - - ['R SSC[1,2] C +MODE:OK'] - - - SSC SSC[1,2] mac -S -m -o 2 - - ['R SSC[1,2] C +MAC:AP,OK'] - - - SSC SSC[1,2] mac -S -m -o 1 - - ['R SSC[1,2] C +MAC:STA,OK'] - - - SSC SSC[1,2] sp -D - - ['R SSC[1,2] C +SP:OK'] - - - SSC SSC[1,2] sp -I - - ['R SSC[1,2] C +SP:OK'] - initial condition detail: target1 and target2 in STA+AP mode, two targets de-init - and init simple pair - restore cmd set: - - '' - - - SSC SSC[1,2] op -S -o [3,3] - - ['R SSC[1,2] C +MODE:OK'] - - - SSC SSC[1,2] mac -S -m -o 2 - - ['R SSC[1,2] C +MAC:AP,OK'] - - - SSC SSC[1,2] mac -S -m -o 1 - - ['R SSC[1,2] C +MAC:STA,OK'] - - - SSC SSC[1,2] sp -D - - ['R SSC[1,2] C +SP:OK'] - - - SSC SSC[1,2] sp -I - - ['R SSC[1,2] C +SP:OK'] - restore post cmd set: - - '' - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 45.0 - tag: PAIR3 - test script: InitCondBase - check cmd set: - '' - - SSC SSC[1,2] op -Q @@ -1861,6 +2257,435 @@ initial condition: start: 38.0 tag: PAIR2 test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1,2] op -Q + - ['R SSC[1,2] C +MODE:[3,3]'] + - - SSC SSC[1,2] mac -Q -o 3 + - ['R SSC[1,2] P P '] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC[1,2] reboot + - ['R SSC[1,2] C !!!ready!!!'] + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + initial condition detail: target1 and target2 in STA+AP mode, two targets de-init + and init simple pair + restore cmd set: + - '' + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: PAIR3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: testing sta on sta + ap mode, quit AP (autogen by STAM1) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 45.0 + tag: STAAP1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: testing sta on sta + ap mode, join AP, DHCP on (autogen + by STAM2) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 52.0 + tag: STAAP2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: APSTA mode, connected to AP, running BIN0 (located on + flash id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: STAAPBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, DHCP on, will autogen a TC with initial + condition STAAP1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 17.0 + tag: STAM1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on, will autogen a TC with initial + condition STAAP2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 24.0 + tag: STAM2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: STA mode, connected to AP, running BIN0 (located on flash + id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: STAMBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial + condition STAAP1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 17.0 + tag: STAO1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with + initial condition STAAP2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 24.0 + tag: STAO2 + test script: InitCondBase - check cmd set: - '' - - SSC SSC1 op -Q @@ -1926,93 +2751,11 @@ initial condition: - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py start: 73.0 tag: T2O_1 test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:2'] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] - initial condition detail: SoftAP mode, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=2 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=0,1 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 59.0 - tag: ATAPO1 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:2'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 C +DHCP:AP,STARTED'] - - - SSC SSC1 mac -Q -o 2 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - initial condition detail: AP mode, DHCP on - restore cmd set: - - '' - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 31.0 - tag: APM1 - test script: InitCondBase - check cmd set: - '' - - SSC SSC1 op -Q @@ -2053,7 +2796,8 @@ initial condition: - ['R SSC1 C +MAC:AP,OK'] - - SSC SSC2 mac -S -o 1 -m - ['R SSC2 C +MAC:STA,OK'] - initial condition detail: target 1 as SoftAP, target 2 as STA + initial condition detail: target 1 as SoftAP, target 2 as STA, will autogen a TC + with initial condition T2_2 restore cmd set: - '' - - SSC SSC1 op -S -o 2 @@ -2077,304 +2821,11 @@ initial condition: - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py start: 73.0 tag: T2_1 test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 C +CWMODE_CUR:3 C OK'] - - - ATS AT2 AT+CWMODE_CUR? - - ['R AT2 C +CWMODE_CUR:1 C OK'] - - - ATS AT1 AT+CWJAP_CUR? - - [R AT1 NC OK L ERROR] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT2 AT+CWMODE_DEF=1 - - [R AT2 L OK] - - - ATS AT1 AT+CWQAP - - [R AT1 L OK] - initial condition detail: same as OT2_1, but will not autogen STA+AP STA test case - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT2 AT+CWMODE_DEF=1 - - [R AT2 L OK] - - - ATS AT1 AT+CWQAP - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 52.0 - tag: ATOT2_1 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:1'] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - initial condition detail: StationSoftAP mode, connected to AP, multi link, use static - ip - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 129.0 - tag: ATAPSTA5 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 upgrade -Q -t 1 - - ['R SSC1 C BIN_ID,0'] - - - SSC SSC1 upgrade -Q -t 2 -b 0 - - ['R SSC1 C BIN_INFO,0'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - force restore cmd set: - - '' - - - SSC SSC1 upgrade -R -r 1 -s - - [R SSC1 NC ERROR C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SOC SOC1 ULISTEN - - [R SOC_COM L OK] - - - SOC SOC1 SETOPT REPLY BIN - - [R SOC_COM C OK] - - - SSC SSC1 upgrade -I -b 0 -f 0 - - ['P SSC1 C +UPGRADE:OK'] - - - SSC SSC1 upgrade -U -i -p -u - - ['P SSC1 C +UPGRADE:SUCCEED'] - - - SSC SSC1 upgrade -R -b 0 - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - initial condition detail: STA mode, connected to AP, running BIN0 (located on flash - id 0) - restore cmd set: - - '' - - - SSC SSC1 upgrade -Q -t 2 -b 0 - - ['R SSC1 C BIN_INFO,0'] - - - SSC SSC1 upgrade -R -b 0 - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - [R SSC1 C +DHCP] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - restore post cmd set: - - '' - - - SSC SSC1 upgrade -D - - ['R SSC1 C +UPGRADE:OK'] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 17.0 - tag: STAMBIN0 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - initial condition detail: station mode, DHCP client on, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 10.0 - tag: ATSTA2 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC[1-3] op -Q - - ['R SSC[1-3] C +CURMODE:3'] - - - SSC SSC[1-3] phy -Q -o 3 - - ['R SSC[1-3] C STA,n,40 C AP,n,40'] - force restore cmd set: - - '' - - - SSC SSC[1-3] reboot - - ['R SSC[1-3] C !!!ready!!!'] - - - SSC SSC[1-3] op -S -o 3 - - ['R SSC[1-3] C +MODE:OK'] - - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 - - ['R SSC[1-3] C +PHY:OK'] - initial condition detail: '1. target 1 and target 2 set to AP+STA mode, target 3 - set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - restore cmd set: - - '' - - - SSC SSC[1-3] op -S -o 3 - - ['R SSC[1-3] C +MODE:OK'] - - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 - - ['R SSC[1-3] C +PHY:OK'] - restore post cmd set: - - '' - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 sta -R -r 1 - - [R SSC1 C OK] - - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] - script path: InitCondBase.py - start: 87.0 - tag: T3_PHY1 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - initial condition detail: StationSoftAP mode, DHCP client on - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 87.0 - tag: ATAPSTA2 - test script: InitCondBase - check cmd set: - '' - - SSC SSC1 op -Q @@ -2439,485 +2890,46 @@ initial condition: - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] - - SSC SSC1 ram - - ['R SSC1 A :(\d+)'] + - ['R SSC1 C +FREEHEAP:'] script path: InitCondBase.py start: 80.0 tag: T2_2 test script: InitCondBase - check cmd set: - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:0'] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] + - - SSC SSC[1-3] op -Q + - ['R SSC[1-3] C +CURMODE:3'] + - - SSC SSC[1-3] phy -Q -o 3 + - ['R SSC[1-3] C STA,n,40 C AP,n,40'] force restore cmd set: - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - initial condition detail: StationSoftAP mode, connected to AP, single link, use - static ip + - - SSC SSC[1-3] reboot + - ['R SSC[1-3] C !!!ready!!!'] + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] + initial condition detail: '1. target 1 and target 2 set to AP+STA mode, target 3 + set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' restore cmd set: - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 136.0 - tag: ATAPSTA6 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:0'] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - initial condition detail: station mode, connected to AP, single link, use static - ip - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 122.0 - tag: ATSTA6 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:1'] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - initial condition detail: station mode, connected to AP, multi link, use static - ip - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATC AT1 CIPSTA_DEF - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 115.0 - tag: ATSTA5 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:0'] - - - ATS AT1 AT+CWDHCP_CUR? - - ['R AT1 C DHCP:3'] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 R *] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - initial condition detail: station mode, connected to AP, single link, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 R *] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=0 - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 17.0 - tag: ATSTA4 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWJAP_CUR? - - ['R AT1 C +CWJAP_CUR:', R AT1 P ] - - - ATS AT1 AT+CIPMUX? - - ['R AT1 L +CIPMUX:1'] - - - ATS AT1 AT+CWDHCP_CUR? - - ['R AT1 C DHCP:3'] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 R *] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - initial condition detail: station mode, connected to AP, multi link, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 R *] - - - ATC AT1 CWJAP_DEF - - [R AT1 L OK] - - - ATS AT1 AT+CIPCLOSE - - [R AT1 R *] - - - ATS AT1 AT+CIPMODE=0 - - [R AT1 R *] - - - ATS AT1 AT+CIPMUX=1 - - [R AT1 L OK] - - - ATS AT1 AT+CIPSERVER=0 - - [R AT1 R *] - - - ATC AT1 CIPCLOSE - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 38.0 - tag: ATSTA3 - test script: InitCondBase -- check cmd set: - - '' - - - SSC SSC1 op -Q - - ['R SSC1 C +CURMODE:2'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] - - - SSC SSC1 ap -L - - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 C +DHCP:AP,STARTED'] - - - SSC SSC1 mac -Q -o 2 - - [R SSC1 P ] - force restore cmd set: - - '' - - - SSC SSC1 reboot - - [R SSC1 C !!!ready!!!] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - initial condition detail: AP mode, PC join AP, DHCP on - restore cmd set: - - '' - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 2 - - [R SSC1 C +DHCP] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] restore post cmd set: - '' - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] + - - SSC SSC1 sta -R -r 1 + - [R SSC1 C OK] - - SSC SSC1 ram - ['R SSC1 A :(\d+)'] script path: InitCondBase.py - start: 38.0 - tag: APM2 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:1'] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - initial condition detail: station mode, use dhcp - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=1 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=1,1 - - [R AT1 L OK] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py - start: 10.0 - tag: ATSTA1 - test script: InitCondBase -- check cmd set: - - '' - - - ATS AT1 AT+CWMODE_CUR? - - ['R AT1 L +CWMODE_CUR:3'] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - force restore cmd set: - - '' - - - ATS AT1 AT+RST - - [R AT1 C ready] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - initial condition detail: StationSoftAP mode - restore cmd set: - - '' - - - ATSO AT1 +++ - - [''] - - - ATS AT1 AT - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - ATS AT1 AT+CWMODE_DEF=3 - - [R AT1 L OK] - - - ATS AT1 AT+CWDHCP_DEF=2,1 - - [R AT1 R *] - restore post cmd set: - - '' - - - ATS AT1 AT+CWSTOPSMART - - [R AT1 R *] - - - ATS AT1 AT+SAVETRANSLINK=0 - - [R AT1 R *] - - - AT+SYSRAM - - ['R AT1 A :(\d+)'] - script path: InitCondBase.py start: 87.0 - tag: ATAPSTA1 + tag: T3_PHY1 test script: InitCondBase diff --git a/components/test/KnownIssues b/components/idf_test/integration_test/KnownIssues similarity index 100% rename from components/test/KnownIssues rename to components/idf_test/integration_test/KnownIssues diff --git a/components/test/TestCaseAll.yml b/components/idf_test/integration_test/TestCaseAll.yml similarity index 98% rename from components/test/TestCaseAll.yml rename to components/idf_test/integration_test/TestCaseAll.yml index 7112c8793..0835c146b 100644 --- a/components/test/TestCaseAll.yml +++ b/components/idf_test/integration_test/TestCaseAll.yml @@ -1,96 +1,4 @@ test cases: -- CI ready: 'Yes' - ID: ^WIFI_CONN_0601 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN - - - ['R PC_COM C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -L - - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP - - 2.PC WIFI CONNECTED - - 3.target2 jap target 1 - - 4.查询到两个sta 连接到target1 上' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target1下设置ssid 和pwd 加密方式 - - 2.PC WIFI CONNECTED target1 - - 3.target2 jap target 1 - - 4.查询到两个sta 连接到target1 上' - sub module: WIFI Connect - summary: list stations connected to soft ap test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: list SoftAP connected station - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_ICMP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ping -i - - ['R SSC1 C +PING:OK'] - - - SSC SSC1 ping -i -c 2 - - ['R SSC1 C +PING:OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.ping -i - - 2.ping -i -c 2' - sub module: ICMP - summary: ping function test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: ping function test - version: v1 (2016-8-15) - CI ready: 'Yes' ID: SYS_MISC_0101 SDK: '8266_NonOS @@ -111,6 +19,7 @@ test cases: expected result: 重启成功 initial condition: None initial condition description (auto): none + level: Integration module: System steps: 系统重启 sub module: Misc @@ -125,7 +34,7 @@ test cases: test point 2: sw reboot version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_DHCP_0302 + ID: SYS_MISC_0201 SDK: '8266_NonOS 8266_RTOS @@ -137,62 +46,929 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -i 192.168.123.123 -o 2 - - ['R SSC1 C +IP:ERROR'] - - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 ap -S -s -p -t - - [''] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -i 192.168.4.1 -o 2 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 ram -H + - ['R SSC1 RE FREEHEAP:\d+\r\n'] comment: '' execution time: 0.0 - expected result: '1.target 1 OK + expected result: ' - 2.target1 ERROR + 可以查询到一个数值 - 3.target1 ERROR + ' + initial condition: None + initial condition description (auto): none + level: Integration + module: System + steps: 查询空闲ram + sub module: Misc + summary: get heap size test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. - 4.target2 jap target1 OK + PC has 1 WiFi NIC. - 5.target1 OK + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: 'get heap size ' + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0101 + SDK: '8266_NonOS - 6.target1 OK + 8266_RTOS - 7.target1 OK - - 8.target2 jap target1 OK' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 0.0.0.0 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -Q + - ['R SSC1 C +STAIP:0.0.0.0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -Q + - ['R SSC1 RE "\+STAIP:%%s"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ + 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration module: TCPIP - steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\ - 4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\ - \ 设置softAP ip \n8.target1 设置正确的地址池\n9.target2 连接target1" + steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ + \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" sub module: DHCP - summary: ap dhcp static ip interaction + summary: dhcp client function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ + \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ + 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + sub module: DHCP + summary: dhcp server function test test environment: SSC_T2_1 test environment description (auto): 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. 2 SSC target connect with PC by UART.' - test point 1: interaction - test point 2: static IP and DHCP interaction test + test point 1: basic function + test point 2: DHCP client function test version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_DHCP_0301 + ID: TCPIP_DHCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -E -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.STA&AP STARTED + + 4.STA STARTED + + 5.AP STARTED + + 6.OK + + 7.STA&AP STOPPED' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: TCPIP + steps: '1.target1 设置mode 为sta+softAP mode + + 2.target1 打开DHCP 3 + + 3.target1 查询DHCP 状态 + + 4.target1 查询sta DHCP 状态 + + 5.target1 查询softAP DHCP 状态 + + 6.target1 关闭 DHCP 3 + + 7.target1 查询 DHCP 状态' + sub module: DHCP + summary: dhcp status query + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1 关闭DHCP 2 OK + + 2.target1 设置ip 成功 + + 3.设置dhcp 地址池 OK + + 4.ERROR + + 5.ERROR + + 6.ERROR + + 7.target1 打开DHCP ok' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + level: Integration + module: TCPIP + steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ + 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" + sub module: DHCP + summary: server dhcp lease test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 3 4 "['01','02','03']" "[2,3,4]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3,4: get IP from dhcp pool with correct sequence' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1 + + 3. target change mac, connect to Target1 + + 4. Loop step3' + sub module: DHCP + summary: dhcp server ip pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 2 4 "['01','02']" "[2,3]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - DELAY 20 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:0.0.0.0'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4.1 succeed + + 4.2 failed' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1(.4.2 - .4.3) + + 3. target change mac, connect to Target1 + + 4. Loop step3 twice' + sub module: DHCP + summary: dhcp server ip pool empty + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - DELAY 90 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - DELAY 60 + - [''] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 5. succeed + + 6. succeed + + 8. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP timeout as 1 minute + + 3. target2 connect to target1 + + 4. wait 90 seconds + + 5. check if target2 IP is same + + 6. target2 disconnect + + 7. wait 60s + + 8. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server timeout test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0205 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['P SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. target2 wifi disconnected' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 + + 3. disable DHCP server, do config and enable' + sub module: DHCP + summary: disconnect STA if config dhcp server + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 4. get IP 192.168.4.2 - 192.168.4.4 + + 5. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. target2 change mac, connect to softap, disconnect + + 4. Loop step3 twice + + 5. change to first mac, connect to softap' + sub module: DHCP + summary: dhcp server assign same IP to same MAC when it's not released + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI DISCONN2 + - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 4. succeed + + 5. succeed + + 6. get IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. PC WIFI NIC connect to target1 softap + + 4. target2 connect to target1 softap and disnnect + + 5. PC release IP and disconnected + + 6. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server prefer assign released IP to new client + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. get IP 192.168.4.2 + + 5. can only find target2 with IP 192.168.4.2' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. PC NIC connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. target2 connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig and new client able to get first IP in pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0209 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - DELAY 20 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client and new client able to get IP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI CONN2 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to get IP (discover with requested + IP) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0211 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - DELAY 10 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to renew IP (direct send request) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_DHCP_0301 SDK: '8266_NonOS 8266_RTOS @@ -227,9 +1003,10 @@ test cases: 4.OK 5.等待10s,JAP fail' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration module: TCPIP steps: '1.target1 关闭DHCP 1 @@ -251,64 +1028,6 @@ test cases: test point 1: interaction test point 2: static IP and DHCP interaction test version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0113 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok - - 3.ok - - 4.ok - - 5.ok' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 - - 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 - - 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 - - 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' - sub module: UDP - summary: AP mode, create max udp socket test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_DHCP_0302 SDK: '8266_NonOS @@ -362,6 +1081,7 @@ test cases: initial condition: T2_1 initial condition description (auto): target 1 as SoftAP, target 2 as STA, will autogen a TC with initial condition T2_2 + level: Integration module: TCPIP steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\ 4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\ @@ -378,1627 +1098,37 @@ test cases: test point 2: static IP and DHCP interaction test version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_DHCP_0301 + ID: TCPIP_DNS_0101 SDK: '8266_NonOS 8266_RTOS ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 3/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -i 192.168.123.123 -o 1 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 ip -S -i 0.0.0.0 -o 1 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] comment: '' execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.JAP CONNETED - - 4.OK - - 5.等待10s,JAP fail' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: TCPIP - steps: '1.target1 关闭DHCP 1 - - 2.target1 设置sta ip 192.168.123.123 - - 4.target1 jap AP - - 5.target1 设置sta ip 0.0.0.0 - - 6.target1 jap AP' - sub module: DHCP - summary: sta dhcp static ip interaction - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: interaction - test point 2: static IP and DHCP interaction test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: SYS_MISC_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ram -H - - ['R SSC1 RE FREEHEAP:\d+\r\n'] - comment: '' - execution time: 0.0 - expected result: ' - - 可以查询到一个数值 - - ' - initial condition: None - initial condition description (auto): none - module: System - steps: 查询空闲ram - sub module: Misc - summary: get heap size test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: 'get heap size ' - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0412 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK' + expected result: 1.OK initial condition: STAM2 initial condition description (auto): sta mode, join AP, DHCP on, will autogen a TC with initial condition STAAP2 + level: Integration module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.target1上创建TCP socket2 - - 6.关闭socket1 连接 - - 7.关闭socket2连接' - sub module: TCP - summary: close TCP send after socket changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0403 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ - \ \n6.8266往PC上发送5字节数据" - sub module: TCP - summary: do TCP send after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0402 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.断开与AP 连接 - - 6.关闭建立的socket1连接' - sub module: TCP - summary: "close TCP socket after WIFI \ndisconnected" - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0401 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.断开与AP 连接 - - 6.8266往PC上发送5字节数据' - sub module: TCP - summary: do TCP send after WIFI disconnected - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_ADDR_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 mac -Q -o 3 - - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.ok - - 3.ok - - 4.ok - - 5.ok - - 6.ok' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ - \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ - \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac" - sub module: MAC Address - summary: set mac, query mac - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: mac address function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0407 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ - \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" - sub module: TCP - summary: do TCP send after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0406 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0405 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -S -s -l 1 - - [''] - - - DELAY 5400 - - ['P SSC1 RE CLOSED:\d+,0'] - comment: '' - execution time: 1.5 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.TCP连接断开' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.PC 网卡 disable - - 6.target1上使用socket1发送数据,等待 90 分钟' - sub module: TCP - summary: do TCP send after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0404 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ - \ \n6.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0903 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] - comment: '' - execution time: 0.0 - expected result: 1. disconect event reason REASON_AUTH_EXPIRE - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_AUTH_EXPIRE - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. - - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0408 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ - \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -L -s 1000 - - ['R SSC1 RE LISTEN:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.ERROR - - 9.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去建立TCP 监听 - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,去连接 PC的ip, - - 6.target1上使用步骤4创建的socket,创建TCP 监听 - - 7.target1上shutdown 步骤4的socket - - 8.target1上使用步骤4创建的socket,创建TCP 监听 - - 9.target1上使用不存在socket,创建TCP 监听' - sub module: TCP - summary: STA mode, server listen test. use socket in state that can't listen - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. + steps: 1. get host name "espressif.cn" + sub module: DNS + summary: get host by name test + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0110 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i 123.456.678.789 -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.ERROR - - 6.ERROR' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 - - 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 - - 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' - sub module: TCP - summary: AP mode, connect test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -S -s 1000 - - ['R SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK - - 5.ERROR - - 6.OK - - 7.OK - - 8.ERROR - - 9.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket1, - - 3.target1上使用步骤2创建的socket1,去发送数据 - - 4.target1上创建TCP socket2 - - 5.target1上使用步骤4创建的socket2,去发送数据 - - 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 - - 7.target1上shutdown 步骤4的socket2 - - 8.target1往socket2发送错误命令发送数据 - - 9.target1上不指定socket往上发送数据' - sub module: TCP - summary: send test. use socket in state that can't send - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -i 0.0.0.0 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 20 - - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] - - - SSC SSC1 dhcp -S -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -Q - - ['R SSC1 C +STAIP:0.0.0.0'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 ip -Q - - ['R SSC1 RE "\+STAIP:%%s"%%()'] - comment: '' - execution time: 0.0 - expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ - 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: TCPIP - steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ - \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" - sub module: DHCP - summary: dhcp client function test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 3 - - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] - - - SSC SSC1 dhcp -Q -o 3 - - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -E -o 3 - - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] - - - SSC SSC1 dhcp -Q -o 3 - - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.STA&AP STARTED - - 4.STA STARTED - - 5.AP STARTED - - 6.OK - - 7.STA&AP STOPPED' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: TCPIP - steps: '1.target1 设置mode 为sta+softAP mode - - 2.target1 打开DHCP 3 - - 3.target1 查询DHCP 状态 - - 4.target1 查询sta DHCP 状态 - - 5.target1 查询softAP DHCP 状态 - - 6.target1 关闭 DHCP 3 - - 7.target1 查询 DHCP 状态' - sub module: DHCP - summary: dhcp status query - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 20 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ - \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ - 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" - sub module: DHCP - summary: dhcp server function test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0303 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" - sub module: UDP - summary: do UDP send after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -n 5 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -n 6 - - ['R SSC2 C +SCAN:', R SSC2 P ] - comment: '' - execution time: 0.0 - expected result: '1.target1 QAP - - 2. target1 set AP,set channel 6 - - 3.target2 上scan不到 channel 5 - - 4.target2 上查询channel 6的' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target1 断开连接AP - - 2.target1下设置ssid 和pwd 加密方式,set channel 6 - - 3.target2 上scan channel 5 - - 4.target2 上查询channel 6的' - sub module: WIFI Scan - summary: scan with scan config channel - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 - - ['R SSC2 NC +SCAN: C +SCANDONE'] - - - SSC SSC2 sta -S -b - - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] - comment: '' - execution time: 0.0 - expected result: '1.target2 上不能查询到此mac - - 2.target2上查询到' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 - - 2.target2上查询' - sub module: WIFI Scan - summary: scan with scan config bssid - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -S -s .,juhg123 - - ['R SSC2 NC +SCAN: C +SCANDONE'] - - - SSC SSC1 ap -S -s -p 123456789 -t 3 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -s - - ['R SSC2 C +SCAN:', R SSC2 P , 'R SSC2 NC +SCAN: C +SCANDONE'] - comment: '' - execution time: 0.0 - expected result: '1.target 2上不能scan .,juhg123 - - 2.target1 set AP - - 3.target2上查询到' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target 2 scan .,juhg123 - - 2.target1下设置ssid 和pwd 加密方式 - - 3.target2 scan ' - sub module: WIFI Scan - summary: scan with scan config ssid - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0105 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -s -b -n 11 - - [R SSC2 P C +SCANDONE] - - - SSC SSC2 sta -S -s -b -n 11 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 - - [R SSC2 P , R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -s -b -n 10 - - [R SSC2 P , R SSC2 NP C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 QAP - - 2. target1 set AP,set ssid broad cast,set channel 11 - - 3.target2 上查询到 - - 4.target2 上查询不到 - - 5.target2 上查询不到 - - 6.target2 上查询不到' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target1 QAP - - 2. target1 set AP,set ssid broad cast,set channel 11 - - 3.target2 上查询到 - - 4.target2 上查询不到 - - 5.target2 上查询不到 - - 6.target2 上查询不到' - sub module: WIFI Scan - summary: scan with several configs - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 P C +SCANDONE] - - - SSC SSC2 sta -S -h 1 - - [R SSC2 P C +SCANDONE] - - - SSC SSC1 ap -S -s -p 123456789 -h 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -h 1 - - [R SSC2 P C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP,set ssid broad cast - - 2.target 2上scan - - 3.target 2上scan - - 4.target1 set AP,set ssid hidden, - - 5.target 2上不能查询到 - - 6.target 2上查询到' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast - - 2.target 2上scan - - 3.target 2上scan - - 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, - - 5.target 2上查询 - - 6.target 2上查询' - sub module: WIFI Scan - summary: scan with scan config show hidden - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0302 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 - - 4.断开与AP 连接 - - 5.关闭建立的socket1连接' - sub module: UDP - summary: "close UDP socket after WIFI \ndisconnected" - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0301 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -i -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 - - 4.断开与AP 连接 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' - sub module: UDP - summary: do UDP send after WIFI disconnected - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 sta -Q - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:OK'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1.target1 jion AP 成功 - - 2.查询JAP的状态 - - 3.target1 断开AP - - 4.查询target1 JAP 是DISCONN' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1.target1 jion AP 成功 - - 2.查询JAP的状态 - - 3.target1 断开AP - - 4.查询target1 JAP 是DISCONN' - sub module: WIFI Connect - summary: JAP query test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: query JAP status + test point 2: DNS function test version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_DNS_0102 @@ -2033,6 +1163,7 @@ test cases: initial condition: STAM2 initial condition description (auto): sta mode, join AP, DHCP on, will autogen a TC with initial condition STAAP2 + level: Integration module: TCPIP steps: '1. get host name "espressif.cn" @@ -2049,7 +1180,7 @@ test cases: test point 2: DNS function test version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_DNS_0101 + ID: TCPIP_DNS_0103 SDK: '8266_NonOS 8266_RTOS @@ -2062,17 +1193,30 @@ test cases: cmd set: - '' - - SSC SSC1 soc -H -d iot.espressif.cn - - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t UDP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p 9003 -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] comment: '' execution time: 0.0 - expected result: 1.OK + expected result: '1.OK + + 2.OK + + 3.OK' initial condition: STAM2 initial condition description (auto): sta mode, join AP, DHCP on, will autogen a TC with initial condition STAAP2 + level: Integration module: TCPIP - steps: 1. get host name "espressif.cn" + steps: '1. get host name "espressif.cn" + + 2. sendto, recvfrom1. get host name "espressif.cn" + + 2. sendto, recvfrom' sub module: DNS - summary: get host by name test + summary: UDP send to iot.expressif.com test environment: SSC_T1_2 test environment description (auto): 'Able to access WAN after connect to AP. @@ -2081,53 +1225,48 @@ test cases: test point 2: DNS function test version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0403 - SDK: ESP32_IDF + ID: TCPIP_ICMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ping -i + - ['R SSC1 C +PING:OK'] + - - SSC SSC1 ping -i -c 2 + - ['R SSC1 C +PING:OK'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + expected result: '1.ok - 2. STA connect to ext AP + 2.ok' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.ping -i - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect - to AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 2.ping -i -c 2' + sub module: ICMP + summary: ping function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. - PC has one WiFi NIC support capture wlan packet using libpcap. + PC has 1 WiFi NIC. - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: ping function test + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_CONN_0904 + ID: TCPIP_IGMP_0101 SDK: '8266_NonOS 8266_RTOS @@ -2139,55 +1278,326 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p 1234567890 - - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] - - - WIFI DISCONN - - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: station IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: station IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: softAP IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: softAP IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] comment: '' execution time: 0.0 expected result: '1. succeed - 2. disconnect event REASON_HANDSHAKE_TIMEOUT + 2. succeed + + 3. able to recv packet' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: station IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed 3. succeed - 4. succeed + 4. target1 recv multicast packet' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1. target2 set to sta mode and join AP - 5. disconnect event REASON_ASSOC_TOOMANY + 2. target1 join group and create UDP socket using multicast addr - 6. succeed, target2 connect succeed + 3. target2 create UDP socket - 7. disconnect event REASON_ASSOC_EXPIRE' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1. config target1 softap max sta allowed 1 - - 2. target2 connect to target1 with wrong password - - 3. target2 disconnect - - 4. PC WIFI NIC connect to target1 - - 5. target2 connect to target1 with correct password - - 6. PC WIFI NIC disconnect - - 7. reconfig softap' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, - REASON_ASSOC_EXPIRE + 4. target2 send to multicast addr' + sub module: IGMP + summary: station send multicast packets test environment: SSC_T2_1 test environment description (auto): 'PC has 1 wired NIC connected to AP. @@ -2195,7 +1605,115 @@ test cases: 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: wifi disconnect reason test + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: softAP IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_IGMP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: TCPIP + steps: '1. target2 join SoftAP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: softAP send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_IP_0101 @@ -2234,6 +1752,7 @@ test cases: initial condition: STAM1 initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a TC with initial condition STAAP1 + level: Integration module: TCPIP steps: '1.target1 打开DHCP 1 @@ -2296,6 +1815,7 @@ test cases: initial condition: APM1 initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial condition APSTA1 + level: Integration module: TCPIP steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\ \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\ @@ -2312,2559 +1832,7 @@ test cases: test point 2: set and query static IP version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^WIFI_CONN_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 sta -Q - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:OK'] - - - SSC SSC1 sta -Q - - ['R SSC1 C +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1.target1 jion AP 成功 - - 2.查询JAP的状态 - - 3.target1 断开AP - - 4.查询target1 JAP 是DISCONN' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1.target1 jion AP 成功 - - 2.查询JAP的状态 - - 3.target1 断开AP - - 4.查询target1 JAP 是DISCONN' - sub module: WIFI Connect - summary: JAP query test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: query JAP status - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.2 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed - - 5. succeed' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. leave group with correct host addr and wrong multicast addr - - 3. leave group with wrong host addr and correct multicast addr - - 4. leave group with wrong host addr and wrong multicast addr - - 5. leave group with correct host addr and correct multicast addr' - sub module: IGMP - summary: station IGMP leave group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -J -h -m 223.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. join group with correct host addr and wrong multicast addr - - 3. join group with wrong host addr and correct multicast addr - - 4. join group with wrong host addr and wrong multicast addr' - sub module: IGMP - summary: station IGMP join group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.2 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed - - 5. succeed' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. leave group with correct host addr and wrong multicast addr - - 3. leave group with wrong host addr and correct multicast addr - - 4. leave group with wrong host addr and wrong multicast addr - - 5. leave group with correct host addr and correct multicast addr' - sub module: IGMP - summary: softAP IGMP leave group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0110 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] - - - SSC SSC1 soc -S -s -i -p -l 1472 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] - - - SSC SSC1 soc -S -s -i -p -l 1473 - - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] - - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 - -j 20 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没收到UDP包 - - 6.OK' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 - - 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 - - 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' - sub module: UDP - summary: AP mode, sendto test with different length - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_SCAN_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 - - ['R SSC2 NC +SCAN: C +SCANDONE'] - - - SSC SSC2 sta -S -b - - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] - comment: '' - execution time: 0.0 - expected result: '1.target2 上不能查询到此mac - - 2.target2上查询到' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 - - 2.target2上查询' - sub module: WIFI Scan - summary: scan with scan config bssid - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_SCAN_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -n 5 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -n 6 - - ['R SSC2 C +SCAN:', R SSC2 P ] - comment: '' - execution time: 0.0 - expected result: '1.target1 QAP - - 2. target1 set AP,set channel 6 - - 3.target2 上scan不到 channel 5 - - 4.target2 上查询channel 6的' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1.target1 断开连接AP - - 2.target1下设置ssid 和pwd 加密方式,set channel 6 - - 3.target2 上scan channel 5 - - 4.target2 上查询channel 6的' - sub module: WIFI Scan - summary: scan with scan config channel - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_SCAN_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 P C +SCANDONE] - - - SSC SSC2 sta -S -h 1 - - [R SSC2 P C +SCANDONE] - - - SSC SSC1 ap -S -s -p 123456789 -h 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -h 1 - - [R SSC2 P C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP,set ssid broad cast - - 2.target 2上scan - - 3.target 2上scan - - 4.target1 set AP,set ssid hidden, - - 5.target 2上不能查询到 - - 6.target 2上查询到' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast - - 2.target 2上scan - - 3.target 2上scan - - 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, - - 5.target 2上查询 - - 6.target 2上查询' - sub module: WIFI Scan - summary: scan with scan config show hidden - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_SCAN_0105 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:'] - - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -s -b -n 11 - - [R SSC2 P C +SCANDONE] - - - SSC SSC2 sta -S -s -b -n 11 - - [R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 - - [R SSC2 P , R SSC2 NP C +SCANDONE] - - - SSC SSC2 sta -S -s -b -n 10 - - [R SSC2 P , R SSC2 NP C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 QAP - - 2. target1 set AP,set ssid broad cast,set channel 11 - - 3.target2 上查询到 - - 4.target2 上查询不到 - - 5.target2 上查询不到 - - 6.target2 上查询不到' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1.target1 QAP - - 2. target1 set AP,set ssid broad cast,set channel 11 - - 3.target2 上查询到 - - 4.target2 上查询不到 - - 5.target2 上查询不到 - - 6.target2 上查询不到' - sub module: WIFI Scan - summary: scan with several configs - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: scan with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.2 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed - - 5. succeed' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. leave group with correct host addr and wrong multicast addr - - 3. leave group with wrong host addr and correct multicast addr - - 4. leave group with wrong host addr and wrong multicast addr - - 5. leave group with correct host addr and correct multicast addr' - sub module: IGMP - summary: softAP IGMP leave group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -J -h -m 223.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. join group with correct host addr and wrong multicast addr - - 3. join group with wrong host addr and correct multicast addr - - 4. join group with wrong host addr and wrong multicast addr' - sub module: IGMP - summary: softAP IGMP join group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.2 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed - - 5. succeed' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. leave group with correct host addr and wrong multicast addr - - 3. leave group with wrong host addr and correct multicast addr - - 4. leave group with wrong host addr and wrong multicast addr - - 5. leave group with correct host addr and correct multicast addr' - sub module: IGMP - summary: station IGMP leave group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -J -h -m 223.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. join group with correct host addr and wrong multicast addr - - 3. join group with wrong host addr and correct multicast addr - - 4. join group with wrong host addr and wrong multicast addr' - sub module: IGMP - summary: station IGMP join group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.PC OK - - 5.PC OK - - 6.PC OK - - 7.PC OK - - 8.PC OK SOC_CLOSE=SOC1' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上关闭工作线程 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1472字节数据 - - 6.PC往8266上发送1472字节数据 - - 7.PC往8266上发送1472字节数据 - - 8.PC往8266上发送1472字节数据' - sub module: UDP - summary: STA mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: use UDP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_ICMP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ping -i - - ['R SSC1 C +PING:OK'] - - - SSC SSC1 ping -i -c 2 - - ['R SSC1 C +PING:OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.ping -i - - 2.ping -i -c 2' - sub module: ICMP - summary: ping function test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: ping function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_ADDR_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t - - [''] - - - SSC SSC2 sta -S -b 44:55:66:77:88:99 - - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC2 mac -Q -o 1 - - ['R SSC2 A :\+STAMAC:(.+)\r\n'] - - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -L - - ['R SSC1 C +LSTA:22:33:44:55:66:77'] - - - SSC SSC2 mac -S -o 1 -m - - ['R SSC2 C +MAC:STA,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.ok - - 3.ok - - 4.ok - - 5.ok - - 6.ok - - 7.ok - - 8.ok - - 9.ok' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ - 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ - 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ - 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac" - sub module: MAC Address - summary: set mac and do scan/JAP/SAP - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: mac address function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0108 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 C BIND:ERROR'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上创建TCP socket3, target_udp_port1' - sub module: UDP - summary: AP mode, udp bind test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0109 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN - - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC2 ip - - ['R SSC2 A :STAIP:(.+)\r\n'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - [R SOC1 UL 5] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['R SSC2 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.PC上SOC2 UDP传输,bing - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 - - 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' - sub module: UDP - summary: AP mode, sendto test. use different ip, port - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0106 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok - - 3.ok - - 4.ok - - 5.ok' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 - - 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 - - 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 - - 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' - sub module: UDP - summary: STA mode, create max udp socket test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0107 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上查询创建socket信息' - sub module: UDP - summary: STA mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SOC SOC1 SENDTO 1 - - [R SSC1 SL +1] - - - SOC SOC1 SENDTO 1472 - - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] - - - SOC SOC1 SENDTO 1473 - - [P SSC1 NC +RECVFROM, P SOC_COM C OK] - - - SOC SOC2 BIND - - [R SOC_COM L OK] - - - SOC SOC2 SENDTO 1472 - - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没收到UDP包 - - 6.OK - - 7.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.PC往8266上发送1字节数据 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1473字节数据 - - 6.PC上SOC2 UDP传输,bing - - 7.PC往8266上发送1472字节数据' - sub module: UDP - summary: STA mode, recvfrom basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0105 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.关闭socket1' - sub module: UDP - summary: STA mode, close UDP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC2 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 10 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] - - - SSC SSC1 soc -S -s -i -p -l 10 - - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.PC上SOC2 UDP传输,bing - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 - - 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' - sub module: UDP - summary: STA mode, sendto test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] - - - SSC SSC1 soc -S -s -i -p -l 1472 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] - - - SSC SSC1 soc -S -s -i -p -l 1473 - - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] - - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没有到UDP包 - - 6.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 - - 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 - - 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' - sub module: UDP - summary: STA mode, sendto test with different length - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 C BIND:ERROR'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上创建TCP socket3, target_udp_port1' - sub module: UDP - summary: STA mode, udp bind test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. target1 recv multicast packet' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. target2 join SoftAP - - 2. target1 join group and create UDP socket using multicast addr - - 3. target2 create UDP socket - - 4. target2 send to multicast addr' - sub module: IGMP - summary: softAP send multicast packets - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC1 SENDTO 1 224.1.1.1 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. able to recv packet' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. join group - - 2. create UDP socket using multicast addr - - 3. PC send UDP packet to multicast addr' - sub module: IGMP - summary: station IGMP recv packets - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 op -S -o 1 - - ['R SSC2 C +MODE:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. target1 recv multicast packet' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. target2 set to sta mode and join AP - - 2. target1 join group and create UDP socket using multicast addr - - 3. target2 create UDP socket - - 4. target2 send to multicast addr' - sub module: IGMP - summary: station send multicast packets - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_IGMP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC1 SENDTO 1 224.1.1.1 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. able to recv packet' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. join group - - 2. create UDP socket using multicast addr - - 3. PC send UDP packet to multicast addr' - sub module: IGMP - summary: softAP IGMP recv packets - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0401 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -R -a 0 - - ['R SSC1 C +AUTORECONN:OK'] - - - SSC SSC1 sta -R -a 2 - - ['R SSC1 C +AUTORECONN:0'] - - - SSC SSC1 reboot - - [''] - - - DELAY 15 - - [''] - - - SSC SSC1 sta -Q - - ['R SSC1 C JAP:DISCONNECTED'] - - - SSC SSC1 sta -R -a 1 - - ['R SSC1 C +AUTORECONN:OK'] - - - SSC SSC1 sta -R -a 2 - - ['R SSC1 C +AUTORECONN:1'] - - - SSC SSC1 reboot - - ['R SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1.设置autoreconn,关闭 - - 2.查询当前autoreconn状态是否关闭 - - 3.重启系统,等待15s - - 4.查询target1 未自动重连AP - - 5.设置autoreconn,开启 - - 6.查询当前autoreconn状态是否开启 - - 7.系统重启后target1 自动重连AP' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: WIFI MAC - steps: '1.设置autoreconn,关闭 - - 2.查询当前autoreconn状态是否关闭 - - 3.重启系统,等待15s - - 4.查询target1 未自动重连AP - - 5.设置autoreconn,开启 - - 6.查询当前autoreconn状态是否开启 - - 7.系统重启后target1 自动重连AP' - sub module: WIFI Connect - summary: auto reconnect test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: power on auto reconnect test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0404 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ - \ \n6.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0405 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -S -s -l 1 - - [''] - - - DELAY 5400 - - ['P SSC1 RE CLOSED:\d+,0'] - comment: '' - execution time: 1.5 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.TCP连接断开' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.PC 网卡 disable - - 6.target1上使用socket1发送数据,等待 90 分钟' - sub module: TCP - summary: do TCP send after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0406 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0407 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ - \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" - sub module: TCP - summary: do TCP send after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0401 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.断开与AP 连接 - - 6.8266往PC上发送5字节数据' - sub module: TCP - summary: do TCP send after WIFI disconnected - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0402 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.断开与AP 连接 - - 6.关闭建立的socket1连接' - sub module: TCP - summary: "close TCP socket after WIFI \ndisconnected" - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0403 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ - \ \n6.8266往PC上发送5字节数据" - sub module: TCP - summary: do TCP send after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0408 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ - \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" - sub module: TCP - summary: close TCP socket after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.PC OK - - 5.PC OK - - 6.PC OK - - 7.PC OK - - 8.PC OK SOC_CLOSE=SOC1' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上关闭工作线程 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1472字节数据 - - 6.PC往8266上发送1472字节数据 - - 7.PC往8266上发送1472字节数据 - - 8.PC往8266上发送1472字节数据' - sub module: UDP - summary: STA mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: use UDP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0307 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0306 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" - sub module: UDP - summary: do UDP send after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0305 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0304 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t -h - 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 P , R SSC2 C +SCANDONE] - - - SSC SSC1 ap -S -s -p -t -h - 1 - - ['R SSC1 C +SAP:OK'] - - - DELAY 3 - - [''] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 C +SCANDONE] - - - DELAY 3 - - [''] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 NP C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP,set ssid broad cast - - 2.target 2上scan target_ap_mac - - 3.target1 set AP,set ssid hidden, - - 4.target 2上不能scan target_ap_mac' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast - - 2.target 2上scan target_ap_mac - - 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, - - 4.target 2上scan target_ap_mac' - sub module: WIFI Connect - summary: station SAP+JAP test, ssid hidden - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0101 + ID: TCPIP_TCP_0101 SDK: '8266_NonOS 8266_RTOS @@ -4901,9 +1869,10 @@ test cases: 5.ERROR 6.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration module: TCPIP steps: '1.PC上建立TCP 监听 test_tcp_port1 @@ -4928,7 +1897,60 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_TCP_0103 + ID: TCPIP_TCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: STA mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0103 SDK: '8266_NonOS 8266_RTOS @@ -4973,9 +1995,10 @@ test cases: 7.target收到 146000 byte 8.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration module: TCPIP steps: '1. PC上建立TCP 监听 test_tcp_port1 @@ -4991,7 +2014,7 @@ test cases: 7. PC send 100 * 1460 data to 8266, - 8.8266 send 100 * 1460 to PC.' + 8.8266 send 100 * 1460 to PC. ' sub module: TCP summary: STA mode, send/recv basic test test environment: SSC_T1_1 @@ -5003,4051 +2026,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC1 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] - - - SOC SOC1 CONNECT - - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.PC TCP client accept - - 4.error' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.target1上创建TCP socket,bind到本地端口 - - 2.target1上使用步骤1创建的socket,创建TCP 监听 - - 3.PC TCP 连接到target1 , - - 4.PC tcp 连接到不存在的port ,' - sub module: TCP - summary: STA mode, server listen test. use different kinds of port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0105 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT - - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK - - 6.OK - - 7.target1关闭socket1 - - 8.target1关闭socket2 - - 9.OK - - 10.OK,pc tcp server accept成功 - - 11.target1关闭socket1 - - 12.OK - - 13.OK,pc tcp server accept成功 - - 14.OK - - 15.target1关闭socket1' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ - 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ - 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ - 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" - sub module: TCP - summary: STA mode, close for different types of TCP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h W - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h R - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept OK - - 4.OK - - 5.OK - - 6.OK,pc tcp server accept OK - - 7.OK - - 8.OK - - 9.OK,pc tcp server accept OK - - 10.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 4.target1 shutdown socket1 B - - 5.target1上创建TCP socket - - 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 7.target1 shutdown socket2 W - - 8.target1上创建TCP socket - - 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 10.target1 shutdown socket3 R' - sub module: TCP - summary: STA mode, shutdown basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0107 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC3 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC4 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC5 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC6 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - comment: '' - execution time: 0.0 - expected result: '1.+BIND:0,OK,0.0.0.0 - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK,pc tcp server accept成功 - - 5.OK,pc tcp server accept成功 - - 6.OK,pc tcp server accept成功 - - 7.OK,pc tcp server accept成功' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ - \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6" - sub module: TCP - summary: STA mode, accept max TCP client by server test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0106 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4 OK - - 5.OK,pc tcp server accept成功 - - 6.OK - - 7.OK,pc tcp server accept成功 - - 8 OK - - 9.OK,pc tcp server accept成功 - - 10.OK - - 11.OK,pc tcp server accept成功' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 4.target1上创建TCP socket2 - - 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 6.target1上创建TCP socket3 - - 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 8.target1上创建TCP socket4 - - 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 10.target1上创建TCP socket5 - - 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' - sub module: TCP - summary: STA mode, create max TCP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0210 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - WIFI CONN2 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. succeed - - 5. find target2 and PC' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client able to get IP (discover with requested - IP) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0211 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - DELAY 10 - - [''] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. succeed - - 5. find target2 and PC' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client able to renew IP (direct send request) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0212 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT 0 - - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', - 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', - 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.OK - - 9.PC OK, target1 +ACCEPT:3,2,,port - - 10.+SOCINFO:,,, - - +SOCINFO:,,, - - +SOCINFO:, - - +SOCINFO:,,, - - +SOCINF0ALL' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ - \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" - sub module: TCP - summary: AP mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0210 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC2 SEND 146000 - - [P SOC_COM R *] - - - SSC SSC1 soc -W -s -o 1 - - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 6.OK - - 7.收到 146000 数据 - - ' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1 创建好TCP 连接,有ACCEPT - - 5.target停止调用recv - - 6.PC send 100 * 1460 data to 8266, - - 7.target重新调用recv' - sub module: TCP - summary: AP mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0210 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC2 SEND 146000 - - [P SOC_COM R *] - - - SSC SSC1 soc -W -s -o 1 - - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 6.OK - - 7.收到 146000 数据' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1 创建好TCP 连接,有ACCEPT - - 5.target停止调用recv - - 6.PC send 100 * 1460 data to 8266, - - 7.target重新调用recv' - sub module: TCP - summary: AP mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0212 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT 0 - - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', - 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', - 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.OK - - 9.PC OK, target1 +ACCEPT:3,2,,port - - 10.+SOCINFO:,,, - - +SOCINFO:,,, - - +SOCINFO:, - - +SOCINFO:,,, - - +SOCINF0ALL' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ - \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" - sub module: TCP - summary: AP mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0211 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - DELAY 10 - - [''] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. succeed - - 5. find target2 and PC' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client able to renew IP (direct send request) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0210 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - WIFI CONN2 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. succeed - - 5. find target2 and PC' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client able to get IP (discover with requested - IP) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_ADDR_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 mac -Q -o 3 - - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] - - - SSC SSC1 mac -S -o 1 -m - - ['R SSC1 C +MAC:STA,OK'] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.ok - - 3.ok - - 4.ok - - 5.ok - - 6.ok' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ - \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ - \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n" - sub module: MAC Address - summary: set mac, query mac - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: mac address function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_ADDR_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC1 ap -S -s -p -t - - [''] - - - SSC SSC2 sta -S -b 44:55:66:77:88:99 - - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] - - - SSC SSC1 mac -S -o 2 -m - - ['R SSC1 C +MAC:AP,OK'] - - - SSC SSC2 mac -Q -o 1 - - ['R SSC2 A :\+STAMAC:(.+)\r\n'] - - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -L - - ['R SSC1 C +LSTA:22:33:44:55:66:77'] - - - SSC SSC2 mac -S -o 1 -m - - ['R SSC2 C +MAC:STA,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.ok - - 3.ok - - 4.ok - - 5.ok - - 6.ok - - 7.ok - - 8.ok - - 9.ok' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ - 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ - 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ - 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n" - sub module: MAC Address - summary: set mac and do scan/JAP/SAP - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: mac address function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - - - SOC SOC1 SENDTO 1472 - - [''] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.PC OK - - 5.PC OK - - 6.PC OK - - 7.PC OK - - 8.PC OK SOC_CLOSE=SOC1' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上关闭工作线程 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1472字节数据 - - 6.PC往8266上发送1472字节数据 - - 7.PC往8266上发送1472字节数据 - - 8.PC往8266上发送1472字节数据' - sub module: UDP - summary: AP mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: use UDP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0411 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.target1上创建TCP socket2 - - 6.8266往PC socket2上发送5字节数据 - - 7.8266往PC socket1上发送5字节数据' - sub module: TCP - summary: do TCP send after socket changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: TCP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0502 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2; SoftAP in 20M, STA in 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M, SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_20 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_40' - sub module: Phy Mode - summary: SoftAP STA in channel1 20M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0503 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M, SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0501 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_20 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1 20M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0506 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 40M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_40' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0505 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2; SoftAP in 20M, STA in 40M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA set to 40M ,SoftAP set to 20M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0301 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t -h - 0 -m 8 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] - comment: '' - execution time: 0.0 - expected result: '1. target1 set AP - - 2.target 1上查询到跟设置AP时一致 - - ' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: WIFI MAC - steps: '1. target1 set AP - - 2.target 1上查询到跟设置AP时一致 - - ' - sub module: WIFI Connect - summary: AP config query test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: query AP config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 - - ['R SSC1 C +IP:ERROR'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 2 - - ['R SSC1 C +APIP:192.168.123.123'] - - - SSC SSC1 ip -S -o 2 -i - - ['R SSC1 C +IP:OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.ERROR - - 3.OK - - 4.OK - - 5.APIP:192.168.123.123 - - 6.OK' - initial condition: APSTA1 - initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) - module: TCPIP - steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\ - \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\ - \ 设置softAP ip 为target_ap_ip" - sub module: IP - summary: ap set and query static ip test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: set and query static IP - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0105 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.关闭socket1' - sub module: UDP - summary: STA mode, close UDP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SOC SOC1 SENDTO 1 - - [R SSC1 SL +1] - - - SOC SOC1 SENDTO 1472 - - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] - - - SOC SOC1 SENDTO 1473 - - [P SSC1 NC +RECVFROM, P SOC_COM C OK] - - - SOC SOC2 BIND - - [R SOC_COM L OK] - - - SOC SOC2 SENDTO 1472 - - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没收到UDP包 - - 6.OK - - 7.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.PC往8266上发送1字节数据 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1473字节数据 - - 6.PC上SOC2 UDP传输,bing - - 7.PC往8266上发送1472字节数据' - sub module: UDP - summary: STA mode, recvfrom basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0107 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上查询创建socket信息' - sub module: UDP - summary: STA mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0106 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok - - 3.ok - - 4.ok - - 5.ok' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 - - 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 - - 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 - - 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' - sub module: UDP - summary: STA mode, create max udp socket test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 C BIND:ERROR'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上创建TCP socket3, target_udp_port1' - sub module: UDP - summary: STA mode, udp bind test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] - - - SSC SSC1 soc -S -s -i -p -l 1472 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] - - - SSC SSC1 soc -S -s -i -p -l 1473 - - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] - - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没有到UDP包 - - 6.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 - - 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 - - 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' - sub module: UDP - summary: STA mode, sendto test with different length - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC2 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 10 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] - - - SSC SSC1 soc -S -s -i -p -l 10 - - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.PC上SOC2 UDP传输,bing - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 - - 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' - sub module: UDP - summary: STA mode, sendto test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 20 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ - \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ - 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" - sub module: DHCP - summary: dhcp server function test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 3 - - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] - - - SSC SSC1 dhcp -Q -o 3 - - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -Q -o 1 - - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -Q -o 2 - - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] - - - SSC SSC1 dhcp -E -o 3 - - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] - - - SSC SSC1 dhcp -Q -o 3 - - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.STA&AP STARTED - - 4.STA STARTED - - 5.AP STARTED - - 6.OK - - 7.STA&AP STOPPED' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: TCPIP - steps: '1.target1 设置mode 为sta+softAP mode - - 2.target1 打开DHCP 3 - - 3.target1 查询DHCP 状态 - - 4.target1 查询sta DHCP 状态 - - 5.target1 查询softAP DHCP 状态 - - 6.target1 关闭 DHCP 3 - - 7.target1 查询 DHCP 状态' - sub module: DHCP - summary: dhcp status query - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0301 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -S - - [''] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANFAIL, 'P SSC1 P +SCAN:', R SSC1 C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1. second scan failed - - 2. first scan succeed' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. do all channel scan - - 2. do scan before scan finished' - sub module: WIFI Scan - summary: reject scan request before scan finished - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0303 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK'] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:OK'] - - - SSC SSC1 sta -S - - [''] - - - SSC SSC1 sta -C -s -p - - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '2. scan succeed, JAP succeed - - 5. JAP succeed, scan succeed' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 1 STA join AP - - 2. target 1 STA scan before JAP succeed - - 3. target 1 quite AP - - 4. target 1 scan - - 5. target 1 JAP before scan succeed' - sub module: WIFI Scan - summary: scan during JAP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0801 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -S -s -p -t 2 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] - - - SSC SSC1 ap -S -s -p -t 4 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] - - - SSC SSC1 ap -S -s -p -t 0 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. auth change event old mode 0 new mode 2 - - 4. auth change event old mode 2 new mode 3 - - 5. auth change event old mode 3 new mode 4 - - 6. auth change event old mode 4 new mode 0' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. set target1 softap auth mode 0 - - 2. target2 connect to target1 - - 3. set target1 softap auth mode 2, wait sta connected - - 4. set target1 softap auth mode 3, wait sta connected - - 5. set target1 softap auth mode 4, wait sta connected - - 6. set target1 softap auth mode 0, wait sta connected' - sub module: WIFI Connect - summary: test auth change event - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi auth changed event test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0304 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:OK'] - - - SSC SSC1 sta -S - - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC1 sta -S - - [''] - - - SSC SSC2 sta -C -s -p - - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '2. scan succeed, JAP succeed - - 5. JAP succeed, scan succeed' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 2 STA join target 1 SoftAP - - 2. target 1 STA scan before target 2 JAP succeed - - 3. target 2 STA QAP - - 4. target 1 STA scan - - 5. target 2 STA JAP before target 1 STA scan succeed' - sub module: WIFI Scan - summary: scan during ext STA join SoftAP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_UDP_0108 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 C BIND:ERROR'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 - - 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 4.target1上创建TCP socket3, target_udp_port1' - sub module: UDP - summary: AP mode, udp bind test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0104 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t -m - 1 - - ['R SSC1 C +SAP:OK'] - - - WIFI DISCONN - - ['R PC_COM C +WIFIDISCONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - WIFI CONN - - - ['R PC_COM C +WIFICONN:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. target1 set AP,set max allowed sta as 1 - - 2. use PC disconnect, - - 3.target 2 jap succeed - - 4.PC WIFI can not CONN' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 - - 2.use PC disconnect target1 - - 3.target 2 jap target1 - - 4.PC WIFI CONNECT target1' - sub module: WIFI Connect - summary: station SAP test, max allowed sta - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC1 SENDTO 1 224.1.1.1 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. able to recv packet' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. join group - - 2. create UDP socket using multicast addr - - 3. PC send UDP packet to multicast addr' - sub module: IGMP - summary: station IGMP recv packets - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SOC SOC1 SENDTO 1 224.1.1.1 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. able to recv packet' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. join group - - 2. create UDP socket using multicast addr - - 3. PC send UDP packet to multicast addr' - sub module: IGMP - summary: softAP IGMP recv packets - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 op -S -o 1 - - ['R SSC2 C +MODE:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. target1 recv multicast packet' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. target2 set to sta mode and join AP - - 2. target1 join group and create UDP socket using multicast addr - - 3. target2 create UDP socket - - 4. target2 send to multicast addr' - sub module: IGMP - summary: station send multicast packets - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IGMP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :\+BIND:(\d+),OK'] - - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 - - [R SSC1 SL +1] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. target1 recv multicast packet' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. target2 join SoftAP - - 2. target1 join group and create UDP socket using multicast addr - - 3. target2 create UDP socket - - 4. target2 send to multicast addr' - sub module: IGMP - summary: softAP send multicast packets - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP send/recv test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0301 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t -h - 0 -m 8 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 ap -Q - - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] - comment: '' - execution time: 0.0 - expected result: '1. target1 set AP - - 2.target 1上查询到跟设置AP时一致' - initial condition: APSTA1 - initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) - module: WIFI MAC - steps: '1. target1 set AP - - 2.target 1上查询到跟设置AP时一致' - sub module: WIFI Connect - summary: AP config query test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: query AP config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0114 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上查询创建socket信息' - sub module: UDP - summary: AP mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0111 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN - - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC2 ip - - ['R SSC2 A :STAIP:(.+)\r\n'] - - - SSC SSC2 soc -B -t UDP -p - - ['R SSC2 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SOC SOC1 SENDTO 5 - - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] - - - SSC SSC2 soc -S -s -i -p -l 5 - - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没收到UDP包 - - 6.OK - - 7.OK' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.PC往8266上发送1字节数据 - - 4.PC往8266上发送1472字节数据 - - 5.PC往8266上发送1473字节数据 - - 6.PC上SOC2 UDP传输,bing - - 7.PC往8266上发送1472字节数据' - sub module: UDP - summary: AP mode, recvfrom basic test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0110 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] - - - SSC SSC1 soc -S -s -i -p -l 1472 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] - - - SSC SSC1 soc -S -s -i -p -l 1473 - - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] - - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 - -j 20 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK,没收到UDP包 - - 6.OK' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 - - 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 - - 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' - sub module: UDP - summary: AP mode, sendto test with different length - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0113 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 RE BIND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.ok - - 3.ok - - 4.ok - - 5.ok' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 - - 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 - - 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 - - 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' - sub module: UDP - summary: AP mode, create max udp socket test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0112 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 2.关闭socket1' - sub module: UDP - summary: AP mode, close UDP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use UDP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0501 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC2 sta -R -r 1 - - ['R SSC2 C +RECONN:OK'] - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - DELAY 10 - - [''] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - DELAY 15 - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -R -r 0 - - ['R SSC2 C +RECONN:OK'] - - - SSC SSC2 sta -R -r 2 - - ['R SSC2 C +RECONN:0'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - DELAY 10 - - [''] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - DELAY 15 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] - - - SSC SSC2 sta -R -r 1 - - ['R SSC2 C +RECONN:OK'] - comment: '' - execution time: 0.0 - expected result: '1.设置reconn,开启(此功能不需要重启系统) - - 2.target1 set AP - - 3.target2 JAP target1 成功 - - 4.target2 断开target1 连接 - - 5.等待10s,target2 自动重连target1 - - 6.成功 - - 7.查询reconn状态,关闭 - - 8.修改mode 成功 - - 9.等待15s,target2 不会自动重连target1' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\ - \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\ - 7.查询reconn状态,关闭\n8.target1 修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode" - sub module: WIFI Connect - summary: reconnect policy test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: reconnect policy test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0502 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -R -r 1 - - ['R SSC2 C +RECONN:OK'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - DELAY 5 - - ['R SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - DELAY 10 - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - DELAY 10 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP - - 2.target2 jap target 1 - - 3.设置reconn,开启(此功能不需要重启系统) - - 4.target2 断开target1 连接 - - 5.等待10s,target2 自动重连target1 - - 6.target2 断开target1 连接' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式 - - 2.target2 jap target 1 - - 3.设置reconn,开启(此功能不需要重启系统) - - 4.target2 断开target1 连接 - - 5.等待10s,target2 自动重连target1 - - 6.target2 断开target1 连接' - sub module: WIFI Connect - summary: will not do reconnect after manually disconnected - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: reconnect policy test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0401 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -R -a 0 - - ['R SSC1 C +AUTORECONN:OK'] - - - SSC SSC1 sta -R -a 2 - - ['R SSC1 C +AUTORECONN:0'] - - - SSC SSC1 reboot - - [''] - - - DELAY 15 - - [''] - - - SSC SSC1 sta -Q - - ['R SSC1 C JAP:DISCONNECTED'] - - - SSC SSC1 sta -R -a 1 - - ['R SSC1 C +AUTORECONN:OK'] - - - SSC SSC1 sta -R -a 2 - - ['R SSC1 C +AUTORECONN:1'] - - - SSC SSC1 reboot - - ['R SSC1 C +JAP:CONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1.设置autoreconn,关闭 - - 2.查询当前autoreconn状态是否关闭 - - 3.重启系统,等待15s - - 4.查询target1 未自动重连AP - - 5.设置autoreconn,开启 - - 6.查询当前autoreconn状态是否开启 - - 7.系统重启后target1 自动重连AP' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: WIFI MAC - steps: '1.设置autoreconn,关闭 - - 2.查询当前autoreconn状态是否关闭 - - 3.重启系统,等待15s - - 4.查询target1 未自动重连AP - - 5.设置autoreconn,开启 - - 6.查询当前autoreconn状态是否开启 - - 7.系统重启后target1 自动重连AP' - sub module: WIFI Connect - summary: auto reconnect test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: power on auto reconnect test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_MODE_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 dhcp -S -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC2 sta -S - - [R SSC2 NP C +SCANDONE] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:OK'] - comment: '' - execution time: 0.0 - expected result: '1.target1下设置ssid 和pwd 、加密方式成功 - - 2.修改target 1的mode 为sta mode - - 3.target1的dhcp打开 - - 4.target1成功连接上AP - - 5.target2上不能查询到target_ssid - - 6.target1断开AP' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式 - - 2.修改target1的mode 为sta mode - - 3.target1的dhcp打开 - - 4.target1连接AP - - 5.target2查询target_ssid - - 6.target1断开AP' - sub module: WIFI Mode - summary: mode switch test (sta mode) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi mode fucntion - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_MODE_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 op -S -o 3 - - ['R SSC1 C +MODE:OK'] - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -S -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC2 sta -S - - [R SSC2 P , R SSC2 C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 change to AP mode - - 2.target1 set AP - - 3.target 1 的dhcp 打开 - - 4.target 1 成功连接上AP - - 5.target 2 上查询到target_ssid' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: WIFI MAC - steps: '1.target1 change to AP mode - - 2.target1下设置ssid 和pwd 加密方式 - - 3.target1 的dhcp 打开 - - 4.target1 连接AP - - 5.target2 上查询target_ssid' - sub module: WIFI Mode - summary: mode switch test (STA+AP mode) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi mode fucntion - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_MODE_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S - - [R SSC2 P , R SSC2 C +SCANDONE] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:ERROR'] - - - SSC SSC1 sta -D - - ['R SSC1 C +QAP:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. target1 set AP - - 2.target 2 上查询到target_ssid - - 3. target1 can''t join AP - - 4. target1 can''t QAP' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式 - - 2.target 2 上查询target_ssid - - 3.target1 join AP - - 4.target1 DISCONN AP' - sub module: WIFI Mode - summary: mode switch test (AP mode) - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi mode fucntion - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0904 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p 1234567890 - - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - WIFI CONN - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] - - - WIFI DISCONN - - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -S -s -p -t 3 -m 1 - - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. disconnect event REASON_HANDSHAKE_TIMEOUT - - 3. succeed - - 4. succeed - - 5. disconnect event REASON_ASSOC_TOOMANY - - 6. succeed, target2 connect succeed - - 7. disconnect event REASON_ASSOC_EXPIRE' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. config target1 softap max sta allowed 1 - - 2. target2 connect to target1 with wrong password - - 3. target2 disconnect - - 4. PC WIFI NIC connect to target1 - - 5. target2 connect to target1 with correct password - - 6. PC WIFI NIC disconnect - - 7. reconfig softap' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, - REASON_ASSOC_EXPIRE - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0902 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - APC OFF - - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] - - - APC ON - - [P PC_COM L OK] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. disconnect event REASON_BEACON_TIMEOUT' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1. connect to AP - - 2. AP power off' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_BEACON_TIMEOUT - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^WIFI_CONN_0901 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: basic function - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -D - - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] - comment: '' - execution time: 0.0 - expected result: '1. disconnect event reason REASON_ASSOC_LEAVE - - 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT - - 3. disconnect event reason REASON_NO_AP_FOUND' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: WIFI MAC - steps: '1. sta connect to AP, and disconnect - - 2. connect to AP with wrong password - - 3. connect to AP not exist' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, - REASON_NO_AP_FOUND - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['P SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2.OK - - 3.ERROR - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.OK - - 9.OK - - 10.OK - - 11.OK - - 12.ERROR' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去连接 PC的ip, - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,创建TCP 监听 - - 6.target1上使用步骤4创建的socket,去连接 PC的ip, - - 7.target1上创建TCP socket - - 8.target1上使用步骤7创建的socket,去连接 PC的ip, - - 9.target1上关闭步骤7创建的socket - - 10.target1上使用步骤7创建的socket,去连接 PC的ip, - - 11.target1上关闭所有创建的socket - - 12.target1上使用步骤2创建的socket,去连接 PC的ip,' - sub module: TCP - summary: STA mode, connect test. use socket in state that can't connect - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0206 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -i - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT - - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] - - - SSC SSC1 soc -I - - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', - 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', - 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK - - 8.OK - - 9.PC OK, target1 +ACCEPT:3,2,,port - - 10.+SOCINFO:,,, - - +SOCINFO:,,, - - +SOCINFO:, - - +SOCINFO:,,, - - +SOCINF0ALL' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ - \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" - sub module: TCP - summary: STA mode, get active socket info test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0207 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['P SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2 OK - - 3.ERROR - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.OK - - 9.OK - - 10.OK - - 11.OK - - 12.ERROR' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去连接 PC的ip, - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,创建TCP 监听 - - 6.target1上使用步骤4创建的socket,去连接 PC的ip, - - 7.target1上创建TCP socket - - 8.target1上使用步骤7创建的socket,去连接 PC的ip, - - 9.target1上关闭步骤7创建的socket - - 10.target1上使用步骤7创建的socket,去连接 PC的ip, - - 11.target1上关闭所有创建的socket - - 12.target1上使用步骤2创建的socket,去连接 PC的ip,' - sub module: TCP - summary: AP mode, connect test. use socket in state that can't connect - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DNS_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 3/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -H -d iot.espressif.cn - - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] - comment: '' - execution time: 0.0 - expected result: 1.OK - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: 1. get host name "espressif.cn" - sub module: DNS - summary: get host by name test - test environment: SSC_T1_2 - test environment description (auto): 'Able to access WAN after connect to AP. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DNS function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DNS_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 3/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -H -d iot.espressif.cn - - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] - - - SSC SSC1 soc -B -t UDP - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p 9003 -l 10 - - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. get host name "espressif.cn" - - 2. sendto, recvfrom1. get host name "espressif.cn" - - 2. sendto, recvfrom' - sub module: DNS - summary: UDP send to iot.expressif.com - test environment: SSC_T1_2 - test environment description (auto): 'Able to access WAN after connect to AP. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DNS function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DNS_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 3/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -H -d iot.espressif.cn - - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p 9001 - - ['R SSC1 RE \+CONNECT:\d+,OK'] - - - SSC SSC1 soc -S -s -l 10 - - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. get host name "espressif.cn" - - 2. connect, send, recv1. get host name "espressif.cn" - - 2. connect, send, recv' - sub module: DNS - summary: TCP connect to iot.espressif.com - test environment: SSC_T1_2 - test environment description (auto): 'Able to access WAN after connect to AP. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DNS function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0106 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4 OK - - 5.OK,pc tcp server accept成功 - - 6.OK - - 7.OK,pc tcp server accept成功 - - 8 OK - - 9.OK,pc tcp server accept成功 - - 10.OK - - 11.OK,pc tcp server accept成功' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 4.target1上创建TCP socket2 - - 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 6.target1上创建TCP socket3 - - 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 8.target1上创建TCP socket4 - - 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 10.target1上创建TCP socket5 - - 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' - sub module: TCP - summary: STA mode, create max TCP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0107 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC3 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC4 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC5 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC6 CONNECT - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - comment: '' - execution time: 0.0 - expected result: '1.+BIND:0,OK,0.0.0.0 - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK,pc tcp server accept成功 - - 5.OK,pc tcp server accept成功 - - 6.OK,pc tcp server accept成功 - - 7.OK,pc tcp server accept成功' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ - \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ - \ " - sub module: TCP - summary: STA mode, accept max TCP client by server test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) - CI ready: 'Yes' ID: TCPIP_TCP_0104 SDK: '8266_NonOS @@ -9105,6 +2083,7 @@ test cases: initial condition: STAM2 initial condition description (auto): sta mode, join AP, DHCP on, will autogen a TC with initial condition STAAP2 + level: Integration module: TCPIP steps: '1. PC上建立TCP 监听 test_tcp_port1 @@ -9213,6 +2192,7 @@ test cases: initial condition: STAM2 initial condition description (auto): sta mode, join AP, DHCP on, will autogen a TC with initial condition STAAP2 + level: Integration module: TCPIP steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ @@ -9232,7 +2212,7704 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0102 + ID: TCPIP_TCP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: STA mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ + \ " + sub module: TCP + summary: STA mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: AP mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT 0 + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: AP mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.target收到5byte数据 + + 6.PC收到5byte数据 + + 7.target收到146000 byte数据 + + 8.OK,PC 收到146000 byte数据' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC. ' + sub module: TCP + summary: AP mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept成功 + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept成功 + + 10.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: AP mode, shutdown basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK,target1上accept 成功 + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: AP mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0115 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: AP mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0116 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + comment: '' + execution time: 0.0 + expected result: '1.+BIND:0,OK,0.0.0.0 + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ + \ " + sub module: TCP + summary: AP mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: STA mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: STA mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s 1000 + - ['R SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.ERROR + + 6.OK + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket1, + + 3.target1上使用步骤2创建的socket1,去发送数据 + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去发送数据 + + 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 + + 7.target1上shutdown 步骤4的socket2 + + 8.target1往socket2发送错误命令发送数据 + + 9.target1上不指定socket往上发送数据' + sub module: TCP + summary: send test. use socket in state that can't send + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc server accept OK + + 4.OK + + 5.OK + + 6.OK + + 7.target收到146000 byte + + ' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target上不进行recv + + 6.PC send 100 * 1460 data to target, + + 7.在target上开始recv' + sub module: TCP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2 OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: AP mode, connect test. use socket in state that can't connect + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4 OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: AP mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 6.OK + + 7.收到 146000 数据 + + ' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.target停止调用recv + + 6.PC send 100 * 1460 data to 8266, + + 7.target重新调用recv' + sub module: TCP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0212 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.8266往PC上发送5字节数据' + sub module: TCP + summary: do TCP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0402 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.关闭建立的socket1连接' + sub module: TCP + summary: "close TCP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0403 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0404 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0405 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -S -s -l 1 + - [''] + - - DELAY 5400 + - ['P SSC1 RE CLOSED:\d+,0'] + comment: '' + execution time: 1.5 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.TCP连接断开' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.PC 网卡 disable + + 6.target1上使用socket1发送数据,等待 90 分钟' + sub module: TCP + summary: do TCP send after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0406 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0407 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0408 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0411 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.8266往PC socket2上发送5字节数据 + + 7.8266往PC socket1上发送5字节数据' + sub module: TCP + summary: do TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_TCP_0412 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.关闭socket1 连接 + + 7.关闭socket2连接' + sub module: TCP + summary: close TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: STA mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.PC上SOC2 UDP传输,bing + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 + + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: STA mode, sendto test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没有到UDP包 + + 6.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: STA mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 1 + - [R SSC1 SL +1] + - - SOC SOC1 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + - - SOC SOC1 SENDTO 1473 + - [P SSC1 NC +RECVFROM, P SOC_COM C OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SOC SOC2 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recvfrom basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: STA mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: STA mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0108 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: AP mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0109 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC2 ip + - ['R SSC2 A :STAIP:(.+)\r\n'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - [R SOC1 UL 5] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['R SSC2 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.PC上SOC2 UDP传输,bing + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 + + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: AP mode, sendto test. use different ip, port + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 + -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: AP mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC2 ip + - ['R SSC2 A :STAIP:(.+)\r\n'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 5 + - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + - - SSC SSC2 soc -S -s -i -p -l 5 + - ['R SSC1 RE "RECVFROM:%%s,5,%%s,%%u"%%(,,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK + + 7.OK' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: AP mode, recvfrom basic test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.关闭socket1' + sub module: UDP + summary: AP mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok + + 3.ok + + 4.ok + + 5.ok' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: AP mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0114 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上查询创建socket信息' + sub module: UDP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.PC OK + + 5.PC OK + + 6.PC OK + + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: APM2 + initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen + a TC with initial condition APSTA2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' + sub module: UDP + summary: do UDP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + ' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.关闭建立的socket1连接' + sub module: UDP + summary: "close UDP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0303 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0304 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0305 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0306 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: TCPIP_UDP_0307 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_ADDR_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 mac -Q -o 3 + - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ + \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ + \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n" + sub module: MAC Address + summary: set mac, query mac + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_ADDR_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -S -b 44:55:66:77:88:99 + - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -Q -o 1 + - ['R SSC2 A :\+STAMAC:(.+)\r\n'] + - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:22:33:44:55:66:77'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok + + 7.ok + + 8.ok + + 9.ok' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ + 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ + 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ + 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n" + sub module: MAC Address + summary: set mac and do scan/JAP/SAP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -p -t 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + - - SSC SSC1 ap -S -s -p -t 5 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set\ + \ AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2\ + \ jap succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1\ + \ set AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target\ + \ 2 上查询到target_ssid" + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\ + \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\ + \ \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2\ + \ jap target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid\ + \ 和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid" + sub module: WIFI Connect + summary: station SAP+JAP test, different encryption + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -t 0 -n 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -t 0 -n 13 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 ap -S -s -n 15 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - ['R SSC2 RE "\+SCAN:%%s,.+,\d+,1"%%()'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set channel 1 + + 2.target 2 jap succeed + + 3.target1 set AP,set channel 10 + + 4.target 2 jap succeed + + 5.target1 set AP,set channel 15 + + 6.target 2 上查询到target_ssid' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set channel 1 + + 2.target2 jap target 1 + + 3.target1下设置ssid 和pwd 加密方式,set channel 10 + + 4.target2 jap target 1 + + 5.target1下设置ssid 和pwd 加密方式,set channel 15 + + 6.target 2 上查询target_ssid' + sub module: WIFI Connect + summary: station SAP+JAP test, different channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 ap -S -s -p -t -h + 1 + - ['R SSC1 C +SAP:OK'] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 C +SCANDONE] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3.target1 set AP,set ssid hidden, + + 4.target 2上不能scan target_ap_mac' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 4.target 2上scan target_ap_mac' + sub module: WIFI Connect + summary: station SAP+JAP test, ssid hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -m + 1 + - ['R SSC1 C +SAP:OK'] + - - WIFI DISCONN + - ['R PC_COM C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set max allowed sta as 1 + + 2. use PC disconnect, + + 3.target 2 jap succeed + + 4.PC WIFI can not CONN' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 + + 2.use PC disconnect target1 + + 3.target 2 jap target1 + + 4.PC WIFI CONNECT target1' + sub module: WIFI Connect + summary: station SAP test, max allowed sta + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' + sub module: WIFI Connect + summary: JAP query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query JAP status + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -h + 0 -m 8 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致 + + ' + initial condition: APM1 + initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial + condition APSTA1 + level: Integration + module: WIFI MAC + steps: '1. target1 set AP + + 2.target 1上查询到跟设置AP时一致 + + ' + sub module: WIFI Connect + summary: AP config query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query AP config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -a 0 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:0'] + - - SSC SSC1 reboot + - [''] + - - DELAY 15 + - [''] + - - SSC SSC1 sta -Q + - ['R SSC1 C JAP:DISCONNECTED'] + - - SSC SSC1 sta -R -a 1 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:1'] + - - SSC SSC1 reboot + - ['R SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + initial condition: STAM2 + initial condition description (auto): sta mode, join AP, DHCP on, will autogen a + TC with initial condition STAAP2 + level: Integration + module: WIFI MAC + steps: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + sub module: WIFI Connect + summary: auto reconnect test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: power on auto reconnect test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0501 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 0 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC2 sta -R -r 2 + - ['R SSC2 C +RECONN:0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - [''] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 15 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + comment: '' + execution time: 0.0 + expected result: '1.设置reconn,开启(此功能不需要重启系统) + + 2.target1 set AP + + 3.target2 JAP target1 成功 + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.成功 + + 7.查询reconn状态,关闭 + + 8.修改mode 成功 + + 9.等待15s,target2 不会自动重连target1' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\ + \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\ + 7.查询reconn状态,关闭\n8.target1 修改mode 为sta mode\n9.等待15s,target1 修改mode 为softAP mode" + sub module: WIFI Connect + summary: reconnect policy test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0502 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 5 + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.target2 jap target 1 + + 3.设置reconn,开启(此功能不需要重启系统) + + 4.target2 断开target1 连接 + + 5.等待10s,target2 自动重连target1 + + 6.target2 断开target1 连接' + sub module: WIFI Connect + summary: will not do reconnect after manually disconnected + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0601 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP + + 2.PC WIFI CONNECTED + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式 + + 2.PC WIFI CONNECTED target1 + + 3.target2 jap target 1 + + 4.查询到两个sta 连接到target1 上' + sub module: WIFI Connect + summary: list stations connected to soft ap test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: list SoftAP connected station + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0801 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] + - - SSC SSC1 ap -S -s -p -t 0 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. auth change event old mode 0 new mode 2 + + 4. auth change event old mode 2 new mode 3 + + 5. auth change event old mode 3 new mode 4 + + 6. auth change event old mode 4 new mode 0' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1. set target1 softap auth mode 0 + + 2. target2 connect to target1 + + 3. set target1 softap auth mode 2, wait sta connected + + 4. set target1 softap auth mode 3, wait sta connected + + 5. set target1 softap auth mode 4, wait sta connected + + 6. set target1 softap auth mode 0, wait sta connected' + sub module: WIFI Connect + summary: test auth change event + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi auth changed event test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0901 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: basic function + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] + comment: '' + execution time: 0.0 + expected result: '1. disconnect event reason REASON_ASSOC_LEAVE + + 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT + + 3. disconnect event reason REASON_NO_AP_FOUND' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: '1. sta connect to AP, and disconnect + + 2. connect to AP with wrong password + + 3. connect to AP not exist' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, + REASON_NO_AP_FOUND + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_CONN_0904 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p 1234567890 + - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] + - - WIFI DISCONN + - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_HANDSHAKE_TIMEOUT + + 3. succeed + + 4. succeed + + 5. disconnect event REASON_ASSOC_TOOMANY + + 6. succeed, target2 connect succeed + + 7. disconnect event REASON_ASSOC_EXPIRE' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1. config target1 softap max sta allowed 1 + + 2. target2 connect to target1 with wrong password + + 3. target2 disconnect + + 4. PC WIFI NIC connect to target1 + + 5. target2 connect to target1 with correct password + + 6. PC WIFI NIC disconnect + + 7. reconfig softap' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, + REASON_ASSOC_EXPIRE + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC2 sta -S + - [R SSC2 NP C +SCANDONE] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1下设置ssid 和pwd 、加密方式成功 + + 2.修改target 1的mode 为sta mode + + 3.target1的dhcp打开 + + 4.target1成功连接上AP + + 5.target2上不能查询到target_ssid + + 6.target1断开AP' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.修改target1的mode 为sta mode + + 3.target1的dhcp打开 + + 4.target1连接AP + + 5.target2查询target_ssid + + 6.target1断开AP' + sub module: WIFI Mode + summary: mode switch test (sta mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:ERROR'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP + + 2.target 2 上查询到target_ssid + + 3. target1 can''t join AP + + 4. target1 can''t QAP' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 + + 2.target 2 上查询target_ssid + + 3.target1 join AP + + 4.target1 DISCONN AP' + sub module: WIFI Mode + summary: mode switch test (AP mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_MODE_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC2 sta -S + - [R SSC2 P , R SSC2 C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 change to AP mode + + 2.target1 set AP + + 3.target 1 的dhcp 打开 + + 4.target 1 成功连接上AP + + 5.target 2 上查询到target_ssid' + initial condition: T2O_1 + initial condition description (auto): same as T2_1 but will NOT autogen a TC with + initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1 change to AP mode + + 2.target1下设置ssid 和pwd 加密方式 + + 3.target1 的dhcp 打开 + + 4.target1 连接AP + + 5.target2 上查询target_ssid' + sub module: WIFI Mode + summary: mode switch test (STA+AP mode) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi mode fucntion + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0401 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0402 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0403 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0404 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0405 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to + AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0406 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get + disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected + than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0407 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. STA connect to ext AP + + 3. AP get connected' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect + to AP then Softap get connected + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0408 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not + get disconnected + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + + 2. AP get connected + + 3. STA connect to ext AP' + sub module: Phy Mode + summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get + connected than STA connect to AP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP initial channel test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0501 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0502 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_20 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1 20M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0503 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA set to 40M, SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0504 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 20M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0505 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2; SoftAP in 20M, STA in 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA set to 40M ,SoftAP set to 20M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_20' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 20M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_PHY_0506 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 phy -S -o 2 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC3 sta -C -s -p + - ['R SSC3 C +JAP:CONNECTED'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in + channel2 40M + initial condition: T3_PHY1 + initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, + target 3 set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + level: Integration + module: WIFI MAC + steps: '1. target 1 STA and SoftAP set to 40M + + 2. target 2 STA connect to ap_channel1_40 + + 3. target 1/3 STA connect to target 2/1 SoftAP + + 4. target 2 STA connect to ap_channel2_40' + sub module: Phy Mode + summary: SoftAP STA in channel1, SoftAP 40M, STA 40M, STA changed to channel2 40M + test environment: SSC_T3_PhyMode + test environment description (auto): '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: STA+SoftAP dynamic channel switch test + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -s .,juhg123 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s + - ['R SSC2 C +SCAN:', R SSC2 P , 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target 2上不能scan .,juhg123 + + 2.target1 set AP + + 3.target2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target 2 scan .,juhg123 + + 2.target1下设置ssid 和pwd 加密方式 + + 3.target2 scan ' + sub module: WIFI Scan + summary: scan with scan config ssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC2 sta -S -b + - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] + comment: '' + execution time: 0.0 + expected result: '1.target2 上不能查询到此mac + + 2.target2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 + + 2.target2上查询' + sub module: WIFI Scan + summary: scan with scan config bssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -n 5 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -n 6 + - ['R SSC2 C +SCAN:', R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set channel 6 + + 3.target2 上scan不到 channel 5 + + 4.target2 上查询channel 6的' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1 断开连接AP + + 2.target1下设置ssid 和pwd 加密方式,set channel 6 + + 3.target2 上scan channel 5 + + 4.target2 上查询channel 6的' + sub module: WIFI Scan + summary: scan with scan config channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + - - SSC SSC1 ap -S -s -p 123456789 -h 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1 set AP,set ssid hidden, + + 5.target 2上不能查询到 + + 6.target 2上查询到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan + + 3.target 2上scan + + 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 5.target 2上查询 + + 6.target 2上查询' + sub module: WIFI Scan + summary: scan with scan config show hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 10 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + initial condition: T2_1 + initial condition description (auto): target 1 as SoftAP, target 2 as STA, will + autogen a TC with initial condition T2_2 + level: Integration + module: WIFI MAC + steps: '1.target1 QAP + + 2. target1 set AP,set ssid broad cast,set channel 11 + + 3.target2 上查询到 + + 4.target2 上查询不到 + + 5.target2 上查询不到 + + 6.target2 上查询不到' + sub module: WIFI Scan + summary: scan with several configs + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: scan with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0201 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 phy -S -o 1 -m b + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m g + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 20 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + - - SSC SSC1 phy -S -o 1 -m n -b 40 + - ['R SSC1 C +PHY:OK'] + - - SSC SSC1 sta -S + - [R SSC1 P P P P ] + comment: '' + execution time: 0.0 + expected result: '3. find all 3 ext APs + + 5. find all 3 ext APs + + 7. find all 3 ext APs + + 9. find all 3 ext APs' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: '1. 3 ext APs in 11b, 11g, 11n mode + + 2. STA in 11b mode + + 3. do all channel scan + + 4. STA in 11g mode + + 5. do all channel scan + + 6. STA in 11n ht20 mode + + 7. do all channel scan + + 8. STA in 11n ht40 mode + + 9. do all channel scan' + sub module: WIFI Scan + summary: STA in differnt PHY mode to scan AP in different PHY mode + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: basic function + test point 2: Scan in different mode and channel + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0301 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANFAIL, 'P SSC1 P +SCAN:', R SSC1 C +SCANDONE] + comment: '' + execution time: 0.0 + expected result: '1. second scan failed + + 2. first scan succeed' + initial condition: STAM1 + initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a + TC with initial condition STAAP1 + level: Integration + module: WIFI MAC + steps: '1. do all channel scan + + 2. do scan before scan finished' + sub module: WIFI Scan + summary: reject scan request before scan finished + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0302 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -n 1000000 -j 5 + - [''] + - - SSC SSC2 phy -S -o 1 -m b + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m g + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 20 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + - - SSC SSC2 phy -S -o 1 -m n -b 40 + - ['R SSC2 C +PHY:OK'] + - - SSC SSC2 sta -S -n + - [R SSC2 P ] + comment: '' + execution time: 0.0 + expected result: 3. target 2 able to scan AP + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. target 1 connect to AP + + 2. target 1 start sending UDP packets + + 3. target 2 scan in AP channel in 11b.g,n,ht40 mode' + sub module: WIFI Scan + summary: scan in congest channel + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0303 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC1 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. target 1 STA join AP + + 2. target 1 STA scan before JAP succeed + + 3. target 1 quite AP + + 4. target 1 scan + + 5. target 1 JAP before scan succeed' + sub module: WIFI Scan + summary: scan during JAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: WIFI_SCAN_0304 + SDK: ESP32_IDF + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:OK'] + - - SSC SSC1 sta -S + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC1 sta -S + - [''] + - - SSC SSC2 sta -C -s -p + - [P SSC1 C +SCANDONE, 'P SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '2. scan succeed, JAP succeed + + 5. JAP succeed, scan succeed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. target 2 STA join target 1 SoftAP + + 2. target 1 STA scan before target 2 JAP succeed + + 3. target 2 STA QAP + + 4. target 1 STA scan + + 5. target 2 STA JAP before target 1 STA scan succeed' + sub module: WIFI Scan + summary: scan during ext STA join SoftAP + test environment: SSC_T2_PhyMode + test environment description (auto): '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.' + test point 1: interaction + test point 2: Scan interact with other WiFi operation + version: v1 (2015-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 0.0.0.0 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -Q + - ['R SSC1 C +STAIP:0.0.0.0'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -Q + - ['R SSC1 RE "\+STAIP:%%s"%%()'] + comment: '' + execution time: 0.0 + expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ + 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: TCPIP + steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ + \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" + sub module: DHCP + summary: dhcp client function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 20 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target\ + \ 1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n\ + 4.target1 打开DHCP OK\n5.target2 jap target 1,ok" + sub module: DHCP + summary: dhcp server function test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED'] + - - SSC SSC1 dhcp -E -o 3 + - ['R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK'] + - - SSC SSC1 dhcp -Q -o 3 + - ['R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.STA&AP STARTED + + 4.STA STARTED + + 5.AP STARTED + + 6.OK + + 7.STA&AP STOPPED' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: TCPIP + steps: '1.target1 设置mode 为sta+softAP mode + + 2.target1 打开DHCP 3 + + 3.target1 查询DHCP 状态 + + 4.target1 查询sta DHCP 状态 + + 5.target1 查询softAP DHCP 状态 + + 6.target1 关闭 DHCP 3 + + 7.target1 查询 DHCP 状态' + sub module: DHCP + summary: dhcp status query + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP client function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + comment: '' + execution time: 0.0 + expected result: '1.target1 关闭DHCP 2 OK + + 2.target1 设置ip 成功 + + 3.设置dhcp 地址池 OK + + 4.ERROR + + 5.ERROR + + 6.ERROR + + 7.target1 打开DHCP ok' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + level: Integration + module: TCPIP + steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ + 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" + sub module: DHCP + summary: server dhcp lease test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 3 4 "['01','02','03']" "[2,3,4]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3,4: get IP from dhcp pool with correct sequence' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1 + + 3. target change mac, connect to Target1 + + 4. Loop step3' + sub module: DHCP + summary: dhcp server ip pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 2 4 "['01','02']" "[2,3]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - DELAY 20 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:0.0.0.0'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4.1 succeed + + 4.2 failed' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP Server on Target1(.4.2 - .4.3) + + 3. target change mac, connect to Target1 + + 4. Loop step3 twice' + sub module: DHCP + summary: dhcp server ip pool empty + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - DELAY 90 + - [''] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - DELAY 60 + - [''] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 5. succeed + + 6. succeed + + 8. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. config DHCP timeout as 1 minute + + 3. target2 connect to target1 + + 4. wait 90 seconds + + 5. check if target2 IP is same + + 6. target2 disconnect + + 7. wait 60s + + 8. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server timeout test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0205 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 + - ['P SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. target2 wifi disconnected' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 + + 3. disable DHCP server, do config and enable' + sub module: DHCP + summary: disconnect STA if config dhcp server + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0206 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" + - [''] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.{%s}'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 4. get IP 192.168.4.2 - 192.168.4.4 + + 5. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. target2 change mac, connect to softap, disconnect + + 4. Loop step3 twice + + 5. change to first mac, connect to softap' + sub module: DHCP + summary: dhcp server assign same IP to same MAC when it's not released + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0207 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI DISCONN2 + - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 ip -Q -o 1 + - ['R SSC2 C +STAIP:192.168.4.2'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. get IP 192.168.4.2 + + 4. succeed + + 5. succeed + + 6. get IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. disable DHCP server, do config and enable + + 3. PC WIFI NIC connect to target1 softap + + 4. target2 connect to target1 softap and disnnect + + 5. PC release IP and disconnected + + 6. target2 change mac and connect to target1' + sub module: DHCP + summary: dhcp server prefer assign released IP to new client + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0208 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. get IP 192.168.4.2 + + 5. can only find target2 with IP 192.168.4.2' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. PC NIC connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. target2 connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig and new client able to get first IP in pool + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0209 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - DELAY 20 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client and new client able to get IP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0210 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - WIFI CONN2 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to get IP (discover with requested + IP) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0211 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 4 + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN 192.168.4.2 + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - DELAY 10 + - [''] + - - SSC SSC1 ap -L + - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. succeed + + 5. find target2 and PC' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. config softap to a random ssid + + 2. target2 connect to target1 softap + + 3. disable DHCP server, do config and enable + + 4. PC NIC connect to target1 softap try to renew IP 192.168.4.2 + + 5. softap list connected station' + sub module: DHCP + summary: dhcp server reconfig, old client able to renew IP (direct send request) + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DHCP server function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0301 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 ip -S -i 0.0.0.0 -o 1 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.JAP CONNETED + + 4.OK + + 5.等待10s,JAP fail' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: TCPIP + steps: '1.target1 关闭DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 jap AP + + 5.target1 设置sta ip 0.0.0.0 + + 6.target1 jap AP' + sub module: DHCP + summary: sta dhcp static ip interaction + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DHCP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.123.123 -o 2 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10 + - ['R SSC1 C +DHCP:LEASE,ERROR'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -i 192.168.4.1 -o 2 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10 + - ['R SSC1 C +DHCP:LEASE,OK'] + - - SSC SSC2 sta -C -s -p + - [''] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target 1 OK + + 2.target1 ERROR + + 3.target1 ERROR + + 4.target2 jap target1 OK + + 5.target1 OK + + 6.target1 OK + + 7.target1 OK + + 8.target2 jap target1 OK' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n\ + 4.target1下设置ssid 和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1\ + \ 设置softAP ip \n8.target1 设置正确的地址池\n9.target2 连接target1" + sub module: DHCP + summary: ap dhcp static ip interaction + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: interaction + test point 2: static IP and DHCP interaction test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 3/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 C +HOSTIP:OK,115.29.202.58'] + comment: '' + execution time: 0.0 + expected result: 1.OK + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: 1. get host name "espressif.cn" + sub module: DNS + summary: get host by name test + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 3/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p 9001 + - ['R SSC1 RE \+CONNECT:\d+,OK'] + - - SSC SSC1 soc -S -s -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. connect, send, recv1. get host name "espressif.cn" + + 2. connect, send, recv' + sub module: DNS + summary: TCP connect to iot.espressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_DNS_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 3/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -H -d iot.espressif.cn + - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] + - - SSC SSC1 soc -B -t UDP + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p 9003 -l 10 + - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. get host name "espressif.cn" + + 2. sendto, recvfrom1. get host name "espressif.cn" + + 2. sendto, recvfrom' + sub module: DNS + summary: UDP send to iot.expressif.com + test environment: SSC_T1_2 + test environment description (auto): 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: DNS function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_ICMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ping -i + - ['R SSC1 C +PING:OK'] + - - SSC SSC1 ping -i -c 2 + - ['R SSC1 C +PING:OK'] + comment: '' + execution time: 0.0 + expected result: '1.ok + + 2.ok' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.ping -i + + 2.ping -i -c 2' + sub module: ICMP + summary: ping function test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: ping function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: station IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: station IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -J -h -m 223.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. join group with correct host addr and wrong multicast addr + + 3. join group with wrong host addr and correct multicast addr + + 4. join group with wrong host addr and wrong multicast addr' + sub module: IGMP + summary: softAP IGMP join group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 igmp -L -h -m 224.1.1.2 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1 + - ['R SSC1 C +IGMP:ERROR'] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. success + + 2. failed + + 3. failed + + 4. failed + + 5. succeed' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1. join group with correct host addr and multicast addr + + 2. leave group with correct host addr and wrong multicast addr + + 3. leave group with wrong host addr and correct multicast addr + + 4. leave group with wrong host addr and wrong multicast addr + + 5. leave group with correct host addr and correct multicast addr' + sub module: IGMP + summary: softAP IGMP leave group address check + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP API parameter check + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: station IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1. target2 set to sta mode and join AP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: station send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC1 SENDTO 1 224.1.1.1 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. able to recv packet' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1. join group + + 2. create UDP socket using multicast addr + + 3. PC send UDP packet to multicast addr' + sub module: IGMP + summary: softAP IGMP recv packets + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IGMP_0204 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 igmp -J -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + - - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p + - ['R SSC1 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -B -t UDP -p + - ['R SSC2 A :\+BIND:(\d+),OK'] + - - SSC SSC2 soc -S -s -i 224.1.1.1 -p -l 10 + - [R SSC1 SL +1] + - - SSC SSC1 igmp -L -h -m 224.1.1.1 + - ['R SSC1 C +IGMP:OK'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. succeed + + 4. target1 recv multicast packet' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: TCPIP + steps: '1. target2 join SoftAP + + 2. target1 join group and create UDP socket using multicast addr + + 3. target2 create UDP socket + + 4. target2 send to multicast addr' + sub module: IGMP + summary: softAP send multicast packets + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: IGMP send/recv test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.123.123'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.STAIP:192.168.123.123' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: TCPIP + steps: '1.target1 打开DHCP 1 + + 2.target1 设置sta ip 192.168.123.123 + + 4.target1 关闭DHCP 1 + + 5.target1 设置sta ip 192.168.123.123 + + 6.target1 查询 当前sta ip' + sub module: IP + summary: sta set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_IP_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 dhcp -S -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:ERROR'] + - - SSC SSC1 dhcp -E -o 2 + - ['R SSC1 C +DHCP:AP,OK'] + - - SSC SSC1 ip -S -o 2 -i 192.168.123.123 + - ['R SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 2 + - ['R SSC1 C +APIP:192.168.123.123'] + - - SSC SSC1 ip -S -o 2 -i + - ['R SSC1 C +IP:OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ERROR + + 3.OK + + 4.OK + + 5.APIP:192.168.123.123 + + 6.OK' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + level: Integration + module: TCPIP + steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP\ + \ 2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1\ + \ 设置softAP ip 为target_ap_ip" + sub module: IP + summary: ap set and query static ip test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: set and query static IP + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: STA mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0102 SDK: '8266_NonOS 8266_RTOS @@ -9261,9 +9938,10 @@ test cases: 3.PC TCP client accept 4.error' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP steps: '1.target1上创建TCP socket,bind到本地端口 @@ -9284,7 +9962,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0103 + ID: ^TCPIP_TCP_0103 SDK: '8266_NonOS 8266_RTOS @@ -9329,9 +10007,10 @@ test cases: 7.target收到 146000 byte 8.OK,PC 回SOC_RECV=SOC2,RECV_LEN=字节数' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP steps: '1. PC上建立TCP 监听 test_tcp_port1 @@ -9347,7 +10026,7 @@ test cases: 7. PC send 100 * 1460 data to 8266, - 8.8266 send 100 * 1460 to PC. ' + 8.8266 send 100 * 1460 to PC.' sub module: TCP summary: STA mode, send/recv basic test test environment: SSC_T1_1 @@ -9360,7 +10039,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0101 + ID: ^TCPIP_TCP_0104 SDK: '8266_NonOS 8266_RTOS @@ -9373,47 +10052,72 @@ test cases: cmd set: - '' - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP - ['R SSC1 A :BIND:(\d+),OK'] - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i 123.456.678.789 -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] comment: '' execution time: 0.0 expected result: '1.OK 2.OK - 3.OK; PC TCP server accept 成功 + 3.OK,pc tcp server accept OK 4.OK - 5.ERROR + 5.OK - 6.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + 6.OK,pc tcp server accept OK + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept OK + + 10.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 + steps: '1. PC上建立TCP 监听 test_tcp_port1 - 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + 2.target1上创建TCP socket - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + 4.target1 shutdown socket1 B - 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + 5.target1上创建TCP socket - 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' sub module: TCP - summary: STA mode, connect test. use different ip, port + summary: STA mode, shutdown basic test test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -9424,7 +10128,198 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_TCP_0116 + ID: ^TCPIP_TCP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK + + 6.OK + + 7.target1关闭socket1 + + 8.target1关闭socket2 + + 9.OK + + 10.OK,pc tcp server accept成功 + + 11.target1关闭socket1 + + 12.OK + + 13.OK,pc tcp server accept成功 + + 14.OK + + 15.target1关闭socket1' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ + 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ + 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ + 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" + sub module: TCP + summary: STA mode, close for different types of TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4 OK + + 5.OK,pc tcp server accept成功 + + 6.OK + + 7.OK,pc tcp server accept成功 + + 8 OK + + 9.OK,pc tcp server accept成功 + + 10.OK + + 11.OK,pc tcp server accept成功' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 6.target1上创建TCP socket3 + + 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 8.target1上创建TCP socket4 + + 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1上创建TCP socket5 + + 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' + sub module: TCP + summary: STA mode, create max TCP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0107 SDK: '8266_NonOS 8266_RTOS @@ -9440,15 +10335,15 @@ test cases: - ['R SSC1 A :BIND:(\d+),OK'] - - SSC SSC1 soc -L -s - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT 0 + - - SOC SOC2 CONNECT - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC3 CONNECT 0 + - - SOC SOC3 CONNECT - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC4 CONNECT 0 + - - SOC SOC4 CONNECT - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC5 CONNECT 0 + - - SOC SOC5 CONNECT - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC6 CONNECT 0 + - - SOC SOC6 CONNECT - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] comment: '' execution time: 0.0 @@ -9465,16 +10360,301 @@ test cases: 6.OK,pc tcp server accept成功 7.OK,pc tcp server accept成功' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6" sub module: TCP - summary: AP mode, accept max TCP client by server test + summary: STA mode, accept max TCP client by server test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] + - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i 123.456.678.789 -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.ERROR + + 6.ERROR' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 + + 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 + + 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' + sub module: TCP + summary: AP mode, connect test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0111 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC1 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] + - - SOC SOC1 CONNECT 0 + - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.PC TCP client accept + + 4.error' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1.target1上创建TCP socket,bind到本地端口 + + 2.target1上使用步骤1创建的socket,创建TCP 监听 + + 3.PC TCP 连接到target1 , + + 4.PC tcp 连接到不存在的port ,' + sub module: TCP + summary: AP mode, server listen test. use different kinds of port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0112 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SOC SOC2 SEND 5 + - [R SSC1 SL +5] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] + - - SOC SOC2 SEND 146000 + - [R SSC1 SL +146000] + - - SSC SSC1 soc -S -s -l 1460 -n 100 + - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.target收到5byte数据 + + 6.PC收到5byte数据 + + 7.target收到146000 byte数据 + + 8.OK,PC 收到146000 byte数据' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1 创建好TCP 连接,有ACCEPT + + 5.PC send 5 bytes to 8266 + + 6.8266 send 5 bytes to PC + + 7. PC send 100 * 1460 data to 8266, + + 8.8266 send 100 * 1460 to PC.' + sub module: TCP + summary: AP mode, send/recv basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h W + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h R + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK,pc tcp server accept成功 + + 4.OK + + 5.OK + + 6.OK,pc tcp server accept成功 + + 7.OK + + 8.OK + + 9.OK,pc tcp server accept成功 + + 10.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1. PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket + + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 4.target1 shutdown socket1 B + + 5.target1上创建TCP socket + + 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 7.target1 shutdown socket2 W + + 8.target1上创建TCP socket + + 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + + 10.target1 shutdown socket3 R' + sub module: TCP + summary: AP mode, shutdown basic test test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -9561,6 +10741,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ @@ -9640,6 +10821,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: '1.PC上建立TCP 监听 test_tcp_port1 @@ -9674,235 +10856,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_TCP_0112 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SOC SOC2 SEND 5 - - [R SSC1 SL +5] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] - - - SOC SOC2 SEND 146000 - - [R SSC1 SL +146000] - - - SSC SSC1 soc -S -s -l 1460 -n 100 - - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.target收到5byte数据 - - 6.PC收到5byte数据 - - 7.target收到146000 byte数据 - - 8.OK,PC 收到146000 byte数据' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1 创建好TCP 连接,有ACCEPT - - 5.PC send 5 bytes to 8266 - - 6.8266 send 5 bytes to PC - - 7. PC send 100 * 1460 data to 8266, - - 8.8266 send 100 * 1460 to PC.' - sub module: TCP - summary: AP mode, send/recv basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0113 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h W - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h R - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.OK - - 6.OK,pc tcp server accept成功 - - 7.OK - - 8.OK - - 9.OK,pc tcp server accept成功 - - 10.OK' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 4.target1 shutdown socket1 B - - 5.target1上创建TCP socket - - 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 7.target1 shutdown socket2 W - - 8.target1上创建TCP socket - - 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 10.target1 shutdown socket3 R' - sub module: TCP - summary: AP mode, shutdown basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0110 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK', P SOC1 C +ACCEPT] - - - SSC SSC1 soc -B -t TCP -i 0.0.0.0 -p 0 - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i 123.456.678.789 -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.ERROR - - 6.ERROR' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.target1上创建TCP socket,bind到本地ip 0.0.0.0,本地端口 0 - - 5.target1上使用步骤4创建的socket,去连接不存在的ip,test_tcp_port1 - - 6.target1上使用步骤2创建的socket,去连接 PC的ip,远端端口不存在。' - sub module: TCP - summary: AP mode, connect test. use different ip, port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0111 + ID: ^TCPIP_TCP_0116 SDK: '8266_NonOS 8266_RTOS @@ -9918,32 +10872,42 @@ test cases: - ['R SSC1 A :BIND:(\d+),OK'] - - SSC SSC1 soc -L -s - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC1 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] - - - SOC SOC1 CONNECT 0 - - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC3 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC4 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC5 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SOC SOC6 CONNECT 0 + - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] comment: '' execution time: 0.0 - expected result: '1.OK + expected result: '1.+BIND:0,OK,0.0.0.0 2.OK - 3.PC TCP client accept + 3.OK,pc tcp server accept成功 - 4.error' + 4.OK,pc tcp server accept成功 + + 5.OK,pc tcp server accept成功 + + 6.OK,pc tcp server accept成功 + + 7.OK,pc tcp server accept成功' initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP - steps: '1.target1上创建TCP socket,bind到本地端口 - - 2.target1上使用步骤1创建的socket,创建TCP 监听 - - 3.PC TCP 连接到target1 , - - 4.PC tcp 连接到不存在的port ,' + steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ + \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6" sub module: TCP - summary: AP mode, server listen test. use different kinds of port + summary: AP mode, accept max TCP client by server test test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -9954,1078 +10918,97 @@ test cases: test point 2: use TCP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_SCAN_0302 - SDK: ESP32_IDF + ID: ^TCPIP_TCP_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 soc -B -t UDP -p + - - SOC SOC1 LISTEN + - [SOCR SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -n 1000000 -j 5 - - [''] - - - SSC SSC2 phy -S -o 1 -m b - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m g - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -S -n - - [R SSC2 P ] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s -h B + - ['P SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 soc -C -s -i -p + - ['P SSC1 RE CONNECT:\d+,ERROR'] comment: '' execution time: 0.0 - expected result: 3. target 2 able to scan AP - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. target 1 connect to AP - - 2. target 1 start sending UDP packets - - 3. target 2 scan in AP channel in 11b.g,n,ht40 mode' - sub module: WIFI Scan - summary: scan in congest channel - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: interaction - test point 2: Scan interact with other WiFi operation - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0304 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK + expected result: '1.ok 2.OK - 3.OK - - 4.OK - - 5.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0305 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - NIC DISABLED - - [R PC_COM C OK] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after PC NIC disabled - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0306 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -S -s -i -p -l 1 - - ['P SSC1 RE SEND:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 + 3.ERROR 4.OK 5.OK - 6.OK - - 7.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" - sub module: UDP - summary: do UDP send after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0307 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 - - ['P SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.111.210'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK; PC TCP server accept 成功 - - 4.OK - - 5.OK - - 6.OK - - 7.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" - sub module: UDP - summary: close UDP socket after IP changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0301 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -i -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 - - 4.断开与AP 连接 - - 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' - sub module: UDP - summary: do UDP send after WIFI disconnected - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0302 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 sta -D - - ['P SSC1 C +QAP:OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.OK - - ' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上SOC1 UDP传输,bing - - 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - - 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 - - 4.断开与AP 连接 - - 5.关闭建立的socket1连接' - sub module: UDP - summary: "close UDP socket after WIFI \ndisconnected" - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_UDP_0303 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 1/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 BIND - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] - - - SSC SSC1 op -S -o 2 - - ['P SSC1 C +MODE:OK'] - - - SSC SSC1 soc -S -s -i -p -l 5 - - ['P SSC1 RE SEND:(\d+),OK'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK - - 4.OK - - 5.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ - \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ - 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" - sub module: UDP - summary: do UDP send after mode changed - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: UDP handling abnormal event - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0601 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - WIFI CONN - - - ['R PC_COM C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -L - - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP - - 2.PC WIFI CONNECTED - - 3.target2 jap target 1 - - 4.查询到两个sta 连接到target1 上' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1. target1下设置ssid 和pwd 加密方式 - - 2.PC WIFI CONNECTED target1 - - 3.target2 jap target 1 - - 4.查询到两个sta 连接到target1 上' - sub module: WIFI Connect - summary: list stations connected to soft ap test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: list SoftAP connected station - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0209 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - DELAY 20 - - [''] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. succeed - - 5. find target2 and PC' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client and new client able to get IP - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0208 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 P ] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4. get IP 192.168.4.2 - - 5. can only find target2 with IP 192.168.4.2' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. PC NIC connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. target2 connect to target1 softap - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig and new client able to get first IP in pool - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0207 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - WIFI DISCONN2 - - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. get IP 192.168.4.2 - - 4. succeed - - 5. succeed - - 6. get IP 192.168.4.2' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. disable DHCP server, do config and enable - - 3. PC WIFI NIC connect to target1 softap - - 4. target2 connect to target1 softap and disnnect - - 5. PC release IP and disconnected - - 6. target2 change mac and connect to target1' - sub module: DHCP - summary: dhcp server prefer assign released IP to new client - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0206 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 4. get IP 192.168.4.2 - 192.168.4.4 - - 5. get IP 192.168.4.2' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. disable DHCP server, do config and enable - - 3. target2 change mac, connect to softap, disconnect - - 4. Loop step3 twice - - 5. change to first mac, connect to softap' - sub module: DHCP - summary: dhcp server assign same IP to same MAC when it's not released - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0205 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 - - ['P SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. target2 wifi disconnected' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 - - 3. disable DHCP server, do config and enable' - sub module: DHCP - summary: disconnect STA if config dhcp server - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - - - DELAY 90 - - [''] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - - - SSC SSC2 sta -D - - ['R SSC2 C +JAP:DISCONNECTED'] - - - DELAY 60 - - [''] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. get IP 192.168.4.2 - - 5. succeed - - 6. succeed - - 8. get IP 192.168.4.2' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP timeout as 1 minute - - 3. target2 connect to target1 - - 4. wait 90 seconds - - 5. check if target2 IP is same - - 6. target2 disconnect - - 7. wait 60s - - 8. target2 change mac and connect to target1' - sub module: DHCP - summary: dhcp server timeout test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 2 4 "['01','02']" "[2,3]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - DELAY 20 - - [''] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:0.0.0.0'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4.1 succeed - - 4.2 failed' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP Server on Target1(.4.2 - .4.3) - - 3. target change mac, connect to Target1 - - 4. Loop step3 twice' - sub module: DHCP - summary: dhcp server ip pool empty - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 3 4 "['01','02','03']" "[2,3,4]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3,4: get IP from dhcp pool with correct sequence' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP Server on Target1 - - 3. target change mac, connect to Target1 - - 4. Loop step3' - sub module: DHCP - summary: dhcp server ip pool - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -o 2 -i - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - comment: '' - execution time: 0.0 - expected result: '1.target1 关闭DHCP 2 OK - - 2.target1 设置ip 成功 - - 3.设置dhcp 地址池 OK - - 4.ERROR - - 5.ERROR - 6.ERROR - 7.target1 打开DHCP ok' - initial condition: APSTA1 - initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + 7.OK + + 8.OK + + 9.OK + + 10.OK + + 11.OK + + 12.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP - steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ - 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" - sub module: DHCP - summary: server dhcp lease test + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去连接 PC的ip, + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,创建TCP 监听 + + 6.target1上使用步骤4创建的socket,去连接 PC的ip, + + 7.target1上创建TCP socket + + 8.target1上使用步骤7创建的socket,去连接 PC的ip, + + 9.target1上关闭步骤7创建的socket + + 10.target1上使用步骤7创建的socket,去连接 PC的ip, + + 11.target1上关闭所有创建的socket + + 12.target1上使用步骤2创建的socket,去连接 PC的ip,' + sub module: TCP + summary: STA mode, connect test. use socket in state that can't connect test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -11033,10 +11016,176 @@ test cases: 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: DHCP server function test + test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0204 + ID: ^TCPIP_TCP_0202 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,ERROR'] + - - SSC SSC1 soc -L -s 1000 + - ['R SSC1 RE LISTEN:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.OK + + 6.ERROR + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, + + 3.target1上使用步骤2创建的socket,去建立TCP 监听 + + 4.target1上创建TCP socket + + 5.target1上使用步骤4创建的socket,去连接 PC的ip, + + 6.target1上使用步骤4创建的socket,创建TCP 监听 + + 7.target1上shutdown 步骤4的socket + + 8.target1上使用步骤4创建的socket,创建TCP 监听 + + 9.target1上使用不存在socket,创建TCP 监听' + sub module: TCP + summary: STA mode, server listen test. use socket in state that can't listen + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0203 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -S -s + - ['R SSC1 RE SEND:\d+,ERROR'] + - - SSC SSC1 soc -S -s 1000 + - ['R SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK + + 5.ERROR + + 6.OK + + 7.OK + + 8.ERROR + + 9.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建UDP传输socket1, + + 3.target1上使用步骤2创建的socket1,去发送数据 + + 4.target1上创建TCP socket2 + + 5.target1上使用步骤4创建的socket2,去发送数据 + + 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 + + 7.target1上shutdown 步骤4的socket2 + + 8.target1往socket2发送错误命令发送数据 + + 9.target1上不指定socket往上发送数据' + sub module: TCP + summary: send test. use socket in state that can't send + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use TCP SAP (socket/espconn API) in different state + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0204 SDK: '8266_NonOS 8266_RTOS @@ -11076,12 +11225,11 @@ test cases: 6.OK - 7.target收到146000 byte - - ' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + 7.target收到146000 byte' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP steps: '1. PC上建立TCP 监听 test_tcp_port1 @@ -11108,107 +11256,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0207 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [SOCR SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['P SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - - - SSC SSC1 soc -T - - [R SSC1 C +CLOSEALL] - - - SSC SSC1 soc -C -s -i -p - - ['P SSC1 RE CONNECT:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.ok - - 2 OK - - 3.ERROR - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.OK - - 9.OK - - 10.OK - - 11.OK - - 12.ERROR' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去连接 PC的ip, - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,创建TCP 监听 - - 6.target1上使用步骤4创建的socket,去连接 PC的ip, - - 7.target1上创建TCP socket - - 8.target1上使用步骤7创建的socket,去连接 PC的ip, - - 9.target1上关闭步骤7创建的socket - - 10.target1上使用步骤7创建的socket,去连接 PC的ip, - - 11.target1上关闭所有创建的socket - - 12.target1上使用步骤2创建的socket,去连接 PC的ip,' - sub module: TCP - summary: AP mode, connect test. use socket in state that can't connect - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0206 + ID: ^TCPIP_TCP_0206 SDK: '8266_NonOS 8266_RTOS @@ -11271,9 +11319,10 @@ test cases: +SOCINFO:,,, +SOCINF0ALL' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ @@ -11292,7 +11341,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0201 + ID: ^TCPIP_TCP_0207 SDK: '8266_NonOS 8266_RTOS @@ -11304,35 +11353,35 @@ test cases: category: Function cmd set: - '' - - - SOC SOC1 LISTEN + - - SOC SOC1 LISTEN - [SOCR SOC_COM L OK] - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p + - - SSC SSC1 soc -C -s -i -p - ['P SSC1 RE CONNECT:\d+,ERROR'] - - SSC SSC1 soc -B -t TCP - ['R SSC1 A :BIND:(\d+),OK'] - - SSC SSC1 soc -L -s - ['R SSC1 RE LISTEN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p + - - SSC SSC1 soc -C -s -i -p - ['P SSC1 RE CONNECT:\d+,ERROR'] - - SSC SSC1 soc -B -t TCP - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p + - - SSC SSC1 soc -C -s -i -p - ['P SSC1 RE CONNECT:\d+,OK'] - - SSC SSC1 soc -D -s -h B - ['P SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -C -s -i -p + - - SSC SSC1 soc -C -s -i -p - ['P SSC1 RE CONNECT:\d+,ERROR'] - - SSC SSC1 soc -T - [R SSC1 C +CLOSEALL] - - - SSC SSC1 soc -C -s -i -p + - - SSC SSC1 soc -C -s -i -p - ['P SSC1 RE CONNECT:\d+,ERROR'] comment: '' execution time: 0.0 expected result: '1.ok - 2.OK + 2 OK 3.ERROR @@ -11353,9 +11402,10 @@ test cases: 11.OK 12.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration module: TCPIP steps: '1.PC上建立TCP 监听 test_tcp_port1 @@ -11381,7 +11431,7 @@ test cases: 12.target1上使用步骤2创建的socket,去连接 PC的ip,' sub module: TCP - summary: STA mode, connect test. use socket in state that can't connect + summary: AP mode, connect test. use socket in state that can't connect test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -11391,875 +11441,6 @@ test cases: test point 1: basic function test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_DHCP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -i 0.0.0.0 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 20 - - [P PC_COM C +DELAYDONE, 'P SSC1 NC +JAP:CONNECTED'] - - - SSC SSC1 dhcp -S -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -Q - - ['R SSC1 C +STAIP:0.0.0.0'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 ip -Q - - ['R SSC1 RE "\+STAIP:%%s"%%()'] - comment: '' - execution time: 0.0 - expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n\ - 4.target1 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) - module: TCPIP - steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1\ - \ 打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip" - sub module: DHCP - summary: dhcp client function test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP client function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -S -s - - ['R SSC1 RE SEND:\d+,ERROR'] - - - SSC SSC1 soc -S -s 1000 - - ['R SSC1 RE SEND:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK - - 5.ERROR - - 6.OK - - 7.OK - - 8.ERROR - - 9.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket1, - - 3.target1上使用步骤2创建的socket1,去发送数据 - - 4.target1上创建TCP socket2 - - 5.target1上使用步骤4创建的socket2,去发送数据 - - 6.target1上使用步骤4创建的socket2,创建TCP连接,连接成功 - - 7.target1上shutdown 步骤4的socket2 - - 8.target1往socket2发送错误命令发送数据 - - 9.target1上不指定socket往上发送数据' - sub module: TCP - summary: send test. use socket in state that can't send - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -L -s 1000 - - ['R SSC1 RE LISTEN:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4.OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.ERROR - - 9.ERROR' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去建立TCP 监听 - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,去连接 PC的ip, - - 6.target1上使用步骤4创建的socket,创建TCP 监听 - - 7.target1上shutdown 步骤4的socket - - 8.target1上使用步骤4创建的socket,创建TCP 监听 - - 9.target1上使用不存在socket,创建TCP 监听' - sub module: TCP - summary: STA mode, server listen test. use socket in state that can't listen - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0208 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t UDP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,ERROR'] - - - SSC SSC1 soc -L -s 1000 - - ['R SSC1 RE LISTEN:\d+,ERROR'] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.ERROR - - 4 OK - - 5.OK - - 6.ERROR - - 7.OK - - 8.ERROR - - 9.ERROR' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建UDP传输socket,bind到本地ip 0.0.0.0, - - 3.target1上使用步骤2创建的socket,去建立TCP 监听 - - 4.target1上创建TCP socket - - 5.target1上使用步骤4创建的socket,去连接 PC的ip, - - 6.target1上使用步骤4创建的socket,创建TCP 监听 - - 7.target1上shutdown 步骤4的socket - - 8.target1上使用步骤4创建的socket,创建TCP 监听 - - 9.target1上使用不存在socket,创建TCP 监听' - sub module: TCP - summary: AP mode, server listen test. use socket in state that can't listen - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DNS_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: 3/5 - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 soc -H -d iot.espressif.cn - - ['R SSC1 A :\+HOSTIP:OK,(.+)\r\n'] - - - SSC SSC1 soc -B -t UDP - - ['R SSC1 A :\+BIND:(\d+),OK'] - - - SSC SSC1 soc -S -s -i -p 9003 -l 10 - - ['P SSC1 RE \+SEND:\d+,OK', P SSC1 SL +10] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK' - initial condition: STAM2 - initial condition description (auto): sta mode, join AP, DHCP on, will autogen a - TC with initial condition STAAP2 - module: TCPIP - steps: '1. get host name "espressif.cn" - - 2. sendto, recvfrom1. get host name "espressif.cn" - - 2. sendto, recvfrom' - sub module: DNS - summary: UDP send to iot.expressif.com - test environment: SSC_T1_2 - test environment description (auto): 'Able to access WAN after connect to AP. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DNS function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0206 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 4. get IP 192.168.4.2 - 192.168.4.4 - - 5. get IP 192.168.4.2' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. disable DHCP server, do config and enable - - 3. target2 change mac, connect to softap, disconnect - - 4. Loop step3 twice - - 5. change to first mac, connect to softap' - sub module: DHCP - summary: dhcp server assign same IP to same MAC when it's not released - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0207 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - WIFI DISCONN2 - - ['R PC_COM NC ERROR C +WIFIDISCONN:OK'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. get IP 192.168.4.2 - - 4. succeed - - 5. succeed - - 6. get IP 192.168.4.2' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. disable DHCP server, do config and enable - - 3. PC WIFI NIC connect to target1 softap - - 4. target2 connect to target1 softap and disnnect - - 5. PC release IP and disconnected - - 6. target2 change mac and connect to target1' - sub module: DHCP - summary: dhcp server prefer assign released IP to new client - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - - - DELAY 90 - - [''] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - - - SSC SSC2 sta -D - - ['R SSC2 C +JAP:DISCONNECTED'] - - - DELAY 60 - - [''] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.2'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. get IP 192.168.4.2 - - 5. succeed - - 6. succeed - - 8. get IP 192.168.4.2' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP timeout as 1 minute - - 3. target2 connect to target1 - - 4. wait 90 seconds - - 5. check if target2 IP is same - - 6. target2 disconnect - - 7. wait 60s - - 8. target2 change mac and connect to target1' - sub module: DHCP - summary: dhcp server timeout test - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0205 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1 - - ['P SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. target2 wifi disconnected' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 - - 3. disable DHCP server, do config and enable' - sub module: DHCP - summary: disconnect STA if config dhcp server - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0202 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 3 4 "['01','02','03']" "[2,3,4]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3,4: get IP from dhcp pool with correct sequence' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP Server on Target1 - - 3. target change mac, connect to Target1 - - 4. Loop step3' - sub module: DHCP - summary: dhcp server ip pool - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0203 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - LOOP 2 4 "['01','02']" "[2,3]" - - [''] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s} - - ['R SSC2 C +MAC:STA,OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:192.168.4.{%s}'] - - - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66 - - ['R SSC2 C +MAC:STA,OK'] - - - DELAY 20 - - [''] - - - SSC SSC2 ip -Q -o 1 - - ['R SSC2 C +STAIP:0.0.0.0'] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. succeed - - 3. succeed - - 4.1 succeed - - 4.2 failed' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: TCPIP - steps: '1. config softap to a random ssid - - 2. config DHCP Server on Target1(.4.2 - .4.3) - - 3. target change mac, connect to Target1 - - 4. Loop step3 twice' - sub module: DHCP - summary: dhcp server ip pool empty - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_TCP_0204 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SSC SSC1 soc -W -s -o 0 - - ['R SSC1 RE WORKTHREAD:\d+,OK'] - - - SOC SOC2 SEND 146000 - - [P SOC_COM R *] - - - SSC SSC1 soc -W -s -o 1 - - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc server accept OK - - 4.OK - - 5.OK - - 6.OK - - 7.target收到146000 byte' - initial condition: STAAP2 - initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP - on (autogen by STAM2) - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1 创建好TCP 连接,有ACCEPT - - 5.target上不进行recv - - 6.PC send 100 * 1460 data to target, - - 7.在target上开始recv' - sub module: TCP - summary: STA mode, recv buffer test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) in different state - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_DHCP_0201 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 ip -S -o 2 -i - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5 - - ['R SSC1 C +DHCP:LEASE,ERROR'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - comment: '' - execution time: 0.0 - expected result: '1.target1 关闭DHCP 2 OK - - 2.target1 设置ip 成功 - - 3.设置dhcp 地址池 OK - - 4.ERROR - - 5.ERROR - - 6.ERROR - - 7.target1 打开DHCP ok' - initial condition: APM1 - initial condition description (auto): AP mode, DHCP on, will autogen a TC with initial - condition APSTA1 - module: TCPIP - steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n\ - 6.设置dhcp错误的参数\n7.target1 打开DHCP ok" - sub module: DHCP - summary: server dhcp lease test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: DHCP server function test - version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_TCP_0208 SDK: '8266_NonOS @@ -12313,6 +11494,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: '1.PC上建立TCP 监听 test_tcp_port1 @@ -12343,7 +11525,7 @@ test cases: test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_DHCP_0208 + ID: ^TCPIP_TCP_0210 SDK: '8266_NonOS 8266_RTOS @@ -12355,61 +11537,64 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['P SSC1 C +DHCP:AP,OK', 'P SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 P ] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC2 SEND 146000 + - [P SOC_COM R *] + - - SSC SSC1 soc -W -s -o 1 + - ['P SSC1 RE WORKTHREAD:\d+,OK', P SSC1 SL +2920] comment: '' execution time: 0.0 - expected result: '1. succeed + expected result: '1.OK - 2. succeed + 2.OK - 3. succeed + 3.OK,pc tcp server accept成功 - 4. get IP 192.168.4.2 + 4.OK - 5. can only find target2 with IP 192.168.4.2' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 + 6.OK + + 7.收到 146000 数据' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration module: TCPIP - steps: '1. config softap to a random ssid + steps: '1. PC上建立TCP 监听 test_tcp_port1 - 2. PC NIC connect to target1 softap + 2.target1上创建TCP socket - 3. disable DHCP server, do config and enable + 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - 4. target2 connect to target1 softap + 4.PC与target1 创建好TCP 连接,有ACCEPT - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig and new client able to get first IP in pool - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. + 5.target停止调用recv + + 6.PC send 100 * 1460 data to 8266, + + 7.target重新调用recv' + sub module: TCP + summary: AP mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. - 2 SSC target connect with PC by UART.' + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: DHCP server function test + test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_DHCP_0209 + ID: ^TCPIP_TCP_0212 SDK: '8266_NonOS 8266_RTOS @@ -12421,59 +11606,80 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 dhcp -E -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100 - - ['R SSC1 C +DHCP:LEASE,OK'] - - - SSC SSC1 dhcp -S -o 2 - - ['R SSC1 C +DHCP:AP,OK'] - - - WIFI CONN 192.168.4.2 - - ['R PC_COM NC ERROR C +WIFICONN:OK'] - - - DELAY 20 - - [''] - - - SSC SSC1 ap -L - - [R SSC1 C 192.168.4.2 C 192.168.4.3 P P ] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -i + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 soc -D -s + - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -L -s + - ['R SSC1 RE LISTEN:\d+,OK'] + - - SOC SOC2 CONNECT 0 + - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,2,%%s,\d+,%%s,%%d"%%(,,,)', + 'P SSC1 RE "SOCINFO:%%s,2,.+,\d+,.+,\d+"%%()', 'P SSC1 RE "SOCINFO:%%s,82,.+,%%d,.+,\d+"%%(,)', + 'P SSC1 RE "SOCINFO:%%s,2,%%s,%%d,%%s,\d+"%%(,,,)'] comment: '' execution time: 0.0 - expected result: '1. succeed + expected result: '1.OK - 2. succeed + 2.OK - 3. succeed + 3.OK,pc tcp server accept成功 - 4. succeed + 4.OK - 5. find target2 and PC' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 + 5.OK + + 6.OK + + 7.OK + + 8.OK + + 9.PC OK, target1 +ACCEPT:3,2,,port + + 10.+SOCINFO:,,, + + +SOCINFO:,,, + + +SOCINFO:, + + +SOCINFO:,,, + + +SOCINF0ALL' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration module: TCPIP - steps: '1. config softap to a random ssid - - 2. target2 connect to target1 softap - - 3. disable DHCP server, do config and enable - - 4. PC NIC connect to target1 softap - - 5. softap list connected station' - sub module: DHCP - summary: dhcp server reconfig, old client and new client able to get IP - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1,本地ip target_ip\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n4.target1上创建TCP socket2,本地ip target_ip\n5.target1上使用步骤4创建的socket2,去连接\ + \ PC的ip,test_tcp_port1,PC有ACCEPT\n6.target1 shutdown socket2 \n7.target1上创建TCP\ + \ socket3,本地端口random_port\n8.target1上使用步骤7创建的socket3,去监听\n9.PC CONNECT,\ + \ ,tcp 连接创建成功,创建socket4 \n10.target1 查询the socket information" + sub module: TCP + summary: AP mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. - 2 SSC target connect with PC by UART.' + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: DHCP server function test + test point 2: use TCP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_TCP_0412 + ID: ^TCPIP_TCP_0401 SDK: '8266_NonOS 8266_RTOS @@ -12493,11 +11699,445 @@ test cases: - ['R SSC1 RE CONNECT:\d+,OK'] - - SOC SOC1 ACCEPT SOC2 - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.8266往PC上发送5字节数据' + sub module: TCP + summary: do TCP send after WIFI disconnected + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0402 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK', 'P SSC1 RE CLOSED:\d+,0'] - - SSC SSC1 soc -T -s - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -T -s + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.断开与AP 连接 + + 6.关闭建立的socket1连接' + sub module: TCP + summary: "close TCP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0403 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0404 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.修改8266的Mode为softAP mode\ + \ \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0405 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -S -s -l 1 + - [''] + - - DELAY 5400 + - ['P SSC1 RE CLOSED:\d+,0'] + comment: '' + execution time: 1.5 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.TCP连接断开' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.PC 网卡 disable + + 6.target1上使用socket1发送数据,等待 90 分钟' + sub module: TCP + summary: do TCP send after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0406 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.PC上网卡禁止掉 \n6.关闭建立的socket1连接" + sub module: TCP + summary: close TCP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0407 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK + + 8.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.8266往PC上发送5字节数据" + sub module: TCP + summary: do TCP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_TCP_0408 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK', 'P SSC1 RE CLOSED:\d+,0'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s - ['R SSC1 RE CLOSE:\d+,OK'] comment: '' execution time: 0.0 @@ -12513,26 +12153,19 @@ test cases: 6.OK - 7.OK' + 7.OK + + 8.OK' initial condition: STAAP2 initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP on (autogen by STAM2) + level: Integration module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket1 - - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1创建好TCP 连接,有ACCEPT - - 5.target1上创建TCP socket2 - - 6.关闭socket1 连接 - - 7.关闭socket2连接' + steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1上使用步骤2创建的socket1,去连接\ + \ PC的ip,test_tcp_port1\n4.PC与target1创建好TCP 连接,有ACCEPT\n5.关闭8266的DHCP 1\n6.设置sta\ + \ ip \n7.查询sta ip 地址是否生效\n8.关闭建立的socket1连接" sub module: TCP - summary: close TCP send after socket changed + summary: close TCP socket after IP changed test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -12587,6 +12220,7 @@ test cases: initial condition: STAAP2 initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP on (autogen by STAM2) + level: Integration module: TCPIP steps: '1.PC上建立TCP 监听 test_tcp_port1 @@ -12613,45 +12247,120 @@ test cases: test point 2: TCP handling abnormal event version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_CONN_0901 + ID: ^TCPIP_TCP_0412 SDK: '8266_NonOS 8266_RTOS ESP32_IDF' - Test App: basic function + Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC1 sta -D - - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -C -s -i -p + - ['R SSC1 RE CONNECT:\d+,OK'] + - - SOC SOC1 ACCEPT SOC2 + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t TCP + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] comment: '' execution time: 0.0 - expected result: '1. disconnect event reason REASON_ASSOC_LEAVE + expected result: '1.OK - 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT + 2.OK - 3. disconnect event reason REASON_NO_AP_FOUND' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. sta connect to AP, and disconnect + 3.OK; PC TCP server accept 成功 - 2. connect to AP with wrong password + 4.OK - 3. connect to AP not exist' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, - REASON_NO_AP_FOUND + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上建立TCP 监听 test_tcp_port1 + + 2.target1上创建TCP socket1 + + 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1 + + 4.PC与target1创建好TCP 连接,有ACCEPT + + 5.target1上创建TCP socket2 + + 6.关闭socket1 连接 + + 7.关闭socket2连接' + sub module: TCP + summary: close TCP send after socket changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: TCP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0101 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.ERROR + + 4.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 + + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: STA mode, udp bind test. use different ip, port test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -12659,198 +12368,58 @@ test cases: 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: wifi disconnect reason test + test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_CONN_0902 + ID: ^TCPIP_UDP_0102 SDK: '8266_NonOS 8266_RTOS ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - APC OFF - - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] - - - APC ON - - [P PC_COM L OK] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 10] + - - SSC SSC1 soc -S -s -i -p -l 10 + - ['P SSC1 RE SEND:(\d+),OK', P SOC2 UL 10] comment: '' execution time: 0.0 - expected result: '1. succeed + expected result: '1.OK - 2. disconnect event REASON_BEACON_TIMEOUT' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. connect to AP + 2.OK - 2. AP power off' - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_BEACON_TIMEOUT - test environment: SSC_T1_APC - test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ - \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ - APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ - \ PC by UART." - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0903 - SDK: '8266_NonOS + 3.OK - 8266_RTOS + 4.OK - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -C -s -p bacfd - - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] - comment: '' - execution time: 0.0 - expected result: 1. disconect event reason REASON_AUTH_EXPIRE - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: 1. connect WEP ap with error password (valid wep password) - sub module: WIFI Connect - summary: test wifi disconnect reason REASON_AUTH_EXPIRE - test environment: SSC_T1_WEP - test environment description (auto): '1 SSC target connect with PC by UART. + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing - One WEP share key AP placed near SSC1.' - test point 1: basic function - test point 2: wifi disconnect reason test - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_SCAN_0201 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m b - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m g - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 sta -S - - [R SSC1 P P P P ] - comment: '' - execution time: 0.0 - expected result: '3. find all 3 ext APs + 2.PC上SOC2 UDP传输,bing - 5. find all 3 ext APs + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - 7. find all 3 ext APs + 4.target1上使用步骤3创建的socket1,往pc_ip,test_tcp_port1上发送10字节数据 - 9. find all 3 ext APs' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. 3 ext APs in 11b, 11g, 11n mode - - 2. STA in 11b mode - - 3. do all channel scan - - 4. STA in 11g mode - - 5. do all channel scan - - 6. STA in 11n ht20 mode - - 7. do all channel scan - - 8. STA in 11n ht40 mode - - 9. do all channel scan' - sub module: WIFI Scan - summary: STA in differnt PHY mode to scan AP in different PHY mode - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: Scan in different mode and channel - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0503 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 sta -R -r 0 - - [R SSC1 C OK] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,3'] - - - DELAY 5 - - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,2'] - - - DELAY 5 - - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] - - - SSC SSC1 sta -R -r 1 - - [SSC SSC1 C OK] - comment: '' - execution time: 0.0 - expected result: '1. succeed - - 2. not reconnect when connect failed, status when recv disconnect event is correct - - 3. not reconnect when connect failed, status when recv disconnect event is correct - - 4. succeed' - initial condition: STAM1 - initial condition description (auto): sta mode, quit AP, DHCP on, will autogen a - TC with initial condition STAAP1 - module: WIFI MAC - steps: '1. set sta reconnect policy as not reconnect - - 2. sta connect to ap not exist - - 3. sta connect to ap with wrong password - - 4. reset sta reconnect policy as auto reconnect - - ' - sub module: WIFI Connect - summary: reconnect policy interact with failed STA connect/reconnect + 5.target1上使用步骤3创建的socket1,往pc_ip2,test_tcp_port2上发送10字节数据' + sub module: UDP + summary: STA mode, sendto test. use different ip, port test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -12858,287 +12427,404 @@ test cases: 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: reconnect policy test + test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0402 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0103 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, SoftAP not get - disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + expected result: '1.OK - 2. AP get connected + 2.OK - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 20M, Softap get connected - than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 3.OK - PC has one WiFi NIC support capture wlan packet using libpcap. + 4.OK - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + 5.OK,没有到UDP包 - Put 4 APs near SSC targets.' + 6.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: STA mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0401 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SOC SOC1 SENDTO 1 + - [R SSC1 SL +1] + - - SOC SOC1 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] + - - SOC SOC1 SENDTO 1473 + - [P SSC1 NC +RECVFROM, P SOC_COM C OK] + - - SOC SOC2 BIND + - [R SOC_COM L OK] + - - SOC SOC2 SENDTO 1472 + - ['R SSC1 RE "RECVFROM:%%s,1472,%%s,%%u"%%(,,)'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 20M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht20, in channel2 + expected result: '1.OK - 2. STA connect to ext AP + 2.OK - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 20M, STA connect to - AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 3.OK - PC has one WiFi NIC support capture wlan packet using libpcap. + 4.OK - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + 5.OK,没收到UDP包 - Put 4 APs near SSC targets.' + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.PC往8266上发送1字节数据 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1473字节数据 + + 6.PC上SOC2 UDP传输,bing + + 7.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recvfrom basic test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0407 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0105 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + expected result: '1.OK - 2. STA connect to ext AP + 2.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, STA connect - to AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 2.关闭socket1' + sub module: UDP + summary: STA mode, close UDP sockets test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. - PC has one WiFi NIC support capture wlan packet using libpcap. + PC has 1 WiFi NIC. - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0406 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0106 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, SoftAP not get - disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + expected result: '1.ok - 2. AP get connected + 2.ok - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 40M, Softap get connected - than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 3.ok - PC has one WiFi NIC support capture wlan packet using libpcap. + 4.ok - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + 5.ok' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - Put 4 APs near SSC targets.' + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: STA mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0405 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0107 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC1 NC +JAP:DISCONNECTED', 'P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -I + - ['P SSC1 RE "SOCINFO:%%s,1,.+,%%d"%%(,)'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, both bandwidth 40M, STA not disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht40, in channel2 + expected result: '1.OK - 2. STA connect to ext AP + 2.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - 3. AP get connected' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, both bandwidth 40M, STA connect to - AP then Softap get connected - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 2.target1上查询创建socket信息' + sub module: UDP + summary: STA mode, get active socket info test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. - PC has one WiFi NIC support capture wlan packet using libpcap. + PC has 1 WiFi NIC. - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.' + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0404 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0108 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 20 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 20 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -i 0.0.0.0 -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 C BIND:ERROR'] + - - SSC SSC1 soc -B -t TCP -p + - ['R SSC1 RE BIND:(\d+),OK'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 20M, STA 40M, SoftAP not - get disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht20, in channel1, ext AP 11n ht40, in channel2 + expected result: '1.OK - 2. AP get connected + 2.OK - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 20M, ext AP 40M, Softap get - connected than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 3.ERROR - PC has one WiFi NIC support capture wlan packet using libpcap. + 4.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + 2.target1上UDP传输,Bind socket2,本地ip 0.0.0.0 target_udp_port2 - Put 4 APs near SSC targets.' + 3.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 4.target1上创建TCP socket3, target_udp_port1' + sub module: UDP + summary: AP mode, udp bind test. use different ip, port + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0110 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1] + - - SSC SSC1 soc -S -s -i -p -l 1472 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 1472] + - - SSC SSC1 soc -S -s -i -p -l 1473 + - ['P SSC1 RE SEND:(\d+),OK', P SOC_COM NC SOC_RECVFROM] + - - SSC SSC1 soc -S -s -i -p -l 1472 -n 10 + -j 20 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 14720] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK,没收到UDP包 + + 6.OK' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1字节数据 + + 4.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472字节数据 + + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1473字节数据 + + 6.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送1472*10字节数据' + sub module: UDP + summary: AP mode, sendto test with different length + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0112 SDK: '8266_NonOS @@ -13164,6 +12850,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 @@ -13180,52 +12867,64 @@ test cases: test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_PHY_0408 - SDK: ESP32_IDF + ID: ^TCPIP_UDP_0113 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' Test App: SSC allow fail: '' auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 phy -S -o 1 -m n -b 40 - - ['R SSC2 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['P SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 NC +JAP:DISCONNECTED', 'P SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 RE BIND:(\d+),OK'] comment: '' execution time: 0.0 - expected result: 3. SoftAP and STA in channel2, SoftAP 40M, STA 20M, SoftAP not - get disconnected - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1. SoftAP 11n ht40, in channel1, ext AP 11n ht20, in channel2 + expected result: '1.ok - 2. AP get connected + 2.ok - 3. STA connect to ext AP' - sub module: Phy Mode - summary: SoftAP ext AP in defferent channel, SoftAP 40M, ext AP 20M, Softap get - connected than STA connect to AP - test environment: SSC_T2_PhyMode - test environment description (auto): '2 SSC target connect with PC by UART. + 3.ok - PC has one WiFi NIC support capture wlan packet using libpcap. + 4.ok - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + 5.ok' + initial condition: APSTA2 + initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen + by APM2) + level: Integration + module: TCPIP + steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - Put 4 APs near SSC targets.' + 2.target1上UDP传输,Bind socket2,本地ip target_udp_port2 + + 3.target1上UDP传输,Bind socket3,本地ip target_udp_port3 + + 4.target1上UDP传输,Bind socket4,本地ip target_udp_port4 + + 5.target1上UDP传输,Bind socket5,本地ip target_udp_port5' + sub module: UDP + summary: AP mode, create max udp socket test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: STA+SoftAP initial channel test - version: v1 (2015-8-15) + test point 2: use UDP SAP (socket/espconn API) with different parameter + version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0114 SDK: '8266_NonOS @@ -13251,6 +12950,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: '1.target1上UDP传输,Bind socket1,本地ip target_udp_port1 @@ -13267,7 +12967,7 @@ test cases: test point 2: use UDP SAP (socket/espconn API) with different parameter version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^WIFI_CONN_0104 + ID: ^TCPIP_UDP_0201 SDK: '8266_NonOS 8266_RTOS @@ -13279,45 +12979,69 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t -m - 1 - - ['R SSC1 C +SAP:OK'] - - - WIFI DISCONN - - ['R PC_COM C +WIFIDISCONN:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - WIFI CONN - - - ['R PC_COM C +WIFICONN:ERROR'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -W -s -o 0 + - ['R SSC1 RE WORKTHREAD:\d+,OK'] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] + - - SOC SOC1 SENDTO 1472 + - [''] comment: '' execution time: 0.0 - expected result: '1. target1 set AP,set max allowed sta as 1 + expected result: '1.OK - 2. use PC disconnect, + 2.OK - 3.target 2 jap succeed + 3.OK - 4.PC WIFI can not CONN' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) - module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 + 4.PC OK - 2.use PC disconnect target1 + 5.PC OK - 3.target 2 jap target1 + 6.PC OK - 4.PC WIFI CONNECT target1' - sub module: WIFI Connect - summary: station SAP test, max allowed sta - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. + 7.PC OK + + 8.PC OK SOC_CLOSE=SOC1' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上关闭工作线程 + + 4.PC往8266上发送1472字节数据 + + 5.PC往8266上发送1472字节数据 + + 6.PC往8266上发送1472字节数据 + + 7.PC往8266上发送1472字节数据 + + 8.PC往8266上发送1472字节数据' + sub module: UDP + summary: STA mode, recv buffer test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: use UDP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^TCPIP_UDP_0202 @@ -13368,6 +13092,7 @@ test cases: initial condition: APSTA2 initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen by APM2) + level: Integration module: TCPIP steps: '1.PC上SOC1 UDP传输,bing @@ -13396,364 +13121,406 @@ test cases: test point 2: use UDP SAP (socket/espconn API) in different state version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^TCPIP_IGMP_0103 + ID: ^TCPIP_UDP_0301 SDK: '8266_NonOS 8266_RTOS ESP32_IDF' Test App: SSC - allow fail: '' + allow fail: 1/5 auto test: 'Yes' category: Function cmd set: - '' - - - SSC SSC1 igmp -J -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -L -h -m 224.1.1.1 - - ['R SSC1 C +IGMP:OK'] - - - SSC SSC1 igmp -J -h -m 223.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - - - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1 - - ['R SSC1 C +IGMP:ERROR'] - comment: '' - execution time: 0.0 - expected result: '1. success - - 2. failed - - 3. failed - - 4. failed' - initial condition: APSTA2 - initial condition description (auto): testing ap on sta + ap mode, PC join AP (autogen - by APM2) - module: TCPIP - steps: '1. join group with correct host addr and multicast addr - - 2. join group with correct host addr and wrong multicast addr - - 3. join group with wrong host addr and correct multicast addr - - 4. join group with wrong host addr and wrong multicast addr' - sub module: IGMP - summary: softAP IGMP join group address check - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: IGMP API parameter check - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -t 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -p -t 2 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -p -t - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -p -t 4 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -p -t 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S - - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] - - - SSC SSC1 ap -S -s -p -t 5 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S - - ['R SSC2 RE "\+SCAN:%%s,.+,0,\d+"%%()'] - comment: '' - execution time: 0.0 - expected result: "1.target1 set AP,open, \n2.target 2 jap succeed\n3.target1 set\ - \ AP,wpa_psk \n4.target 2 jap succeed\n5.target1 set AP, wpa2_psk \n6.target 2\ - \ jap succeed\n7.target1 set AP,wap_wpa2_psk\n8.target 2 jap succeed\n9.target1\ - \ set AP,加密方式为t 1\n10.target 2 上查询到target_ssid\n11.target1 set AP,加密方式为t 5\n12.target\ - \ 2 上查询到target_ssid" - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\ - \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\ - \ \n6.target 2 jap target1\n7.target1下设置ssid 和pwd,加密方式 wap_wpa2_psk\n8.target2\ - \ jap target1\n9.target1下设置ssid 和pwd,加密方式 wep \n10.target2上查询target_ssid\n11.target1下设置ssid\ - \ 和pwd,加密方式 t 5 错误的加密方式\n12.target2上查询 target_ssid" - sub module: WIFI Connect - summary: station SAP+JAP test, different encryption - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0102 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -t 0 -n 1 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -t 0 -n 13 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] - - - SSC SSC1 ap -S -s -n 15 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S - - ['R SSC2 RE "\+SCAN:%%s,.+,\d+,1"%%()'] - comment: '' - execution time: 0.0 - expected result: '1. target1 set AP,set channel 1 - - 2.target 2 jap succeed - - 3.target1 set AP,set channel 10 - - 4.target 2 jap succeed - - 5.target1 set AP,set channel 15 - - 6.target 2 上查询到target_ssid' - initial condition: T2O_1 - initial condition description (auto): same as T2_1 but will NOT autogen a TC with - initial condition T2_2 - module: WIFI MAC - steps: '1. target1下设置ssid 和pwd 加密方式,set channel 1 - - 2.target2 jap target 1 - - 3.target1下设置ssid 和pwd 加密方式,set channel 10 - - 4.target2 jap target 1 - - 5.target1下设置ssid 和pwd 加密方式,set channel 15 - - 6.target 2 上查询target_ssid' - sub module: WIFI Connect - summary: station SAP+JAP test, different channel - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_CONN_0103 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 ap -S -s -p -t -h - 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 P , R SSC2 C +SCANDONE] - - - SSC SSC1 ap -S -s -p -t -h - 1 - - ['R SSC1 C +SAP:OK'] - - - DELAY 3 - - [''] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 C +SCANDONE] - - - DELAY 3 - - [''] - - - SSC SSC2 sta -S -h 0 - - [R SSC2 NP C +SCANDONE] - comment: '' - execution time: 0.0 - expected result: '1.target1 set AP,set ssid broad cast - - 2.target 2上scan target_ap_mac - - 3.target1 set AP,set ssid hidden, - - 4.target 2上不能scan target_ap_mac' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 - module: WIFI MAC - steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast - - 2.target 2上scan target_ap_mac - - 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, - - 4.target 2上scan target_ap_mac' - sub module: WIFI Connect - summary: station SAP+JAP test, ssid hidden - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: SAP/JAP with different config - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: WIFI_PHY_0504 - SDK: ESP32_IDF - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 phy -S -o 1 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC1 phy -S -o 2 -m n -b 40 - - ['R SSC1 C +PHY:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:CONNECTED'] - - - SSC SSC3 sta -C -s -p - - ['R SSC3 C +JAP:CONNECTED'] - - - SSC SSC2 sta -C -s -p - - [''] - - - DELAY 10 - - ['P SSC2 C +JAP:CONNECTED', 'P SSC[1,3] NC +JAP:DISCONNECTED'] - comment: '' - execution time: 0.0 - expected result: 4. all STA not get disconnected; target 1 SoftAP and STA both in - channel2 20M - initial condition: T3_PHY1 - initial condition description (auto): '1. target 1 and target 2 set to AP+STA mode, - target 3 set to STA mode - - 2. all interface of target 2,3 set to 11n ht40 - - 3. config softAP of target 1 and target 2' - module: WIFI MAC - steps: '1. target 1 STA and SoftAP set to 40M - - 2. target 2 STA connect to ap_channel1_40 - - 3. target 1/3 STA connect to target 2/1 SoftAP - - 4. target 2 STA connect to ap_channel2_20' - sub module: Phy Mode - summary: SoftAP STA in channel1, SoftAP 20M, STA 40M, STA changed to channel2 40M - test environment: SSC_T3_PhyMode - test environment description (auto): '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.' - test point 1: basic function - test point 2: STA+SoftAP dynamic channel switch test - version: v1 (2015-8-15) -- CI ready: 'Yes' - ID: ^TCPIP_IP_0101 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SSC SSC1 dhcp -S -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 - - ['R SSC1 C +IP:ERROR'] - - - SSC SSC1 dhcp -E -o 1 - - ['R SSC1 C +DHCP:STA,OK'] - - - SSC SSC1 ip -S -o 1 -i 192.168.123.123 - - ['R SSC1 C +IP:OK'] - - - SSC SSC1 ip -Q -o 1 - - ['R SSC1 C +STAIP:192.168.123.123'] + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -i -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:\d+,ERROR'] comment: '' execution time: 0.0 expected result: '1.OK - 2.ERROR + 2.OK 3.OK 4.OK - 5.STAIP:192.168.123.123' - initial condition: STAAP1 - initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen - by STAM1) + 5.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration module: TCPIP - steps: '1.target1 打开DHCP 1 + steps: '1.PC上SOC1 UDP传输,bing - 2.target1 设置sta ip 192.168.123.123 + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 - 4.target1 关闭DHCP 1 + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 - 5.target1 设置sta ip 192.168.123.123 + 4.断开与AP 连接 - 6.target1 查询 当前sta ip' - sub module: IP - summary: sta set and query static ip test + 5.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据' + sub module: UDP + summary: do UDP send after WIFI disconnected test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: set and query static IP + test point 1: abnormal/special use + test point 2: UDP handling abnormal event version: v1 (2016-8-15) - CI ready: 'Yes' - ID: WIFI_CONN_0801 + ID: ^TCPIP_UDP_0302 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 sta -D + - ['P SSC1 C +QAP:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: '1.PC上SOC1 UDP传输,bing + + 2.target1上UDP传输,Bind socket1,本地ip target_udp_port1 + + 3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据 + + 4.断开与AP 连接 + + 5.关闭建立的socket1连接' + sub module: UDP + summary: "close UDP socket after WIFI \ndisconnected" + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0303 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.ERROR' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0304 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 op -S -o 2 + - ['P SSC1 C +MODE:OK'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.修改8266的Mode为softAP mode \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after mode changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0305 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - NIC DISABLED + - [R PC_COM C OK] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK + + 4.OK + + 5.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.PC上网卡禁止掉 \n5.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after PC NIC disabled + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0306 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -S -s -i -p -l 1 + - ['P SSC1 RE SEND:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.8266往PC上发送5字节数据" + sub module: UDP + summary: do UDP send after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^TCPIP_UDP_0307 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: 1/5 + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SOC SOC1 BIND + - [R SOC_COM L OK] + - - SSC SSC1 soc -B -t UDP -p + - ['R SSC1 A :BIND:(\d+),OK'] + - - SSC SSC1 soc -S -s -i -p -l 5 + - ['P SSC1 RE SEND:(\d+),OK', P SOC1 UL 5] + - - SSC SSC1 dhcp -E -o 1 + - ['R SSC1 C +DHCP:STA,OK'] + - - SSC SSC1 ip -S -o 1 -i 192.168.111.210 + - ['P SSC1 C +IP:OK'] + - - SSC SSC1 ip -Q -o 1 + - ['R SSC1 C +STAIP:192.168.111.210'] + - - SSC SSC1 soc -T -s + - ['R SSC1 RE CLOSE:\d+,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.OK + + 3.OK; PC TCP server accept 成功 + + 4.OK + + 5.OK + + 6.OK + + 7.OK' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: TCPIP + steps: "1.PC上SOC1 UDP传输,bing \n2.target1上UDP传输,Bind socket1,本地ip\ + \ target_udp_port1\n3.target1上使用步骤2创建的socket1,往pc_ip,test_tcp_port1上发送5字节数据\n\ + 4.关闭8266的DHCP 1\n5.设置sta ip \n6.查询sta ip 地址是否生效\n7.关闭建立的socket1连接" + sub module: UDP + summary: close UDP socket after IP changed + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: UDP handling abnormal event + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_ADDR_0101 SDK: '8266_NonOS 8266_RTOS @@ -13765,48 +13532,40 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t 0 - - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC1 ap -S -s -p -t 2 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] - - - SSC SSC1 ap -S -s -p -t 3 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] - - - SSC SSC1 ap -S -s -p -t 4 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] - - - SSC SSC1 ap -S -s -p -t 0 - - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 mac -Q -o 3 + - ['R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77'] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] comment: '' execution time: 0.0 - expected result: '1. succeed + expected result: '1.OK - 2. succeed + 2.ok - 3. auth change event old mode 0 new mode 2 + 3.ok - 4. auth change event old mode 2 new mode 3 + 4.ok - 5. auth change event old mode 3 new mode 4 + 5.ok - 6. auth change event old mode 4 new mode 0' - initial condition: T2_1 - initial condition description (auto): target 1 as SoftAP, target 2 as STA, will - autogen a TC with initial condition T2_2 + 6.ok' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration module: WIFI MAC - steps: '1. set target1 softap auth mode 0 - - 2. target2 connect to target1 - - 3. set target1 softap auth mode 2, wait sta connected - - 4. set target1 softap auth mode 3, wait sta connected - - 5. set target1 softap auth mode 4, wait sta connected - - 6. set target1 softap auth mode 0, wait sta connected' - sub module: WIFI Connect - summary: test auth change event + steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1\ + \ 设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac\ + \ 为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac" + sub module: MAC Address + summary: set mac, query mac test environment: SSC_T2_1 test environment description (auto): 'PC has 1 wired NIC connected to AP. @@ -13814,7 +13573,76 @@ test cases: 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: wifi auth changed event test + test point 2: mac address function test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_ADDR_0102 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - [''] + - - SSC SSC2 sta -S -b 44:55:66:77:88:99 + - ['R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -Q -o 1 + - ['R SSC2 A :\+STAMAC:(.+)\r\n'] + - - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77 + - ['R SSC2 C +MAC:STA,OK'] + - - SSC SSC2 sta -C -s -p + - ['P SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:22:33:44:55:66:77'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + comment: '' + execution time: 0.0 + expected result: '1.OK + + 2.ok + + 3.ok + + 4.ok + + 5.ok + + 6.ok + + 7.ok + + 8.ok + + 9.ok' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n\ + 3.target2 查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n\ + 5.target2 查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n\ + 7.target2 jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac" + sub module: MAC Address + summary: set mac and do scan/JAP/SAP + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: mac address function test version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0101 @@ -13862,6 +13690,7 @@ test cases: \ 2 上查询到target_ssid" initial condition: T2_2 initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration module: WIFI MAC steps: "1.target1下设置ssid 和pwd,加密方式 open\n2.target2 jap target1\n3.target1下设置ssid\ \ 和pwd,加密方式 wpa_psk \n4.target2 jap target1\n5.target1下设置ssid 和pwd,加密方式 wpa2_psk\ @@ -13880,7 +13709,7 @@ test cases: test point 2: SAP/JAP with different config version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^WIFI_CONN_0503 + ID: ^WIFI_CONN_0103 SDK: '8266_NonOS 8266_RTOS @@ -13892,40 +13721,151 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 sta -R -r 0 - - [R SSC1 C OK] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,3'] - - - DELAY 5 - - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] - - - SSC SSC1 sta -C -s -p - - ['R SSC1 C +JAP:OK', 'R SSC1 NC +JAP:DISCONNECTED,1 C +JAP:DISCONNECTED,2'] - - - DELAY 5 - - ['R SSC1 NC +JAP:DISCONNECTED', P PC_COM C +DELAYDONE] - - - SSC SSC1 sta -R -r 1 - - [SSC SSC1 C OK] + - - SSC SSC1 ap -S -s -p -t -h + 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P , R SSC2 C +SCANDONE] + - - SSC SSC1 ap -S -s -p -t -h + 1 + - ['R SSC1 C +SAP:OK'] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 C +SCANDONE] + - - DELAY 3 + - [''] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] comment: '' execution time: 0.0 - expected result: '1. succeed + expected result: '1.target1 set AP,set ssid broad cast - 2. not reconnect when connect failed, status when recv disconnect event is correct + 2.target 2上scan target_ap_mac - 3. not reconnect when connect failed, status when recv disconnect event is correct + 3.target1 set AP,set ssid hidden, - 4. succeed' + 4.target 2上不能scan target_ap_mac' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式,set ssid broad cast + + 2.target 2上scan target_ap_mac + + 3. target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 4.target 2上scan target_ap_mac' + sub module: WIFI Connect + summary: station SAP+JAP test, ssid hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0104 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t -m + 1 + - ['R SSC1 C +SAP:OK'] + - - WIFI DISCONN + - ['R PC_COM C +WIFIDISCONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE "\+JAP:CONNECTED,%%s"%%()'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:ERROR'] + comment: '' + execution time: 0.0 + expected result: '1. target1 set AP,set max allowed sta as 1 + + 2. use PC disconnect, + + 3.target 2 jap succeed + + 4.PC WIFI can not CONN' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set max allowed sta as 1 + + 2.use PC disconnect target1 + + 3.target 2 jap target1 + + 4.PC WIFI CONNECT target1' + sub module: WIFI Connect + summary: station SAP test, max allowed sta + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: SAP/JAP with different config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0201 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:OK'] + - - SSC SSC1 sta -Q + - ['R SSC1 C +JAP:DISCONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.target1 jion AP 成功 + + 2.查询JAP的状态 + + 3.target1 断开AP + + 4.查询target1 JAP 是DISCONN' initial condition: STAAP1 initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen by STAM1) + level: Integration module: WIFI MAC - steps: '1. set sta reconnect policy as not reconnect + steps: '1.target1 jion AP 成功 - 2. sta connect to ap not exist + 2.查询JAP的状态 - 3. sta connect to ap with wrong password + 3.target1 断开AP - 4. reset sta reconnect policy as auto reconnect' + 4.查询target1 JAP 是DISCONN' sub module: WIFI Connect - summary: reconnect policy interact with failed STA connect/reconnect + summary: JAP query test test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -13933,10 +13873,10 @@ test cases: 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: reconnect policy test + test point 2: query JAP status version: v1 (2016-8-15) - CI ready: 'Yes' - ID: ^WIFI_CONN_0502 + ID: ^WIFI_CONN_0301 SDK: '8266_NonOS 8266_RTOS @@ -13948,61 +13888,106 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 ap -S -s -p -t + - - SSC SSC1 ap -S -s -p -t -h + 0 -m 8 - ['R SSC1 C +SAP:OK'] - - - SSC SSC2 sta -C -s -p - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -R -r 1 - - ['R SSC2 C +RECONN:OK'] - - - SSC SSC1 op -S -o 1 - - ['R SSC1 C +MODE:OK'] - - - DELAY 5 - - ['R SSC2 C +JAP:DISCONNECTED'] - - - SSC SSC1 op -S -o 2 - - ['R SSC1 C +MODE:OK'] - - - DELAY 10 - - ['R SSC2 C +JAP:CONNECTED'] - - - SSC SSC2 sta -D - - ['R SSC2 C +QAP:OK'] - - - DELAY 10 - - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,3,0,8,\d+"%%(,)'] comment: '' execution time: 0.0 - expected result: '1.target1 set AP + expected result: '1. target1 set AP - 2.target2 jap target 1 - - 3.设置reconn,开启(此功能不需要重启系统) - - 4.target2 断开target1 连接 - - 5.等待10s,target2 自动重连target1 - - 6.target2 断开target1 连接' - initial condition: T2_2 - initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + 2.target 1上查询到跟设置AP时一致' + initial condition: APSTA1 + initial condition description (auto): testing ap on sta + ap mode (autogen by APM1) + level: Integration module: WIFI MAC - steps: '1.target1下设置ssid 和pwd 加密方式 + steps: '1. target1 set AP - 2.target2 jap target 1 - - 3.设置reconn,开启(此功能不需要重启系统) - - 4.target2 断开target1 连接 - - 5.等待10s,target2 自动重连target1 - - 6.target2 断开target1 连接' + 2.target 1上查询到跟设置AP时一致' sub module: WIFI Connect - summary: will not do reconnect after manually disconnected - test environment: SSC_T2_1 - test environment description (auto): 'PC has 1 wired NIC connected to AP. + summary: AP config query test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. - 2 SSC target connect with PC by UART.' - test point 1: abnormal/special use - test point 2: reconnect policy test + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: query AP config + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0401 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -R -a 0 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:0'] + - - SSC SSC1 reboot + - [''] + - - DELAY 15 + - [''] + - - SSC SSC1 sta -Q + - ['R SSC1 C JAP:DISCONNECTED'] + - - SSC SSC1 sta -R -a 1 + - ['R SSC1 C +AUTORECONN:OK'] + - - SSC SSC1 sta -R -a 2 + - ['R SSC1 C +AUTORECONN:1'] + - - SSC SSC1 reboot + - ['R SSC1 C +JAP:CONNECTED'] + comment: '' + execution time: 0.0 + expected result: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + initial condition: STAAP2 + initial condition description (auto): testing sta on sta + ap mode, join AP, DHCP + on (autogen by STAM2) + level: Integration + module: WIFI MAC + steps: '1.设置autoreconn,关闭 + + 2.查询当前autoreconn状态是否关闭 + + 3.重启系统,等待15s + + 4.查询target1 未自动重连AP + + 5.设置autoreconn,开启 + + 6.查询当前autoreconn状态是否开启 + + 7.系统重启后target1 自动重连AP' + sub module: WIFI Connect + summary: auto reconnect test + test environment: SSC_T1_1 + test environment description (auto): 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: power on auto reconnect test version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_CONN_0501 @@ -14066,6 +14051,7 @@ test cases: 9.等待15s,target2 不会自动重连target1' initial condition: T2_2 initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration module: WIFI MAC steps: "1.设置reconn,开启(此功能不需要重启系统)\n2.target1下设置ssid 和pwd 加密方式\n3.target2 JAP target1\ \ \n4.target1 修改mode 为sta mode\n5.等待10s,target1 修改mode 为softAP mode\n6.设置reconn,关闭\n\ @@ -14082,7 +14068,7 @@ test cases: test point 2: reconnect policy test version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0115 + ID: ^WIFI_CONN_0502 SDK: '8266_NonOS 8266_RTOS @@ -14094,78 +14080,221 @@ test cases: category: Function cmd set: - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -R -r 1 + - ['R SSC2 C +RECONN:OK'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - DELAY 5 + - ['R SSC2 C +JAP:DISCONNECTED'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - DELAY 10 + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - DELAY 10 + - [P PC_COM C +DELAYDONE, 'P SSC2 NC +JAP:CONNECTED'] comment: '' execution time: 0.0 - expected result: '1.OK + expected result: '1.target1 set AP - 2.OK + 2.target2 jap target 1 - 3.OK,pc tcp server accept成功 + 3.设置reconn,开启(此功能不需要重启系统) - 4 OK + 4.target2 断开target1 连接 - 5.OK,pc tcp server accept成功 + 5.等待10s,target2 自动重连target1 - 6.OK + 6.target2 断开target1 连接' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式 - 7.OK,pc tcp server accept成功 + 2.target2 jap target 1 - 8 OK + 3.设置reconn,开启(此功能不需要重启系统) - 9.OK,pc tcp server accept成功 + 4.target2 断开target1 连接 - 10.OK + 5.等待10s,target2 自动重连target1 - 11.OK,pc tcp server accept成功' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.PC上建立TCP 监听 test_tcp_port1 + 6.target2 断开target1 连接' + sub module: WIFI Connect + summary: will not do reconnect after manually disconnected + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. - 2.target1上创建TCP socket1 + PC has 1 WiFi NIC. - 3.target1上使用步骤2创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + 2 SSC target connect with PC by UART.' + test point 1: abnormal/special use + test point 2: reconnect policy test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0601 + SDK: '8266_NonOS - 4.target1上创建TCP socket2 + 8266_RTOS - 5.target1上使用步骤4创建的socket2,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -L + - ['R SSC1 C +LSTA:', 'R SSC1 C +LSTA:', R SSC1 C +LSTADONE] + comment: '' + execution time: 0.0 + expected result: '1.target1 set AP - 6.target1上创建TCP socket3 + 2.PC WIFI CONNECTED - 7.target1上使用步骤6创建的socket3,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + 3.target2 jap target 1 - 8.target1上创建TCP socket4 + 4.查询到两个sta 连接到target1 上' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. target1下设置ssid 和pwd 加密方式 - 9.target1上使用步骤8创建的socket4,去连接 PC的ip,test_tcp_port1,PC有ACCEPT + 2.PC WIFI CONNECTED target1 - 10.target1上创建TCP socket5 + 3.target2 jap target 1 - 11.target1上使用步骤10创建的socket5,去连接 PC的ip,test_tcp_port1,PC有ACCEPT' - sub module: TCP - summary: AP mode, create max TCP sockets test + 4.查询到两个sta 连接到target1 上' + sub module: WIFI Connect + summary: list stations connected to soft ap test + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: list SoftAP connected station + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0801 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 2 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,2,0'] + - - SSC SSC1 ap -S -s -p -t 3 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,3,2'] + - - SSC SSC1 ap -S -s -p -t 4 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,4,3'] + - - SSC SSC1 ap -S -s -p -t 0 + - ['P SSC1 C +SAP:OK', 'P SSC2 C +JAP:AUTHCHANGED,0,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. succeed + + 3. auth change event old mode 0 new mode 2 + + 4. auth change event old mode 2 new mode 3 + + 5. auth change event old mode 3 new mode 4 + + 6. auth change event old mode 4 new mode 0' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. set target1 softap auth mode 0 + + 2. target2 connect to target1 + + 3. set target1 softap auth mode 2, wait sta connected + + 4. set target1 softap auth mode 3, wait sta connected + + 5. set target1 softap auth mode 4, wait sta connected + + 6. set target1 softap auth mode 0, wait sta connected' + sub module: WIFI Connect + summary: test auth change event + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi auth changed event test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0901 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: basic function + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - SSC SSC1 sta -D + - ['R SSC1 RE JAP:DISCONNECTED,\d+,8'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE JAP:DISCONNECTED,\d+,15'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE JAP:DISCONNECTED,\d+,201'] + comment: '' + execution time: 0.0 + expected result: '1. disconnect event reason REASON_ASSOC_LEAVE + + 2. disconnect event reason REASON_4WAY_HANDSHAKE_TIMEOUT + + 3. disconnect event reason REASON_NO_AP_FOUND' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: WIFI MAC + steps: '1. sta connect to AP, and disconnect + + 2. connect to AP with wrong password + + 3. connect to AP not exist' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_LEAVE, REASON_4WAY_HANDSHAKE_TIMEOUT, + REASON_NO_AP_FOUND test environment: SSC_T1_1 test environment description (auto): 'PC has 2 wired NIC connected to AP. @@ -14173,7 +14302,153 @@ test cases: 1 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0902 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p + - ['R SSC1 C +JAP:CONNECTED'] + - - APC OFF + - [P PC_COM L OK, 'R SSC1 RE JAP:DISCONNECTED,\d+,200'] + - - APC ON + - [P PC_COM L OK] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_BEACON_TIMEOUT' + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: WIFI MAC + steps: '1. connect to AP + + 2. AP power off' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_BEACON_TIMEOUT + test environment: SSC_T1_APC + test environment description (auto): "PC has 1 wired NIC connected to AP.\nPC has\ + \ 1 wired NIC connected to APC (static IP within the same subnet with APC). \n\ + APC control AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with\ + \ PC by UART." + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0903 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 sta -C -s -p bacfd + - ['R SSC1 RE JAP:DISCONNECTED,\d+,2'] + comment: '' + execution time: 0.0 + expected result: 1. disconect event reason REASON_AUTH_EXPIRE + initial condition: STAAP1 + initial condition description (auto): testing sta on sta + ap mode, quit AP (autogen + by STAM1) + level: Integration + module: WIFI MAC + steps: 1. connect WEP ap with error password (valid wep password) + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_AUTH_EXPIRE + test environment: SSC_T1_WEP + test environment description (auto): '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.' + test point 1: basic function + test point 2: wifi disconnect reason test + version: v1 (2016-8-15) +- CI ready: 'Yes' + ID: ^WIFI_CONN_0904 + SDK: '8266_NonOS + + 8266_RTOS + + ESP32_IDF' + Test App: SSC + allow fail: '' + auto test: 'Yes' + category: Function + cmd set: + - '' + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -C -s -p 1234567890 + - ['R SSC2 RE JAP:DISCONNECTED,\d+,204'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:OK'] + - - WIFI CONN + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - SSC SSC2 sta -C -s -p + - ['R SSC2 RE JAP:DISCONNECTED,\d+,5'] + - - WIFI DISCONN + - [P PC_COM C OK, 'R SSC2 C +JAP:CONNECTED'] + - - SSC SSC1 ap -S -s -p -t 3 -m 1 + - ['P SSC1 C +SAP:OK', 'P SSC2 RE JAP:DISCONNECTED,\d+,4'] + comment: '' + execution time: 0.0 + expected result: '1. succeed + + 2. disconnect event REASON_HANDSHAKE_TIMEOUT + + 3. succeed + + 4. succeed + + 5. disconnect event REASON_ASSOC_TOOMANY + + 6. succeed, target2 connect succeed + + 7. disconnect event REASON_ASSOC_EXPIRE' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1. config target1 softap max sta allowed 1 + + 2. target2 connect to target1 with wrong password + + 3. target2 disconnect + + 4. PC WIFI NIC connect to target1 + + 5. target2 connect to target1 with correct password + + 6. PC WIFI NIC disconnect + + 7. reconfig softap' + sub module: WIFI Connect + summary: test wifi disconnect reason REASON_ASSOC_TOOMANY, REASON_HANDSHAKE_TIMEOUT, + REASON_ASSOC_EXPIRE + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.' + test point 1: basic function + test point 2: wifi disconnect reason test version: v1 (2016-8-15) - CI ready: 'Yes' ID: ^WIFI_SCAN_0101 @@ -14203,6 +14478,7 @@ test cases: 3.target2上查询到' initial condition: T2_2 initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration module: WIFI MAC steps: '1.target 2 scan .,juhg123 @@ -14221,7 +14497,7 @@ test cases: test point 2: scan with different config version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0114 + ID: ^WIFI_SCAN_0102 SDK: '8266_NonOS 8266_RTOS @@ -14233,90 +14509,35 @@ test cases: category: Function cmd set: - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT 0 - - ['R SSC1 A :ACCEPT:(\d+),\d+,.+,\d+'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -T -s - - ['R SSC1 RE CLOSE:\d+,OK'] + - - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11 + - ['R SSC2 NC +SCAN: C +SCANDONE'] + - - SSC SSC2 sta -S -b + - ['R SSC2 RE "\+SCAN:.+,%%s"%%()', 'R SSC2 NC +SCAN: C +SCANDONE'] comment: '' execution time: 0.0 - expected result: '1.OK + expected result: '1.target2 上不能查询到此mac - 2.OK + 2.target2上查询到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target2 上查询此macff:ff:ff:ff:ff:11 - 3.OK - - 4.OK - - 5.OK - - 6.OK,target1上accept 成功 - - 7.target1关闭socket1 - - 8.target1关闭socket2 - - 9.OK - - 10.OK,pc tcp server accept成功 - - 11.target1关闭socket1 - - 12.OK - - 13.OK,pc tcp server accept成功 - - 14.OK - - 15.target1关闭socket1' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: "1.PC上建立TCP 监听 test_tcp_port1\n2.target1上创建TCP socket1\n3.target1关闭socket1\n\ - 4.target1上创建TCP socket 端口随机\n5.target1上使用步骤4创建的socket1,去监听\n6.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket2 \n7.target1关闭socket1\n8.target1关闭socket2\n\ - 9.target1上创建TCP socket1\n10.target1上使用步骤10创建的socket1,去连接 PC的ip,test_tcp_port1,PC有ACCEPT\n\ - 11.target1关闭socket1\n12.target1上创建TCP socket1\n13.target1上使用步骤13创建的socket1,去连接\ - \ PC的ip,test_tcp_port1,PC有ACCEPT\n14.target1shutdown socket1\n15.target1关闭socket1" - sub module: TCP - summary: AP mode, close for different types of TCP sockets test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. + 2.target2上查询' + sub module: WIFI Scan + summary: scan with scan config bssid + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. - 1 SSC target connect with PC by UART.' + 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter + test point 2: scan with different config version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0116 + ID: ^WIFI_SCAN_0103 SDK: '8266_NonOS 8266_RTOS @@ -14328,57 +14549,47 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC2 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC3 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC4 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC5 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] - - - SOC SOC6 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -n 6 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -n 5 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -n 6 + - ['R SSC2 C +SCAN:', R SSC2 P ] comment: '' execution time: 0.0 - expected result: '1.+BIND:0,OK,0.0.0.0 + expected result: '1.target1 QAP - 2.OK + 2. target1 set AP,set channel 6 - 3.OK,pc tcp server accept成功 + 3.target2 上scan不到 channel 5 - 4.OK,pc tcp server accept成功 + 4.target2 上查询channel 6的' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target1 断开连接AP - 5.OK,pc tcp server accept成功 + 2.target1下设置ssid 和pwd 加密方式,set channel 6 - 6.OK,pc tcp server accept成功 + 3.target2 上scan channel 5 - 7.OK,pc tcp server accept成功' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: "1.target1上创建TCP socket 端口随机\n2.target1上使用步骤4创建的socket1,去监听\n3.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket2 \n4.PC CONNECT, ,tcp 连接创建成功,创建socket3\ - \ \n5.PC CONNECT, ,tcp 连接创建成功,创建socket4 \n6.PC CONNECT,\ - \ ,tcp 连接创建成功,创建socket5 \n7.PC CONNECT, ,tcp 连接创建成功,创建socket6\ - \ " - sub module: TCP - summary: AP mode, accept max TCP client by server test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. + 4.target2 上查询channel 6的' + sub module: WIFI Scan + summary: scan with scan config channel + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. - 1 SSC target connect with PC by UART.' + 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter + test point 2: scan with different config version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0111 + ID: ^WIFI_SCAN_0104 SDK: '8266_NonOS 8266_RTOS @@ -14390,47 +14601,59 @@ test cases: category: Function cmd set: - '' - - - SSC SSC1 soc -B -t TCP -p - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -L -s - - ['R SSC1 RE LISTEN:\d+,OK'] - - - SOC SOC1 CONNECT 0 - - ['R SSC1 RE ACCEPT:(\d+),\d+,.+,\d+', P SOC_COM C OK] - - - SOC SOC1 CONNECT 0 - - [P SOC_COM C ERROR, P SSC1 NC ACCEPT] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] + - - SSC SSC1 ap -S -s -p 123456789 -h 1 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -h 0 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -h 1 + - [R SSC2 P C +SCANDONE] comment: '' execution time: 0.0 - expected result: '1.OK + expected result: '1.target1 set AP,set ssid broad cast - 2.OK + 2.target 2上scan - 3.PC TCP client accept + 3.target 2上scan - 4.error' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1.target1上创建TCP socket,bind到本地端口 + 4.target1 set AP,set ssid hidden, - 2.target1上使用步骤1创建的socket,创建TCP 监听 + 5.target 2上不能查询到 - 3.PC TCP 连接到target1 , + 6.target 2上查询到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target1下设置ssid 和pwd 加密方式,set ssid broad cast - 4.PC tcp 连接到不存在的port ,' - sub module: TCP - summary: AP mode, server listen test. use different kinds of port - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. + 2.target 2上scan + + 3.target 2上scan + + 4.target1下设置ssid 和pwd 加密方式,set ssid hidden, + + 5.target 2上查询 + + 6.target 2上查询' + sub module: WIFI Scan + summary: scan with scan config show hidden + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. - 1 SSC target connect with PC by UART.' + 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter + test point 2: scan with different config version: v1 (2016-8-15) - CI ready: 'Yes' - ID: TCPIP_TCP_0113 + ID: ^WIFI_SCAN_0105 SDK: '8266_NonOS 8266_RTOS @@ -14442,154 +14665,54 @@ test cases: category: Function cmd set: - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h B - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h W - - ['R SSC1 RE SHUTDOWN:\d+,OK'] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SSC SSC1 soc -D -s -h R - - ['R SSC1 RE SHUTDOWN:\d+,OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 ap -S -s -p 123456789 -t 3 -h 0 -n 11 + - ['R SSC1 C +SAP:OK'] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 P C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 11 + - [R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b ff:ff:ff:ff:ff:11 -n 11 + - [R SSC2 P , R SSC2 NP C +SCANDONE] + - - SSC SSC2 sta -S -s -b -n 10 + - [R SSC2 P , R SSC2 NP C +SCANDONE] comment: '' execution time: 0.0 - expected result: '1.OK + expected result: '1.target1 QAP - 2.OK + 2. target1 set AP,set ssid broad cast,set channel 11 - 3.OK,pc tcp server accept成功 + 3.target2 上查询到 - 4.OK + 4.target2 上查询不到 - 5.OK + 5.target2 上查询不到 - 6.OK,pc tcp server accept成功 + 6.target2 上查询不到' + initial condition: T2_2 + initial condition description (auto): target 1 as AP+STA, target 2 as AP+STA (autogen) + level: Integration + module: WIFI MAC + steps: '1.target1 QAP - 7.OK + 2. target1 set AP,set ssid broad cast,set channel 11 - 8.OK + 3.target2 上查询到 - 9.OK,pc tcp server accept成功 + 4.target2 上查询不到 - 10.OK' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 + 5.target2 上查询不到 - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 4.target1 shutdown socket1 B - - 5.target1上创建TCP socket - - 6.target1上使用步骤5创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 7.target1 shutdown socket2 W - - 8.target1上创建TCP socket - - 9.target1上使用步骤8创建的socket,去连接 PC的ip,test_tcp_port1,PC有ACCEPT - - 10.target1 shutdown socket3 R' - sub module: TCP - summary: AP mode, shutdown basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. + 6.target2 上查询不到' + sub module: WIFI Scan + summary: scan with several configs + test environment: SSC_T2_1 + test environment description (auto): 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. - 1 SSC target connect with PC by UART.' + 2 SSC target connect with PC by UART.' test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter - version: v1 (2016-8-15) -- CI ready: 'Yes' - ID: TCPIP_TCP_0112 - SDK: '8266_NonOS - - 8266_RTOS - - ESP32_IDF' - Test App: SSC - allow fail: '' - auto test: 'Yes' - category: Function - cmd set: - - '' - - - SOC SOC1 LISTEN - - [R SOC_COM L OK] - - - SSC SSC1 soc -B -t TCP - - ['R SSC1 A :BIND:(\d+),OK'] - - - SSC SSC1 soc -C -s -i -p - - ['R SSC1 RE CONNECT:\d+,OK'] - - - SOC SOC1 ACCEPT SOC2 - - [R SOC_COM L OK] - - - SOC SOC2 SEND 5 - - [R SSC1 SL +5] - - - SSC SSC1 soc -S -s -l 5 - - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 5] - - - SOC SOC2 SEND 146000 - - [R SSC1 SL +146000] - - - SSC SSC1 soc -S -s -l 1460 -n 100 - - ['P SSC1 RE SEND:\d+,OK', P SOC2 RL 146000] - comment: '' - execution time: 0.0 - expected result: '1.OK - - 2.OK - - 3.OK,pc tcp server accept成功 - - 4.OK - - 5.target收到5byte数据 - - 6.PC收到5byte数据 - - 7.target收到146000 byte数据 - - 8.OK,PC 收到146000 byte数据' - initial condition: APM2 - initial condition description (auto): AP mode, PC join AP, DHCP on, will autogen - a TC with initial condition APSTA2 - module: TCPIP - steps: '1. PC上建立TCP 监听 test_tcp_port1 - - 2.target1上创建TCP socket - - 3.target1上使用步骤2创建的socket,去连接 PC的ip,test_tcp_port1 - - 4.PC与target1 创建好TCP 连接,有ACCEPT - - 5.PC send 5 bytes to 8266 - - 6.8266 send 5 bytes to PC - - 7. PC send 100 * 1460 data to 8266, - - 8.8266 send 100 * 1460 to PC. ' - sub module: TCP - summary: AP mode, send/recv basic test - test environment: SSC_T1_1 - test environment description (auto): 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.' - test point 1: basic function - test point 2: use TCP SAP (socket/espconn API) with different parameter + test point 2: scan with different config version: v1 (2016-8-15) diff --git a/components/test/TestEnvAll.yml b/components/idf_test/integration_test/TestEnvAll.yml similarity index 100% rename from components/test/TestEnvAll.yml rename to components/idf_test/integration_test/TestEnvAll.yml index a978f5f73..afa6cb812 100644 --- a/components/test/TestEnvAll.yml +++ b/components/idf_test/integration_test/TestEnvAll.yml @@ -1,82 +1,18 @@ test environment: -- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_SmartConfig, - test environment detail: '2 SSC target connect with PC by UART. - - PC has 1 WiFi NIC. - - One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_SmartConfig, - test environment detail: '2 AT target connect with PC by UART (AT and LOG port). - - PC has 1 WiFi NIC. - - One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_IOT1, - test environment detail: 'PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART. - - AP todo IOT test are placed near SSC1.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 - - SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, - tag: SSC_T2_GPIO3, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266之间需要测试的Target_GPIO相连', - test script: EnvBase} -- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_1, - test environment detail: 'Web Server target connect with PC by UART. - - PC has 1 wired NIC connected to switch. - - APC, AP also connect with swtich. - - All devices connected with switch use same IP subnet. - - APC control AP power supply.', test script: EnvBase} -- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_2, - test environment detail: 'Web Server target connect with PC by UART. - - 4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 - - SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, - tag: SSC_T2_GPIO1, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266的 - GPIO_6相连', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Enterprise, - test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target\ - \ connect with PC by UART.", test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 - - SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, - tag: SSC_T2_GPIO2, test environment detail: '[TBD] 1. 2个ESP_8266通过UART连到PC, ESP_8266的 - GPIO_15通过面包板相连 - - 2. 可借助面包板, 将GPIO_15, 以及中断函数被打开的8266板的GPIO_2 相连', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_HighSpeedUART, +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_1, test environment detail: 'PC has 2 wired NIC connected to AP. PC has 1 WiFi NIC. - 1 AT target connect with PC by high speed UART (AT and LOG port).', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_ShieldBox, - test environment detail: '2 SSC target connect with PC by UART. - - Put them to Shield box.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_3, - test environment detail: 'Able to access WAN after connect to AP. - 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} - {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_2, test environment detail: 'PC has 1 WiFi NIC. 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_3, + test environment detail: 'Able to access WAN after connect to AP. - SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, - tag: UART_T1_2, test environment detail: '[TBD] ESP_8266通过UART_0通过USB, UART_1 TXD - 通过 TTLcable 连到PC', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', - basic param list: '', script path: EnvBase.py, tag: UART_T1_1, test environment detail: '[TBD] - 将ESP_8266通过UART连到PC', test script: EnvBase} + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_ADC, test environment detail: 'PC has 1 wired NIC connected to AP. @@ -85,10 +21,88 @@ test environment: Multimeter connect to input, able to measure input voltage. 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_WEP, - test environment detail: '1 SSC target connect with PC by UART. +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC1, + test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ + \ connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply. \nPC has 1 WiFi NIC. \n1 AT target connect with PC by UART\ + \ (AT and LOG port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC2, + test environment detail: "Able to access WAN after connect to AP.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply.\nPC has 1 WiFi NIC.\n1 AT target connect with PC by UART (AT\ + \ and LOG port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_HighSpeedUART, + test environment detail: 'PC has 2 wired NIC connected to AP. - One WEP share key AP placed near SSC1.', test script: EnvBase} + PC has 1 WiFi NIC. + + 1 AT target connect with PC by high speed UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_SmartConfigIOT, + test environment detail: '1 AT target connect with PC by UART (AT and LOG port). + + PC has 1 wired NIC connect to Common AP. + + Several AP are placed near AT target. + + Several smart phone installed test APK are placed near AT target.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_JAP, + test environment detail: "Several AP are placed near AT target.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC).\nAPC control\ + \ power supply for all APs. \n2 AT target connect with PC by UART (AT and LOG\ + \ port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_Sleep, + test environment detail: 'AP support DTIM placed with AT target. + + 2 AT target connect with PC by UART (AT and LOG port). + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of AT1. + + AT1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO.', + test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_SmartConfig, + test environment detail: '2 AT target connect with PC by UART (AT and LOG port). + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: IR_T2_1, test environment detail: '[TBD] 本测试为非自动测试, 红外能够做到数据收发吻合即可通过', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: NVS_T1_1, + test environment detail: '1 NVS target connect with PC by UART. + + 1 SSC target connect with PC by UART. + + SSC2 GPIO connect to NVS1 power control pin.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: PWM_T1_1, test environment detail: "[TBD]\ + \ 1. PWM OS SDK 以及 Non-OS SDK的测试建议分开进行, 放在不同的文件夹, 防止文件命名混淆\n2. 分析CSV文件的Python脚本只能分析单个channel\ + \ \n3. 如果Init脚本打印\"Network Error\" 检查TCP Server是不是正常发送data", test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_1, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_2, + test environment detail: 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_8089, + test environment detail: 'PC has 1 wired NIC connected to AP. + + 1 8089 tablet able to run iperf test placed near SSC1. + + 1 SSC target connect with PC by UART.', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ADC, test environment detail: 'PC has 1 wired NIC connected to AP. @@ -102,12 +116,15 @@ test environment: \ connected to APC (static IP within the same subnet with APC). \nAPC control\ \ AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with PC by UART.", test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_8089, - test environment detail: 'PC has 1 wired NIC connected to AP. +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Enterprise, + test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target\ + \ connect with PC by UART.", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_IOT1, + test environment detail: 'PC has 1 WiFi NIC. - 1 8089 tablet able to run iperf test placed near SSC1. + 1 SSC target connect with PC by UART. - 1 SSC target connect with PC by UART.', test script: EnvBase} + AP todo IOT test are placed near SSC1.', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T1_InitData, test environment detail: '2 SSC target connect with PC by UART. @@ -116,30 +133,6 @@ test environment: SSC2 use normal 26M crystal oscillator. SSC2 GPIO connect to SSC1 power control pin.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', - basic param list: '', script path: EnvBase.py, tag: SSC_T1_Timer, test environment detail: '[TBD] - 通过串口工具调节Timer, 将GPIO_13端口连接到逻辑分析仪', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 3.0, script path: EnvBase.py, tag: SSC_T3_PhyMode, - test environment detail: '3 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). - - Put 4 APs near SSC targets.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_JAP, - test environment detail: "Several AP are placed near AT target.\nPC has 1 wired\ - \ NIC connected to APC (static IP within the same subnet with APC).\nAPC control\ - \ power supply for all APs. \n2 AT target connect with PC by UART (AT and LOG\ - \ port).", test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_PhyMode, - test environment detail: '2 SSC target connect with PC by UART. - - PC has one WiFi NIC support capture wlan packet using libpcap. - - Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. - - Put 4 APs near SSC targets.', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ShieldBox, test environment detail: 'refer to figure. @@ -148,12 +141,100 @@ test environment: PC wired NIC should set static IP address within the same subnet with AP. Must use onboard wired NIC.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_TempBox, + test environment detail: '1 SSC target connect with PC by UART. + + Put SSC target to temperature box.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: SSC_T1_Timer, test environment detail: '[TBD] + 通过串口工具调节Timer, 将GPIO_13端口连接到逻辑分析仪', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_VDD33, + test environment detail: '1 SSC target connect with PC by UART. + + Multimeter connect to VDD33, able to measure voltage.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_WEP, + test environment detail: '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.', test script: EnvBase} - {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_1, test environment detail: 'PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC. 2 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO1, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_6相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO2, test environment detail: '[TBD] 1. 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_15通过面包板相连 + + 2. 可借助面包板, 将GPIO_15, 以及中断函数被打开的8266板的GPIO_2 相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO3, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266之间需要测试的Target_GPIO相连', + test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_PhyMode, + test environment detail: '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_ShieldBox, + test environment detail: '2 SSC target connect with PC by UART. + + Put them to Shield box.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep1, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO. + + SSC1''s XPD connect with RSTB.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep2, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s RSTB pin connect with AT2''s GPIO.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_SmartConfig, + test environment detail: '2 SSC target connect with PC by UART. + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 3.0, script path: EnvBase.py, tag: SSC_T3_PhyMode, + test environment detail: '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_1, + test environment detail: 5 SSC target connect with PC by UART., test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T6_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 6 SSC target connect with PC by UART.', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: TempSensor_T1_1, test environment detail: 'Tempeture sensor target connect with PC by UART. @@ -170,106 +251,25 @@ test environment: All devices connected with switch use the same IP subnet. APC control AP power supply.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_SmartConfigIOT, - test environment detail: '1 AT target connect with PC by UART (AT and LOG port). - - PC has 1 wired NIC connect to Common AP. - - Several AP are placed near AT target. - - Several smart phone installed test APK are placed near AT target.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_Sleep, - test environment detail: 'AP support DTIM placed with AT target. - - 2 AT target connect with PC by UART (AT and LOG port). - - Multimeter connect with PC via GPIB. - - Series multimeter between GND and VCC of AT1. - - AT1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO.', - test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_1, - test environment detail: 5 SSC target connect with PC by UART., test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_TempBox, - test environment detail: '1 SSC target connect with PC by UART. - - Put SSC target to temperature box.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_1, - test environment detail: 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T6_1, - test environment detail: 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 6 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: UART_T1_1, test environment detail: '[TBD] + 将ESP_8266通过UART连到PC', test script: EnvBase} - {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, - tag: IR_T2_1, test environment detail: '[TBD] 本测试为非自动测试, 红外能够做到数据收发吻合即可通过', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_VDD33, - test environment detail: '1 SSC target connect with PC by UART. + tag: UART_T1_2, test environment detail: '[TBD] ESP_8266通过UART_0通过USB, UART_1 TXD + 通过 TTLcable 连到PC', test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_1, + test environment detail: 'Web Server target connect with PC by UART. - Multimeter connect to VDD33, able to measure voltage.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', - basic param list: '', script path: EnvBase.py, tag: PWM_T1_1, test environment detail: "[TBD]\ - \ 1. PWM OS SDK 以及 Non-OS SDK的测试建议分开进行, 放在不同的文件夹, 防止文件命名混淆\n2. 分析CSV文件的Python脚本只能分析单个channel\ - \ \n3. 如果Init脚本打印\"Network Error\" 检查TCP Server是不是正常发送data", test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: NVS_T1_1, - test environment detail: '1 NVS target connect with PC by UART. + PC has 1 wired NIC connected to switch. - 1 SSC target connect with PC by UART. + APC, AP also connect with swtich. - SSC2 GPIO connect to NVS1 power control pin.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep2, - test environment detail: 'AP support DTIM placed with AT target. + All devices connected with switch use same IP subnet. - 2 SSC target connect with PC by UART. + APC control AP power supply.', test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_2, + test environment detail: 'Web Server target connect with PC by UART. - Multimeter connect with PC via GPIB. - - Series multimeter between GND and VCC of SSC1. - - SSC1''s RSTB pin connect with AT2''s GPIO.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep1, - test environment detail: 'AP support DTIM placed with AT target. - - 2 SSC target connect with PC by UART. - - Multimeter connect with PC via GPIB. - - Series multimeter between GND and VCC of SSC1. - - SSC1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO. - - SSC1''s XPD connect with RSTB.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_1, - test environment detail: 'PC has 1 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 2 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_1, - test environment detail: 'PC has 2 wired NIC connected to AP. - - PC has 1 WiFi NIC. - - 1 SSC target connect with PC by UART.', test script: EnvBase} -- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_2, - test environment detail: 'Able to access WAN after connect to AP. - - 1 SSC target connect with PC by UART.', test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC2, - test environment detail: "Able to access WAN after connect to AP.\nPC has 1 wired\ - \ NIC connected to APC (static IP within the same subnet with APC). \nAPC control\ - \ AP power supply.\nPC has 1 WiFi NIC.\n1 AT target connect with PC by UART (AT\ - \ and LOG port).", test script: EnvBase} -- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC1, - test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ - \ connected to APC (static IP within the same subnet with APC). \nAPC control\ - \ AP power supply. \nPC has 1 WiFi NIC. \n1 AT target connect with PC by UART\ - \ (AT and LOG port).", test script: EnvBase} + 4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase} diff --git a/components/idf_test/uint_test/InitialConditionAll.yml b/components/idf_test/uint_test/InitialConditionAll.yml new file mode 100644 index 000000000..ba06af9f8 --- /dev/null +++ b/components/idf_test/uint_test/InitialConditionAll.yml @@ -0,0 +1,2935 @@ +initial condition: +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, DHCP on, will autogen a TC with initial condition + APSTA1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 31.0 + tag: APM1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, PC join AP, DHCP on, will autogen a TC with initial + condition APSTA2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 38.0 + tag: APM2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 31.0 + tag: APO1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: AP mode, will NOT autogen a TC with initial condition + APSTA2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 38.0 + tag: APO2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + initial condition detail: AP only mode, running BIN0 (located on flash id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: APOBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + initial condition detail: testing ap on sta + ap mode (autogen by APM1) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 59.0 + tag: APSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 ap -Q + - ['R SSC1 RE "\+APCONFIG:%%s,%%s,\d+,\d+,\d+,4,"%%(,)'] + - - SSC SSC1 ap -L + - ['R SSC1 RE "\+LSTA:.+,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + initial condition detail: testing ap on sta + ap mode, PC join AP (autogen by APM2) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC1 ap -S -s -p -t + - ['R SSC1 C +SAP:OK'] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 66.0 + tag: APSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 5 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + initial condition detail: StationSoftAP mode + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: ATAP1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 5 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, PC join Target AP, multi link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 R *] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: ATAP3 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - DELAY 10 + - [''] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, PC join Target AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: ATAP4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, both PC join Target AP, single link, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAP5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, both PC join Target AP, multi link, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAP6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:2'] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 59.0 + tag: ATAPO1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 R *] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 66.0 + tag: ATAPO3 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 L OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATC AT1 CWSAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + - - WIFI CONN + + - ['R PC_COM NC ERROR C +WIFICONN:OK'] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: SoftAP mode, PC join Target AP, single link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWLIF + - [R AT1 P ] + - - ATS AT1 AT+CWDHCP_DEF=0,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 73.0 + tag: ATAPO4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: SoftAP mode, both PC join Target AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAPO5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: SoftAP mode, both PC join Target AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATAPO6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, DHCP client on + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: ATAPSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 94.0 + tag: ATAPSTA3 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: StationSoftAP mode, connected to AP, single link, use + dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CWDHCP_DEF=2,1 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 101.0 + tag: ATAPSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, multi link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 129.0 + tag: ATAPSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:3'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: StationSoftAP mode, connected to AP, single link, use + static ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 136.0 + tag: ATAPSTA6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + initial condition detail: 'first time usage. Use restore function. ' + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+RESTORE + - [R AT1 L OK, R AT1 C ready] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 143.0 + tag: ATFTU + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT + - [R AT1 L OK] + - - ATS AT1 AT + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+RST + - [R AT1 L OK] + initial condition detail: none + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 3.0 + tag: ATNone + test script: InitCondBase +- check cmd set: + - '' + - - DELAY 0.1 + - [dummy] + force restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + initial condition detail: none 2 + restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 108.0 + tag: ATNone2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: same as STA1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATOSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: same as STA4, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ATOSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:1 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + initial condition detail: same as OT2_1, but will not autogen STA+AP STA test case + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: ATOT2_1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: station mode, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATSTA1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + initial condition detail: station mode, DHCP client on, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 10.0 + tag: ATSTA2 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, multi link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: ATSTA3 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CWDHCP_CUR? + - ['R AT1 C DHCP:3'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + initial condition detail: station mode, connected to AP, single link, use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATS AT1 AT+CWDHCP_DEF=1,1 + - [R AT1 R *] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ATSTA4 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:1'] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, multi link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=1 + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 115.0 + tag: ATSTA5 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 L +CWMODE_CUR:1'] + - - ATS AT1 AT+CWJAP_CUR? + - ['R AT1 C +CWJAP_CUR:', R AT1 P ] + - - ATS AT1 AT+CIPMUX? + - ['R AT1 L +CIPMUX:0'] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + initial condition detail: station mode, connected to AP, single link, use static + ip + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=1 + - [R AT1 L OK] + - - ATC AT1 CWJAP_DEF + - [R AT1 L OK] + - - ATS AT1 AT+CIPSERVER=0 + - [R AT1 R *] + - - ATC AT1 CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMUX=0 + - [R AT1 L OK] + - - ATS AT1 AT+CIPCLOSE + - [R AT1 R *] + - - ATS AT1 AT+CIPMODE=0 + - [R AT1 R *] + - - ATC AT1 CIPSTA_DEF + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 122.0 + tag: ATSTA6 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:3 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:1 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + initial condition detail: Target 1 in StationSoftAP mode, Target 2 in station mode, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=3 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=1 + - [R AT2 L OK] + - - ATS AT1 AT+CWQAP + - [R AT1 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 52.0 + tag: ATT2_1 + test script: InitCondBase +- check cmd set: + - '' + - - ATS AT1 AT+CWMODE_CUR? + - ['R AT1 C +CWMODE_CUR:2 C OK'] + - - ATS AT2 AT+CWMODE_CUR? + - ['R AT2 C +CWMODE_CUR:3 C OK'] + - - ATS AT1 AT+CWJAP_CUR? + - [R AT1 NC OK L ERROR] + force restore cmd set: + - '' + - - ATS AT1 AT+RST + - [R AT1 C ready] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] + initial condition detail: Target 1 in SoftAP mode, Target 2 in StationSoftAP mode, + use dhcp + restore cmd set: + - '' + - - ATSO AT1 +++ + - [''] + - - ATS AT1 AT + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - ATS AT1 AT+CWMODE_DEF=2 + - [R AT1 L OK] + - - ATS AT2 AT+CWMODE_DEF=3 + - [R AT2 L OK] + restore post cmd set: + - '' + - - ATS AT1 AT+CWSTOPSMART + - [R AT1 R *] + - - ATS AT1 AT+SAVETRANSLINK=0 + - [R AT1 R *] + - - AT+SYSRAM + - ['R AT1 A :(\d+)'] + script path: InitCondBase.py + start: 80.0 + tag: ATT2_2 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + initial condition detail: all mesh node disabled + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] op -S -o 1 + - ['P SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] sta -D + - ['P SSC[1-] C +QAP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: DISABLED + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + initial condition detail: all mesh node enabled as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SOC SOC1 LISTEN + - [R SOC_COM L OK] + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC[1-] mesh -A -s -k + - ['P SSC[1-] C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 2 + - ['P SSC1 C +MESH:ENABLED'] + - - SOC SOC1 MACCEPT GSOC1 + - [R SOC_COM L OK] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - ['P SSC[2-] C +MESH:ENABLED'] + - - DELAY 60 + - [''] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + - - SSC SSC[1-] mesh -O -t 1 -o 1 + - ['P SSC[1-] C +MESH:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: ENABLED_1 + test script: InitCondBase +- check cmd set: + - '' + - - ASSERT + - [dummy] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['P SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + initial condition detail: root as LOCAL, rest node as ONLINE, mesh network established + restore cmd set: + - '' + - - SSC SSC[1-] mesh -E -o 0 + - ['P SSC[1-] C +MESH:DISABLED'] + - - SSC SSC[1-] mesh -I -g -a 4 -k -i + -p -h 5 + - ['P SSC[1-] C ENCRYPTION,OK C GROUP,OK C SERVER,OK C HOP,OK'] + - - SSC SSC1 mesh -A -s -k + - ['P SSC1 C +MESHINIT:AP,OK'] + - - SSC SSC1 mesh -E -o 1 -t 1 + - ['P SSC1 C +MESH:ENABLED'] + - - SSC SSC[2-] mesh -E -o 1 -t 2 + - [''] + - - DELAY 60 + - ['P SSC[2-] C +MESH:ENABLED'] + - - SSC SSC[1-] mesh -C + - ['P SSC[1-] C +MESH:CONNECTED'] + - - SSC SSC[1-] mesh -Q -t 4 + - ['R SSC[1-] T '] + - - MESHTREE + - ['R PC_COM RE "MESHTREE:%%s%20nodes"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: ENABLED_2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['R SSC[1-] C !!!ready!!!'] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -m -o 2 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + initial condition detail: one target in AP mode and espnow is de-initialized + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 mac -S -m -o 2 + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC1 espnow -D + - ['R SSC1 C +ESPNOW:'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: NOW1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1-] op -Q + - ['R SSC[1-] C +CURMODE:2'] + - - SSC SSC[1-] mac -Q -o 3 + - ['R SSC[1-] P ]_ap_mac> P ]_mac>'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + force restore cmd set: + - '' + - - SSC SSC[1-] reboot + - ['R SSC[1-] C !!!ready!!!'] + - - SSC SSC[1-] op -S -o 3 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] mac -S -m ]_ap_mac> -o 2 + - ['R SSC[1-] C +MAC:AP,OK'] + - - SSC SSC[1-] mac -S -m ]_mac> -o 1 + - ['R SSC[1-] C +MAC:STA,OK'] + - - SSC SSC[1-] op -S -o 2 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + initial condition detail: multiple () targets in AP mode, espnow is initialized + with self role slave + restore cmd set: + - '' + - - SSC SSC[1-] op -S -o 3 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] mac -S -m ]_ap_mac> -o 2 + - ['R SSC[1-] C +MAC:AP,OK'] + - - SSC SSC[1-] mac -S -m ]_mac> -o 1 + - ['R SSC[1-] C +MAC:STA,OK'] + - - SSC SSC[1-] op -S -o 2 + - ['R SSC[1-] C +MODE:OK'] + - - SSC SSC[1-] espnow -D + - ['R SSC[1-] C +ESPNOW:'] + - - SSC SSC[1-] espnow -I + - ['R SSC[1-] C +ESPNOW:OK'] + - - SSC SSC[1-] espnow -R -t Set -r 2 + - ['R SSC[1-] C +ESPNOW:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: NOW2 + test script: InitCondBase +- check cmd set: + - '' + - - DELAY 0.1 + - [dummy] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + initial condition detail: none + restore cmd set: + - '' + - - DELAY 0.1 + - [dummy] + restore post cmd set: + - '' + - - DELAY 0.1 + - [dummy] + script path: InitCondBase.py + start: 10.0 + tag: None + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + initial condition detail: one target and simple is de-inited + restore cmd set: + - '' + - - SSC SSC1 sp -D + - ['R SSC1 C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 31.0 + tag: PAIR1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1,2] op -Q + - ['R SSC[1,2] C +MODE:[2,1]'] + - - SSC SSC[1,2] mac -Q -o 3 + - ['R SSC[1,2] P P '] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC[1,2] reboot + - ['R SSC[1,2] C !!!ready!!!'] + - - SSC SSC[1,2] op -S -o 3 + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] op -S -o [2,1] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + initial condition detail: target1 in AP mode, target2 in STA mode, two targets de-init + and init simple pair + restore cmd set: + - '' + - - SSC SSC[1,2] op -S -o 3 + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] op -S -o [2,1] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 38.0 + tag: PAIR2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1,2] op -Q + - ['R SSC[1,2] C +MODE:[3,3]'] + - - SSC SSC[1,2] mac -Q -o 3 + - ['R SSC[1,2] P P '] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + force restore cmd set: + - '' + - - SSC SSC[1,2] reboot + - ['R SSC[1,2] C !!!ready!!!'] + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + initial condition detail: target1 and target2 in STA+AP mode, two targets de-init + and init simple pair + restore cmd set: + - '' + - - SSC SSC[1,2] op -S -o [3,3] + - ['R SSC[1,2] C +MODE:OK'] + - - SSC SSC[1,2] mac -S -m -o 2 + - ['R SSC[1,2] C +MAC:AP,OK'] + - - SSC SSC[1,2] mac -S -m -o 1 + - ['R SSC[1,2] C +MAC:STA,OK'] + - - SSC SSC[1,2] sp -D + - ['R SSC[1,2] C +SP:OK'] + - - SSC SSC[1,2] sp -I + - ['R SSC[1,2] C +SP:OK'] + restore post cmd set: + - '' + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 45.0 + tag: PAIR3 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: testing sta on sta + ap mode, quit AP (autogen by STAM1) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 45.0 + tag: STAAP1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: testing sta on sta + ap mode, join AP, DHCP on (autogen + by STAM2) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 52.0 + tag: STAAP2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: APSTA mode, connected to AP, running BIN0 (located on + flash id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 24.0 + tag: STAAPBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, DHCP on, will autogen a TC with initial + condition STAAP1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 17.0 + tag: STAM1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on, will autogen a TC with initial + condition STAAP2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 24.0 + tag: STAM2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 1 + - ['R SSC1 C BIN_ID,0'] + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + force restore cmd set: + - '' + - - SSC SSC1 upgrade -R -r 1 -s + - [R SSC1 NC ERROR C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SOC SOC1 ULISTEN + - [R SOC_COM L OK] + - - SOC SOC1 SETOPT REPLY BIN + - [R SOC_COM C OK] + - - SSC SSC1 upgrade -I -b 0 -f 0 + - ['P SSC1 C +UPGRADE:OK'] + - - SSC SSC1 upgrade -U -i -p -u + - ['P SSC1 C +UPGRADE:SUCCEED'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: STA mode, connected to AP, running BIN0 (located on flash + id 0) + restore cmd set: + - '' + - - SSC SSC1 upgrade -Q -t 2 -b 0 + - ['R SSC1 C BIN_INFO,0'] + - - SSC SSC1 upgrade -R -b 0 + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 upgrade -D + - ['R SSC1 C +UPGRADE:OK'] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 17.0 + tag: STAMBIN0 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + initial condition detail: sta mode, quit AP, will NOT autogen a TC with initial + condition STAAP1 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 sta -D + - ['R SSC1 C +QAP:'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 17.0 + tag: STAO1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:1'] + - - SSC SSC1 sta -Q + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + - - SSC SSC1 dhcp -Q -o 1 + - ['R SSC1 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 1 + - [R SSC1 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + initial condition detail: sta mode, join AP, DHCP on, will NOT autogen a TC with + initial condition STAAP2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 1 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC1 dhcp -S -o 1 + - [R SSC1 C +DHCP] + - - SSC SSC1 mac -S -o 1 -m + - ['R SSC1 C +MAC:STA,OK'] + - - SSC SSC1 sta -C -s -p + - ['R SSC1 RE "\+JAP:CONNECTED,%%s"%%()'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 24.0 + tag: STAO2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:1'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: same as T2_1 but will NOT autogen a TC with initial condition + T2_2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 73.0 + tag: T2O_1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:2'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:1'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: target 1 as SoftAP, target 2 as STA, will autogen a TC + with initial condition T2_2 + restore cmd set: + - '' + - - SSC SSC1 op -S -o 2 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 1 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [''] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 73.0 + tag: T2_1 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC1 op -Q + - ['R SSC1 C +CURMODE:3'] + - - SSC SSC2 op -Q + - ['R SSC2 C +CURMODE:3'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -Q -o 2 + - ['R SSC1 C +DHCP:AP,STARTED'] + - - SSC SSC2 dhcp -Q -o 1 + - ['R SSC2 C +DHCP:STA,STARTED'] + - - SSC SSC1 mac -Q -o 2 + - [R SSC1 P ] + - - SSC SSC2 mac -Q -o 1 + - [R SSC2 P ] + force restore cmd set: + - '' + - - SSC SSC1 reboot + - [R SSC1 C !!!ready!!!] + - - SSC SSC2 reboot + - [R SSC2 C !!!ready!!!] + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 3 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + initial condition detail: target 1 as AP+STA, target 2 as AP+STA (autogen) + restore cmd set: + - '' + - - SSC SSC1 op -S -o 3 + - ['R SSC1 C +MODE:OK'] + - - SSC SSC2 op -S -o 3 + - ['R SSC2 C +MODE:OK'] + - - SSC SSC2 sta -D + - ['R SSC2 C +QAP:'] + - - SSC SSC2 soc -T + - [R SSC2 C +CLOSEALL] + - - SSC SSC1 dhcp -S -o 2 + - [R SSC1 C +DHCP] + - - SSC SSC2 dhcp -S -o 1 + - [R SSC2 C +DHCP] + - - SSC SSC1 mac -S -o 2 -m + - ['R SSC1 C +MAC:AP,OK'] + - - SSC SSC2 mac -S -o 1 -m + - ['R SSC2 C +MAC:STA,OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 ram + - ['R SSC1 C +FREEHEAP:'] + script path: InitCondBase.py + start: 80.0 + tag: T2_2 + test script: InitCondBase +- check cmd set: + - '' + - - SSC SSC[1-3] op -Q + - ['R SSC[1-3] C +CURMODE:3'] + - - SSC SSC[1-3] phy -Q -o 3 + - ['R SSC[1-3] C STA,n,40 C AP,n,40'] + force restore cmd set: + - '' + - - SSC SSC[1-3] reboot + - ['R SSC[1-3] C !!!ready!!!'] + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] + initial condition detail: '1. target 1 and target 2 set to AP+STA mode, target 3 + set to STA mode + + 2. all interface of target 2,3 set to 11n ht40 + + 3. config softAP of target 1 and target 2' + restore cmd set: + - '' + - - SSC SSC[1-3] op -S -o 3 + - ['R SSC[1-3] C +MODE:OK'] + - - SSC SSC[1-3] phy -S -o 3 -m n -b 40 + - ['R SSC[1-3] C +PHY:OK'] + restore post cmd set: + - '' + - - SSC SSC1 soc -T + - [R SSC1 C +CLOSEALL] + - - SSC SSC1 sta -R -r 1 + - [R SSC1 C OK] + - - SSC SSC1 ram + - ['R SSC1 A :(\d+)'] + script path: InitCondBase.py + start: 87.0 + tag: T3_PHY1 + test script: InitCondBase diff --git a/components/idf_test/uint_test/TestCaseAll.yml b/components/idf_test/uint_test/TestCaseAll.yml new file mode 100644 index 000000000..2b2c65e0b --- /dev/null +++ b/components/idf_test/uint_test/TestCaseAll.yml @@ -0,0 +1 @@ +test cases: [] diff --git a/components/idf_test/uint_test/TestEnvAll.yml b/components/idf_test/uint_test/TestEnvAll.yml new file mode 100644 index 000000000..afa6cb812 --- /dev/null +++ b/components/idf_test/uint_test/TestEnvAll.yml @@ -0,0 +1,275 @@ +test environment: +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_1, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_2, + test environment detail: 'PC has 1 WiFi NIC. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_3, + test environment detail: 'Able to access WAN after connect to AP. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_ADC, + test environment detail: 'PC has 1 wired NIC connected to AP. + + Analog input connect to AT1 TOUT. + + Multimeter connect to input, able to measure input voltage. + + 1 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC1, + test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ + \ connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply. \nPC has 1 WiFi NIC. \n1 AT target connect with PC by UART\ + \ (AT and LOG port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_APC2, + test environment detail: "Able to access WAN after connect to AP.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply.\nPC has 1 WiFi NIC.\n1 AT target connect with PC by UART (AT\ + \ and LOG port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_HighSpeedUART, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 AT target connect with PC by high speed UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: AT_T1_SmartConfigIOT, + test environment detail: '1 AT target connect with PC by UART (AT and LOG port). + + PC has 1 wired NIC connect to Common AP. + + Several AP are placed near AT target. + + Several smart phone installed test APK are placed near AT target.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 AT target connect with PC by UART (AT and LOG port).', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_JAP, + test environment detail: "Several AP are placed near AT target.\nPC has 1 wired\ + \ NIC connected to APC (static IP within the same subnet with APC).\nAPC control\ + \ power supply for all APs. \n2 AT target connect with PC by UART (AT and LOG\ + \ port).", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_Sleep, + test environment detail: 'AP support DTIM placed with AT target. + + 2 AT target connect with PC by UART (AT and LOG port). + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of AT1. + + AT1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO.', + test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: AT_T2_SmartConfig, + test environment detail: '2 AT target connect with PC by UART (AT and LOG port). + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: IR_T2_1, test environment detail: '[TBD] 本测试为非自动测试, 红外能够做到数据收发吻合即可通过', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: NVS_T1_1, + test environment detail: '1 NVS target connect with PC by UART. + + 1 SSC target connect with PC by UART. + + SSC2 GPIO connect to NVS1 power control pin.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: PWM_T1_1, test environment detail: "[TBD]\ + \ 1. PWM OS SDK 以及 Non-OS SDK的测试建议分开进行, 放在不同的文件夹, 防止文件命名混淆\n2. 分析CSV文件的Python脚本只能分析单个channel\ + \ \n3. 如果Init脚本打印\"Network Error\" 检查TCP Server是不是正常发送data", test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_1, + test environment detail: 'PC has 2 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_2, + test environment detail: 'Able to access WAN after connect to AP. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_8089, + test environment detail: 'PC has 1 wired NIC connected to AP. + + 1 8089 tablet able to run iperf test placed near SSC1. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ADC, + test environment detail: 'PC has 1 wired NIC connected to AP. + + Analog input connect to SSC1 TOUT. + + Multimeter connect to input, able to measure input voltage. + + 1 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_APC, + test environment detail: "PC has 1 wired NIC connected to AP.\nPC has 1 wired NIC\ + \ connected to APC (static IP within the same subnet with APC). \nAPC control\ + \ AP power supply. \nPC has 1 WiFi NIC. \n1 SSC target connect with PC by UART.", + test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_Enterprise, + test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC target\ + \ connect with PC by UART.", test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_IOT1, + test environment detail: 'PC has 1 WiFi NIC. + + 1 SSC target connect with PC by UART. + + AP todo IOT test are placed near SSC1.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T1_InitData, + test environment detail: '2 SSC target connect with PC by UART. + + SSC1 use 40M crystal oscillator. + + SSC2 use normal 26M crystal oscillator. + + SSC2 GPIO connect to SSC1 power control pin.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_ShieldBox, + test environment detail: 'refer to figure. + + All APs and APC should be set to the same IP subnet. + + PC wired NIC should set static IP address within the same subnet with AP. + + Must use onboard wired NIC.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_TempBox, + test environment detail: '1 SSC target connect with PC by UART. + + Put SSC target to temperature box.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: SSC_T1_Timer, test environment detail: '[TBD] + 通过串口工具调节Timer, 将GPIO_13端口连接到逻辑分析仪', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_VDD33, + test environment detail: '1 SSC target connect with PC by UART. + + Multimeter connect to VDD33, able to measure voltage.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T1_WEP, + test environment detail: '1 SSC target connect with PC by UART. + + One WEP share key AP placed near SSC1.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 2 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO1, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_6相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO2, test environment detail: '[TBD] 1. 2个ESP_8266通过UART连到PC, ESP_8266的 + GPIO_15通过面包板相连 + + 2. 可借助面包板, 将GPIO_15, 以及中断函数被打开的8266板的GPIO_2 相连', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: SSC_T2_GPIO3, test environment detail: '[TBD] 2个ESP_8266通过UART连到PC, ESP_8266之间需要测试的Target_GPIO相连', + test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_PhyMode, + test environment detail: '2 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40. + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_ShieldBox, + test environment detail: '2 SSC target connect with PC by UART. + + Put them to Shield box.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep1, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s light sleep wakeup pin and wakeup indication connect with AT2''s GPIO. + + SSC1''s XPD connect with RSTB.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_Sleep2, + test environment detail: 'AP support DTIM placed with AT target. + + 2 SSC target connect with PC by UART. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of SSC1. + + SSC1''s RSTB pin connect with AT2''s GPIO.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 2.0, script path: EnvBase.py, tag: SSC_T2_SmartConfig, + test environment detail: '2 SSC target connect with PC by UART. + + PC has 1 WiFi NIC. + + One HT20 AP and One HT40 AP are placed near target.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 3.0, script path: EnvBase.py, tag: SSC_T3_PhyMode, + test environment detail: '3 SSC target connect with PC by UART. + + PC has one WiFi NIC support capture wlan packet using libpcap. + + Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2). + + Put 4 APs near SSC targets.', test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 5.0, script path: EnvBase.py, tag: SSC_T5_1, + test environment detail: 5 SSC target connect with PC by UART., test script: EnvBase} +- {PC OS: '', Special: N, Target Count: 1.0, script path: EnvBase.py, tag: SSC_T6_1, + test environment detail: 'PC has 1 wired NIC connected to AP. + + PC has 1 WiFi NIC. + + 6 SSC target connect with PC by UART.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: TempSensor_T1_1, + test environment detail: 'Tempeture sensor target connect with PC by UART. + + AP support DTIM placed with AT target. + + Multimeter connect with PC via GPIB. + + Series multimeter between GND and VCC of TempSensor1. + + PC has 1 wired NIC connected to switch. + + APC, AP also connect with swtich. + + All devices connected with switch use the same IP subnet. + + APC control AP power supply.', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: SSC_1, additional param list: '', + basic param list: '', script path: EnvBase.py, tag: UART_T1_1, test environment detail: '[TBD] + 将ESP_8266通过UART连到PC', test script: EnvBase} +- {PC OS: '', Special: Y, Target Count: 1.0, UART ports: 'SSC1 + + SSC2', additional param list: '', basic param list: '', script path: EnvBase.py, + tag: UART_T1_2, test environment detail: '[TBD] ESP_8266通过UART_0通过USB, UART_1 TXD + 通过 TTLcable 连到PC', test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_1, + test environment detail: 'Web Server target connect with PC by UART. + + PC has 1 wired NIC connected to switch. + + APC, AP also connect with swtich. + + All devices connected with switch use same IP subnet. + + APC control AP power supply.', test script: EnvBase} +- {PC OS: linux, Special: Y, Target Count: 1.0, script path: EnvBase.py, tag: WebServer_T1_2, + test environment detail: 'Web Server target connect with PC by UART. + + 4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase} diff --git a/components/test/CIConfigs/Function_TCPIP_01.yml b/components/test/CIConfigs/Function_TCPIP_01.yml deleted file mode 100644 index e947b0c5c..000000000 --- a/components/test/CIConfigs/Function_TCPIP_01.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [^TCPIP_DHCP_0302, ^TCPIP_DHCP_0301, ^TCPIP_UDP_0113, TCPIP_DHCP_0302, TCPIP_DHCP_0301, - TCPIP_TCP_0412, TCPIP_TCP_0403, TCPIP_TCP_0402, TCPIP_TCP_0401, TCPIP_TCP_0407, - TCPIP_TCP_0406, TCPIP_TCP_0404, TCPIP_TCP_0408, ^TCPIP_TCP_0202, TCPIP_TCP_0110, - ^TCPIP_TCP_0203, TCPIP_DHCP_0101, TCPIP_DHCP_0103, TCPIP_DHCP_0102, TCPIP_IP_0101, - TCPIP_IP_0102, ^TCPIP_IGMP_0102, ^TCPIP_IGMP_0101, ^TCPIP_IGMP_0104, TCPIP_IGMP_0104, - TCPIP_IGMP_0103, TCPIP_IGMP_0102, TCPIP_IGMP_0101, ^TCPIP_UDP_0201, TCPIP_UDP_0108] diff --git a/components/test/CIConfigs/Function_TCPIP_02.yml b/components/test/CIConfigs/Function_TCPIP_02.yml deleted file mode 100644 index 6a3cb08d6..000000000 --- a/components/test/CIConfigs/Function_TCPIP_02.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [TCPIP_UDP_0106, TCPIP_UDP_0107, TCPIP_UDP_0105, TCPIP_UDP_0101, TCPIP_IGMP_0204, - TCPIP_IGMP_0201, TCPIP_IGMP_0202, TCPIP_IGMP_0203, ^TCPIP_TCP_0404, ^TCPIP_TCP_0406, - ^TCPIP_TCP_0407, ^TCPIP_TCP_0401, ^TCPIP_TCP_0402, ^TCPIP_TCP_0403, ^TCPIP_TCP_0408, - TCPIP_UDP_0201, ^TCPIP_TCP_0101, ^TCPIP_TCP_0103, ^TCPIP_TCP_0102, ^TCPIP_TCP_0105, - ^TCPIP_TCP_0104, ^TCPIP_TCP_0107, ^TCPIP_TCP_0106, ^TCPIP_DHCP_0210, ^TCPIP_DHCP_0211, - TCPIP_TCP_0212, TCPIP_TCP_0210, ^TCPIP_TCP_0210, ^TCPIP_TCP_0212, TCPIP_DHCP_0211] diff --git a/components/test/CIConfigs/Function_TCPIP_03.yml b/components/test/CIConfigs/Function_TCPIP_03.yml deleted file mode 100644 index 0c4ac3752..000000000 --- a/components/test/CIConfigs/Function_TCPIP_03.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [TCPIP_DHCP_0210, TCPIP_UDP_0202, TCPIP_TCP_0411, ^TCPIP_IP_0102, ^TCPIP_UDP_0105, - ^TCPIP_UDP_0107, ^TCPIP_UDP_0106, ^TCPIP_UDP_0101, ^TCPIP_DHCP_0102, ^TCPIP_DHCP_0103, - ^TCPIP_UDP_0108, ^TCPIP_IGMP_0201, ^TCPIP_IGMP_0203, ^TCPIP_IGMP_0202, ^TCPIP_IGMP_0204, - TCPIP_UDP_0114, TCPIP_UDP_0113, TCPIP_UDP_0112, ^TCPIP_TCP_0201, ^TCPIP_TCP_0206, - ^TCPIP_TCP_0207, TCPIP_TCP_0106, TCPIP_TCP_0107, TCPIP_TCP_0104, TCPIP_TCP_0105, - TCPIP_TCP_0102, TCPIP_TCP_0103, TCPIP_TCP_0101, ^TCPIP_TCP_0116, ^TCPIP_TCP_0114] diff --git a/components/test/CIConfigs/Function_TCPIP_04.yml b/components/test/CIConfigs/Function_TCPIP_04.yml deleted file mode 100644 index f8bdb264b..000000000 --- a/components/test/CIConfigs/Function_TCPIP_04.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [^TCPIP_TCP_0115, ^TCPIP_TCP_0112, ^TCPIP_TCP_0113, ^TCPIP_TCP_0110, ^TCPIP_TCP_0111, - ^TCPIP_DHCP_0209, ^TCPIP_DHCP_0208, ^TCPIP_DHCP_0207, ^TCPIP_DHCP_0206, ^TCPIP_DHCP_0205, - ^TCPIP_DHCP_0204, ^TCPIP_DHCP_0203, ^TCPIP_DHCP_0202, ^TCPIP_DHCP_0201, TCPIP_TCP_0204, - TCPIP_TCP_0207, TCPIP_TCP_0206, TCPIP_TCP_0201, ^TCPIP_DHCP_0101, TCPIP_TCP_0203, - TCPIP_TCP_0202, TCPIP_TCP_0208, TCPIP_DHCP_0206, TCPIP_DHCP_0207, TCPIP_DHCP_0204, - TCPIP_DHCP_0205, TCPIP_DHCP_0202, TCPIP_DHCP_0203, ^TCPIP_TCP_0204, TCPIP_DHCP_0201] diff --git a/components/test/CIConfigs/Function_TCPIP_05.yml b/components/test/CIConfigs/Function_TCPIP_05.yml deleted file mode 100644 index 21b3b7a6d..000000000 --- a/components/test/CIConfigs/Function_TCPIP_05.yml +++ /dev/null @@ -1,8 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [^TCPIP_TCP_0208, TCPIP_DHCP_0208, TCPIP_DHCP_0209, ^TCPIP_TCP_0412, ^TCPIP_TCP_0411, - ^TCPIP_UDP_0112, ^TCPIP_UDP_0114, ^TCPIP_UDP_0202, ^TCPIP_IGMP_0103, ^TCPIP_IP_0101, - TCPIP_TCP_0115, TCPIP_TCP_0114, TCPIP_TCP_0116, TCPIP_TCP_0111, TCPIP_TCP_0113, - TCPIP_TCP_0112] diff --git a/components/test/CIConfigs/Function_TCPIP_07.yml b/components/test/CIConfigs/Function_TCPIP_07.yml deleted file mode 100644 index 2a047b8e1..000000000 --- a/components/test/CIConfigs/Function_TCPIP_07.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC1] -Filter: -- Add: - ID: [TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, TCPIP_ICMP_0101, - ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, ^TCPIP_UDP_0303, - ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, ^TCPIP_UDP_0302, - ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, ^TCPIP_UDP_0301, - TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, TCPIP_DNS_0102, - TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101, TCPIP_DNS_0101] diff --git a/components/test/CIConfigs/Function_TCPIP_12.yml b/components/test/CIConfigs/Function_TCPIP_12.yml deleted file mode 100644 index e9f5b72a5..000000000 --- a/components/test/CIConfigs/Function_TCPIP_12.yml +++ /dev/null @@ -1,6 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC1] -Filter: -- Add: - ID: [TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, TCPIP_UDP_0303, - TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103, TCPIP_DNS_0103] diff --git a/components/test/CIConfigs/Function_WIFI_01.yml b/components/test/CIConfigs/Function_WIFI_01.yml deleted file mode 100644 index da9bfecd5..000000000 --- a/components/test/CIConfigs/Function_WIFI_01.yml +++ /dev/null @@ -1,10 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [^WIFI_CONN_0601, ^WIFI_ADDR_0101, WIFI_SCAN_0103, WIFI_SCAN_0102, WIFI_SCAN_0101, - WIFI_SCAN_0105, WIFI_SCAN_0104, WIFI_CONN_0201, WIFI_CONN_0904, ^WIFI_CONN_0201, - ^WIFI_SCAN_0102, ^WIFI_SCAN_0103, ^WIFI_SCAN_0104, ^WIFI_SCAN_0105, ^WIFI_ADDR_0102, - WIFI_CONN_0401, ^WIFI_CONN_0103, WIFI_ADDR_0101, WIFI_ADDR_0102, WIFI_CONN_0301, - ^WIFI_CONN_0801, WIFI_CONN_0104, ^WIFI_CONN_0301, WIFI_CONN_0501, WIFI_CONN_0502, - ^WIFI_CONN_0401, WIFI_MODE_0101, WIFI_MODE_0103, WIFI_MODE_0102, ^WIFI_CONN_0904] diff --git a/components/test/CIConfigs/Function_WIFI_02.yml b/components/test/CIConfigs/Function_WIFI_02.yml deleted file mode 100644 index e1b61a20e..000000000 --- a/components/test/CIConfigs/Function_WIFI_02.yml +++ /dev/null @@ -1,7 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [^WIFI_CONN_0901, WIFI_CONN_0601, WIFI_CONN_0901, WIFI_CONN_0503, ^WIFI_CONN_0104, - WIFI_CONN_0101, WIFI_CONN_0102, WIFI_CONN_0103, WIFI_CONN_0801, ^WIFI_CONN_0101, - ^WIFI_CONN_0503, ^WIFI_CONN_0502, ^WIFI_CONN_0501, ^WIFI_SCAN_0101] diff --git a/components/test/CIConfigs/Function_WIFI_06.yml b/components/test/CIConfigs/Function_WIFI_06.yml deleted file mode 100644 index f3db504c9..000000000 --- a/components/test/CIConfigs/Function_WIFI_06.yml +++ /dev/null @@ -1,7 +0,0 @@ -Config: {execute count: 1, execute order: in order} -DUT: [SSC2, SSC1] -Filter: -- Add: - ID: [WIFI_PHY_0403, WIFI_SCAN_0301, WIFI_SCAN_0303, WIFI_SCAN_0304, WIFI_SCAN_0302, - WIFI_SCAN_0201, WIFI_PHY_0402, WIFI_PHY_0401, WIFI_PHY_0407, WIFI_PHY_0406, - WIFI_PHY_0405, WIFI_PHY_0404, WIFI_PHY_0408] diff --git a/components/test/README.md b/components/test/README.md deleted file mode 100644 index 1d0c4cfbd..000000000 --- a/components/test/README.md +++ /dev/null @@ -1,4 +0,0 @@ - -# Note: The test cases in this folder are for Espressif internal use. - -# Goto internal project wiki Testing page for detail about this folder. diff --git a/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py b/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py deleted file mode 100755 index e11ae6f1d..000000000 --- a/components/test/TestCaseScript/ATFunc/CmdInterruptTest.py +++ /dev/null @@ -1,130 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -from TCAction import CmdHandler -import time - - -ATCmdList = ["GMR", - "UART=115200,8,1,0,0", - "CWMODE=3", - "CWJAP=\"TL_WR845N_T\",\"1234567890\"", - "CWLAP", - "CWQAP", - "CWSAP=\"asdf\",\"123456789\",5,3", - "CWLIF", - "CWDHCP=3", - "AT+CWAUTOCONN", - "CIPSTAMAC=\"18:fe:34:97:f3:43\"", - "CIPAPMAC=\"1a:fe:34:97:f3:43\"", - "CIPSTA=\"192.168.1.2\"", - "CIPAP=\"192.168.4.1\"", - "CIPSTATUS", - "CIPSTART=\"UDP\",\"192.168.1.4\",6531,7895,1", - "CIPSTART=\"TCP\",\"192.168.1.4\",6531", - "CIPCLOSE", - "CIFSR", - "CIPMUX=1", - "CIPSERVER=1,4567", - "CIPMODE=0", - "CIPSTO=7200", - "PING=\"192.168.1.4\""] - - -class CmdInterruptTest(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=20, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def load_and_exe_one_step(self, checker_stings, test_action_strings, fail_string, - check_freq=0.1, check_time=50, sleep_time=0.1): - # set checker for next executing step - checkers = CmdHandler.parse_results(checker_stings, self.test_env) - self.result_cntx.set_next_step(checkers, check_time, check_freq) - # execute 1 step - for action_string in test_action_strings: - test_action = CmdHandler.parse_action(action_string, self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - time.sleep(sleep_time) - - ret = self.wait_to_execute() - - if ret is False: # # timeout - self.result_cntx.set_result(fail_string) - if ret == check_time: - self.result_cntx.set_result(fail_string) - ret = False - - self.require_waiting() - - return ret - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # step 1, sleep time 0.1 - for cmd1 in ATCmdList: - # check if match CMD - AT - busy - OK/ERROR pattern - checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] - test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - # check again if match CMD - OK/ERROR - AT - OK pattern - checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] - test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - NativeLog.add_trace_critical("CMD Fail: AT+%s; sleep time is 0.1" % cmd1) - - # step 2, sleep time 0 - for cmd1 in ATCmdList: - # check if match CMD - AT - busy - OK/ERROR pattern - checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] - test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - # check again if match CMD - OK/ERROR - AT - OK pattern - checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] - test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - NativeLog.add_trace_critical("CMD Fail: AT+%s; sleep time is 0" % cmd1) - - # step 3, cat string - for cmd1 in ATCmdList: - # check if match CMD - AT - busy - OK/ERROR pattern - checker_stings = ["ATR AT1 C busy", "ATR AT1 R *"] - test_action_string = ["ATSO AT1 AT+%s\r\nAT\r\n" % cmd1] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - # check again if match CMD - OK/ERROR - AT - OK pattern - checker_stings = ["ATR AT1 R *", "ATR AT1 C AT L OK"] - test_action_string = ["ATS AT1 AT+%s" % cmd1, "ATS AT1 AT"] - fail_string = "Fail, Fail on step 1" - if self.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, sleep_time=0.1) is False: - NativeLog.add_trace_critical("CMD Fail: AT+%s; cat string" % cmd1) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATFunc/LAP.py b/components/test/TestCaseScript/ATFunc/LAP.py deleted file mode 100644 index b389e48c0..000000000 --- a/components/test/TestCaseScript/ATFunc/LAP.py +++ /dev/null @@ -1,64 +0,0 @@ -from TCAction import TCActionBase -import time -import re - - -class LAP(TCActionBase.CommonTCActionBase): - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - # restore set LAPOPT - if self.load_and_exe_one_step(["R AT1 L OK"], - ["ATS AT1 AT+CWLAPOPT=0,127"], - "Failed to set LAP option") is False: - return - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # step 1. set LAPOPT - if self.load_and_exe_one_step(["R AT1 L OK"], - ["ATS AT1 AT+CWLAPOPT=1,4"], - "Failed to set LAP option") is False: - return - - # step 2. LAP - if self.load_and_exe_one_step(["R AT1 A :([[^OK]]+)OK"], # [] is list generator, use [[]] for [] - ["ATS AT1 AT+CWLAP"], - "Failed to LAP") is False: - return - lap_result = self.get_parameter("lap_result") - rssi_list = re.findall("CWLAP:\((-\d+)\)", lap_result) - if len(rssi_list) > 1: - for i in range(len(rssi_list)-1): - if int(rssi_list[i]) < int(rssi_list[i+1]): - break - else: - self.result_cntx.set_result("Succeed") - else: - self.result_cntx.set_result("Succeed") - pass - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - pass - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/ATFunc/SendDataValidation.py b/components/test/TestCaseScript/ATFunc/SendDataValidation.py deleted file mode 100755 index 27f1e7f7c..000000000 --- a/components/test/TestCaseScript/ATFunc/SendDataValidation.py +++ /dev/null @@ -1,161 +0,0 @@ -from TCAction import TCActionBase -from TCAction import CmdHandler -from NativeLog import NativeLog -import time -import threading -import sys -reload(sys) -sys.setdefaultencoding('iso-8859-1') # # use encoding that with 1 Byte length and contain 256 chars - - -VALIDATION_STRING = "".join([chr((m+65) % 256) for m in range(256)]) # make it start from 'A' - - -class ResultCheckCntx(TCActionBase.ResultCheckContext): - - def __init__(self, test_action, test_env, name): - TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) - pass - - def run(self): - tx_result = -1 - rx_result = -1 - - while True: - exit_flag = self.wait_exit_event(2) - # force exit - if exit_flag is True: - break - try: - self.lock_data() - rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) - tx_port = filter(lambda x: x[0] == "SOC2", self.data_cache) - finally: - self.unlock_data() - - if len(rx_port) == 1: - data = rx_port[0][1] - rx_result = data.find(VALIDATION_STRING) - if len(tx_port) == 1: - data = tx_port[0][1] - tx_result = data.find(VALIDATION_STRING) - - if tx_result != -1: - self.test_action.tx_check_done.set() - if rx_result != -1: - self.test_action.rx_check_done.set() - - -class SendDataValidation(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.timestamp = time.strftime("%d%H%M%S", time.localtime()) - self.tx_check_done = threading.Event() - self.rx_check_done = threading.Event() - - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - # enable target TCP TX - tx_enable = self.tx_enable - # enable target TCP RX - rx_enable = self.rx_enable - # transparent mode select - is_transparent_mode = self.is_transparent_mode - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step1 create PC server - checker_stings = ["SOCR SOC_COM L OK"] - test_action_string = ["SOC SOC1 LISTEN "] - fail_string = "Fail, Fail on create PC server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 target connect, switch to transparent - checker_stings = ["SOCR SOC1 C +ACCEPT", "ATR AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] - fail_string = "Fail, Fail on connect to PC server" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["SOCR SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC2"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # set to transparent mode - if is_transparent_mode is True: - checker_stings = ["ATR AT1 L OK"] - test_action_strings = ["ATS AT1 AT+CIPMODE=1"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["ATR AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - else: - checker_stings = ["ATR AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=256"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 - - # switch to new result check context - self.result_cntx.stop_thread() - self.result_cntx.join() - self.result_cntx = ResultCheckCntx(self, self.test_env, self.tc_name) - self.result_cntx.start() - - # step 3 send data - if rx_enable is True: - test_action = CmdHandler.parse_action("SOC SOC2 SEND 256", self.test_env) - CmdHandler.do_actions(test_action[0], self.test_env) - self.rx_check_done.wait(5) - if self.rx_check_done.isSet() is False: - # rx fail - return - # flush all data - self.result_cntx.data_flush() - self.tx_check_done.clear() - - if tx_enable is True: - test_action = CmdHandler.parse_action("ATSN AT1 256", self.test_env) - CmdHandler.do_actions(test_action[0], self.test_env) - self.tx_check_done.wait(5) - if self.tx_check_done.isSet() is False: - # tx fail - return - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - pass - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATFunc/UARTTest.py b/components/test/TestCaseScript/ATFunc/UARTTest.py deleted file mode 100644 index 184f440d4..000000000 --- a/components/test/TestCaseScript/ATFunc/UARTTest.py +++ /dev/null @@ -1,164 +0,0 @@ -import socket -import serial - -from TCAction import PerformanceTCBase -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class UARTTest(PerformanceTCBase.PerformanceTCBase): - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.test_mode = "command" - self.baudrate = None - self.bytesize = None - self.parity = None - self.stopbits = None - self.xonxoff = None - self.rtscts = None - - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - # restore UART config - self.restore_serial_port("AT1") - PerformanceTCBase.PerformanceTCBase.cleanup(self) - - STOP_BITS = { - 1: serial.STOPBITS_ONE, - 2: serial.STOPBITS_ONE_POINT_FIVE, - 3: serial.STOPBITS_TWO, - } - BYTE_SIZE = { - 5: serial.FIVEBITS, - 6: serial.SIXBITS, - 7: serial.SEVENBITS, - 8: serial.EIGHTBITS, - } - PARITY = { - 0: serial.PARITY_NONE, - 1: serial.PARITY_ODD, - 2: serial.PARITY_EVEN, - } - RTSCTS = {} - - def config_serial_port(self): - port = self.test_env.get_port_by_name("AT1") - kwargs = dict() - if self.baudrate is not None: - kwargs["baudrate"] = self.baudrate - if self.bytesize is not None: - kwargs["bytesize"] = self.BYTE_SIZE[self.bytesize] - if self.parity is not None: - kwargs["parity"] = self.PARITY[self.parity] - if self.stopbits is not None: - kwargs["stopbits"] = self.STOP_BITS[self.stopbits] - if self.xonxoff is not None: - kwargs["xonxoff"] = self.xonxoff - if self.rtscts is not None: - kwargs["rtscts"] = self.rtscts - NativeLog.add_prompt_trace("[change PC UART config] %s" % kwargs) - port.reconfig(**kwargs) - - def send_commands(self): - # first change UART config - self.config_serial_port() - # do send commands - for i in range(1, 256): - cmd = bytes().join([chr(x % 256) for x in range(i)]) - try: - self.serial_write_line("AT1", cmd) - except StandardError, e: - NativeLog.add_exception_log(e) - pass - self.flush_data("AT1") - # restore UART config - self.restore_serial_port("AT1") - - def send_data(self): - # create TCP connection and enter send mode - pc_ip = self.get_parameter("pc_ip") - tcp_port = self.get_parameter("test_tcp_port1") - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, tcp_port)) - server_sock.settimeout(10) - server_sock.listen(5) - self.serial_write_line("AT1", "AT+CIPSTART=\"TCP\",\"%s\",%s" % (pc_ip, tcp_port)) - self.check_response("AT1", "OK") - sock, addr = server_sock.accept() - server_sock.close() - self.serial_write_line("AT1", "AT+CIPSEND=1460") - self.check_response("AT1", ">") - # change UART config - self.config_serial_port() - # send data - try: - self.serial_write("AT1", bytes().join([chr(x % 256) for x in range(146000)])) - except StandardError, e: - NativeLog.add_exception_log(e) - pass - sock.send("A"*1460) - # restore UART config - sock.close() - self.restore_serial_port("AT1") - - def pass_through_mode(self): - # create TCP connection and enter pass through mode - pc_ip = self.get_parameter("pc_ip") - tcp_port = self.get_parameter("test_tcp_port1") - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, tcp_port)) - server_sock.settimeout(10) - server_sock.listen(5) - self.serial_write_line("AT1", "AT+CIPMODE=1") - self.check_response("AT1", "OK") - self.serial_write_line("AT1", "AT+CIPSTART=\"TCP\",\"%s\",%s" % (pc_ip, tcp_port)) - self.check_response("AT1", "OK") - sock, addr = server_sock.accept() - server_sock.close() - self.serial_write_line("AT1", "AT+CIPSEND") - self.check_response("AT1", ">") - # change UART config - self.config_serial_port() - # send data - try: - self.serial_write("AT1", bytes().join([chr(x % 256) for x in range(146000)])) - except StandardError, e: - NativeLog.add_exception_log(e) - pass - sock.send("A" * 1460) - # restore UART config - sock.close() - self.restore_serial_port("AT1") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - # test sending command - try: - if self.test_mode == "command": - self.send_commands() - elif self.test_mode == "send_data": - self.send_data() - elif self.test_mode == "pass_through": - self.pass_through_mode() - else: - raise StandardError("test mode not supported: %s" % self.test_mode) - self.set_result("Succeed") - except StandardError, e: - NativeLog.add_exception_log(e) - self.set_result("Failed") - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/ATFunc/__init__.py b/components/test/TestCaseScript/ATFunc/__init__.py deleted file mode 100755 index 5a3bbc44d..000000000 --- a/components/test/TestCaseScript/ATFunc/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -__all__ = ["TCPClientMulti", "TCPClientSingle", "TCPServerMulti", - "TCPTransparent", "UDPMulti", "UDPSingle"] \ No newline at end of file diff --git a/components/test/TestCaseScript/ATStress/ATPassThrough.py b/components/test/TestCaseScript/ATStress/ATPassThrough.py deleted file mode 100755 index 5149ffe3d..000000000 --- a/components/test/TestCaseScript/ATStress/ATPassThrough.py +++ /dev/null @@ -1,179 +0,0 @@ -import time - -from TCAction import TCActionBase -from NativeLog import NativeLog - - -BEACON_TIMEOUT = 3 -WAIT_FOR_RECONNECT = 20 - - -class ATPassThrough(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.do_scan = True - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - tx_enable = self.tx_enable - rx_enable = self.rx_enable - att_set = self.att_set - do_scan = self.do_scan - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPClientMulti script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # step0, set att and join ap - fail_string = "Fail, Fail on JAP, set to single link mode" - - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT 1"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 C ready"] - test_action_string = ["ATS AT1 AT+RST"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATS AT1 AT+CWMODE=1"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATC AT1 CWJAP "] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATS AT1 AT+CIPMUX=0"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step1, create TCP connection and enter pass through mode - fail_string = "Fail, Fail on create server, create connection or enter pass through mode" - - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 LISTEN "] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] - test_action_string = ["ATC AT1 CIPSTART \"TCP\" "] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_strings = ["ATS AT1 AT+CIPMODE=1"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC2"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step2 - # while - # set att from, send data on both direction - # if TCP connection disconnected, then set att to 1, wait reconnect succeed, continue test - for i in xrange(test_count): - for _att in att_set: - - # set att - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT %d" % _att] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - time.sleep(BEACON_TIMEOUT) - - # do scan to get ssid - if do_scan is True: - checker_stings = [] - test_action_string = ["ATSO AT1 +++"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATC AT1 CWLAP "] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # send data - checker_stings = [] - test_action_string = [] - if tx_enable is True: - checker_stings += ["P SOC2 RL %d" % at_send_length] - test_action_string += ["ATSN AT1 %d" % at_send_length] - if rx_enable is True: - checker_stings += ["P AT1 RL %d" % soc_send_length] - test_action_string += ["SOC SOC2 SEND %d" % soc_send_length] - - if len(test_action_string) > 0: - if self.load_and_exe_one_step(checker_stings, test_action_string, "", - check_freq=1, check_time=30) is False: - # send data fail - NativeLog.add_prompt_trace("Failed to send data @ att %d" % _att) - # set att back to 1 - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT 1"] - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - # wait for reconnect - time.sleep(WAIT_FOR_RECONNECT) - fail_string = "Failed, failed to accept socket" - checker_stings = ["SOCR SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC2"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - break - pass - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/ATSleep.py b/components/test/TestCaseScript/ATStress/ATSleep.py deleted file mode 100644 index 586862a77..000000000 --- a/components/test/TestCaseScript/ATStress/ATSleep.py +++ /dev/null @@ -1,251 +0,0 @@ -import random -import os -import time - -from TCAction import TCActionBase, PerformanceTCBase -from NativeLog import NativeLog -from Utility import MakeFolder -from Utility import MultimeterUtil - -LOG_PATH = os.path.join("AT_LOG", "SLEEP") - -SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] -SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) - -SAMPLE_RATE_SLEEP_MODE_CHANGE = 0.002 -SAMPLE_NUM_SLEEP_MODE_CHANGE = 256 - -SAMPLE_RATE = 0.002 -SAMPLE_NUM = 512 -MAX_VALUE = 1 -Y_AXIS_LABEL = "Current (mA)" -GPIO_EDGE_DELAY = 120 # 20 ms - -NONE_SLEEP_MIN_CUR = 30 -LIGHT_SLEEP_MIN_CUR = 1.5 -MODEM_SLEEP_MIN_CUR = 20 - -GPIO_WAKE_UP = 15 - -AT_WAKE_UP_IND_PIN = 14 -AT_WAKE_UP_PIN = 12 - - -class ATSleep(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.test_mode = "mode_change" - self.test_count = 100 - self.sleep_mode = SLEEP_MODE_LIST - self.sleep_wake_pin = AT_WAKE_UP_PIN - self.sleep_wakeup_ind_pin = AT_WAKE_UP_IND_PIN - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, - "AT_AUTO_SLEEP_%s_%s" % - (self.test_mode, - time.strftime("%d%H%M%S", time.localtime())))) - self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) - - @staticmethod - def find_min_items(item_list, count): - assert count < len(item_list) - min_items = [] - for i in range(count): - min_val = min(item_list) - min_items.append(min_val) - item_list.remove(min_val) - return min_items - - def sleep_mode_change(self, sleep_mode): - result = True - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] %s start" % sleep_mode) - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - # set sleep mode - self.serial_write_line("AT1", "AT+SLEEP=%d" % sleep_mode_enum) - self.check_response("AT1", "OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] mode set") - time.sleep(10) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE_SLEEP_MODE_CHANGE, - sample_num=SAMPLE_NUM_SLEEP_MODE_CHANGE, - max_value=MAX_VALUE) - # do check measure - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] measure done, average min current %f" % average_val) - - if sleep_mode == "none_sleep": - if average_val < NONE_SLEEP_MIN_CUR: - result = False - elif sleep_mode == "light_sleep": - if average_val > LIGHT_SLEEP_MIN_CUR: - result = False - elif sleep_mode == "modem_sleep": - if average_val > MODEM_SLEEP_MIN_CUR or average_val < LIGHT_SLEEP_MIN_CUR: - result = False - if result is False: - NativeLog.add_trace_critical("[AutoSleep][ModeChange] %s failed" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, "%s_fail" % sleep_mode, Y_AXIS_LABEL) - - time.sleep(5) - return result - - def sleep_current_measure(self, sleep_mode): - result = True - - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] %s start" % sleep_mode) - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - # set sleep mode - self.serial_write_line("AT1", "AT+SLEEP=%d" % sleep_mode_enum) - self.check_response("AT1", "OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] set mode done") - time.sleep(10) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, sleep_mode, Y_AXIS_LABEL) - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] measure done") - return result - - def light_sleep_wakeup(self): - result = True - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] start") - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(1) - self.serial_write_line("AT1", "") - time.sleep(1) - self.check_response("SSC2", "+GPIO_SET:OK", timeout=1) - - for i in range(10): - self.serial_write_line("SSC2", "gpio -G -p %d" % self.sleep_wakeup_ind_pin) - if self.check_response("SSC2", "+GPIO_GET:0", timeout=0.73) is True: - break - else: - NativeLog.add_prompt_trace("AT Sleep wakeup pin is not correct when in sleep") - - # check if respond to uart - self.flush_data("AT1") - for i in range(60): - self.serial_write("AT1", "a") - time.sleep(0.43) - time.sleep(0.1) - respond_data = self.serial_read_data("AT1") - if len(respond_data) >= 60: - NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " - "Failed when recving data during sleep, %d" % len(respond_data)) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on sleep mode done") - - # change GPIO to make target wakeup - self.serial_write_line("SSC2", "gpio -L -p %d -t 0" % GPIO_WAKE_UP) - self.check_response("SSC2", "+GPIO_SET:OK") - time.sleep(0.01) - - for i in range(3): - self.serial_write_line("SSC2", "gpio -G -p %d" % self.sleep_wakeup_ind_pin) - if self.check_response("SSC2", "+GPIO_GET:1") is False: - NativeLog.add_prompt_trace("AT Sleep wakeup pin is not correct when wakeup") - - self.serial_write_line("AT1", "") - time.sleep(1) - self.flush_data("AT1") - for i in range(60): - self.serial_write("AT1", "a") - time.sleep(0.043) - time.sleep(0.1) - respond_data = self.serial_read_data("AT1") - if len(respond_data) < 60: - NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " - "Failed when recving data during wakeup, %d" % len(respond_data)) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on wakeup mode done") - self.serial_write_line("AT1", "") - # restore GPIO level - self.serial_write_line("SSC2", "gpio -L -p %d -t 1" % GPIO_WAKE_UP) - time.sleep(2) - return result - - def cleanup(self): - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - self.serial_write_line("AT1", "") - self.serial_write_line("AT1", "AT+RST") - self.check_response("SSC2", "+GPIO_SET:OK") - self.check_response("AT1", "ready") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - - try: - test_mode = self.test_mode - test_count = self.test_count - sleep_mode = self.sleep_mode - except StandardError, e: - return - - # make sure enter modem sleep mode before start test - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - self.serial_write_line("AT1", "AT+RST") - self.check_response("SSC2", "+GPIO_SET:OK") - self.check_response("AT1", "ready") - self.check_response("AT1", "WIFI GOT IP") - # set AT light sleep wakeup pin - self.serial_write_line("AT1", "AT+WAKEUPGPIO=1,%d,0" % self.sleep_wake_pin) - self.check_response("AT1", "OK") - - # start test - if "mode_change" in test_mode: - for i in range(test_count): - result = self.sleep_mode_change(random.choice(SLEEP_MODE_LIST)) - - elif "measure_current" in test_mode: - for i in range(test_count): - for mode in sleep_mode: - result = self.sleep_current_measure(mode) - pass - elif "gpio_wakeup" in test_mode: - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - # config wakeup gpio - self.serial_write_line("AT1", "AT+WAKEUPGPIO=1,%d,0,%d,1" % (self.sleep_wake_pin, self.sleep_wakeup_ind_pin)) - self.check_response("AT1", "OK") - # set sleep mode - self.serial_write_line("AT1", "AT+SLEEP=%d" % SLEEP_MODE["light_sleep"]) - self.check_response("AT1", "OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - for i in range(test_count): - result = self.light_sleep_wakeup() - pass - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/ATStress/SoftAPServer.py b/components/test/TestCaseScript/ATStress/SoftAPServer.py deleted file mode 100755 index 7522658f1..000000000 --- a/components/test/TestCaseScript/ATStress/SoftAPServer.py +++ /dev/null @@ -1,308 +0,0 @@ -from TCAction import PerformanceTCBase -import time -import socket -import threading -import Queue -import re -import random -from NativeLog import NativeLog - - -SEND_CMD = ("CIPSEND, CIPSENDBUF", "CIPSENDEX") - - -class RecvThread(threading.Thread): - def __init__(self, test_action): - threading.Thread.__init__(self) - self.setDaemon(True) - self.test_action = test_action - self.exit_flag = threading.Event() - pass - - def run(self): - data = "" - ipd_line = re.compile("IPD,\d,\d+:") - recv_bytes_line = re.compile("Recv \d+ bytes") - allow_send_line = re.compile("OK\r\n>") - send_ok_line = re.compile("SEND OK") - while self.exit_flag.is_set() is False: - flush_pos = 0 - data += self.test_action.serial_read_data("AT1") - # do process IPD data - match_set = ipd_line.findall(data) - for match_line in match_set: - link_id = match_line[4] - flush_pos = data.find(match_line) + len(match_line) - self.test_action.send_queue.put(link_id, 1) - pass - # do process send > - match = allow_send_line.search(data) - if match is not None: - match_line = match.group() - self.test_action.add_info_log("find OK >") - self.test_action.send_allow_evt.set() - pos = data.find(match_line) + len(match_line) - flush_pos = pos if pos > flush_pos else flush_pos - # do process Recv xx bytes - match = recv_bytes_line.search(data) - if match is not None: - match_line = match.group() - self.test_action.add_info_log("find Recv xx bytes") - self.test_action.recv_data_evt.set() - pos = data.find(match_line) + len(match_line) - flush_pos = pos if pos > flush_pos else flush_pos - - match = send_ok_line.search(data) - if match is not None: - match_line = match.group() - self.test_action.add_info_log("find send ok") - self.test_action.send_ok_evt.set() - pos = data.find(match_line) + len(match_line) - flush_pos = pos if pos > flush_pos else flush_pos - # pass - - # flush processed data - if flush_pos > 0: - data = data[flush_pos:] - - pass - - def exit(self): - self.exit_flag.set() - pass - - -class TCPClientThread(threading.Thread): - send_char = "A" - sync_lock = threading.Lock() - - def __init__(self, test_action, pc_ip, target_ip, target_port, request_len, response_len, client_id, - connect_timeout, recv_timeout): - threading.Thread.__init__(self) - self.setDaemon(True) - self.exit_flag = threading.Event() - self.test_action = test_action - self.pc_ip = pc_ip - self.target_ip = target_ip - self.target_port = target_port - self.request_len = request_len - self.response_len = response_len - self.client_id = client_id - self.connect_timeout = connect_timeout - self.recv_timeout = recv_timeout - pass - - @classmethod - def get_send_char(cls): - with cls.sync_lock: - send_char = cls.send_char - cls.send_char = chr(ord(send_char) + 1) if ord(send_char) < ord("Z") else "A" - return send_char - pass - - def run(self): - while self.exit_flag.is_set() is False: - exception_occurred = False - client_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - client_sock.bind((self.pc_ip, 0)) - client_sock.settimeout(20) - time1 = time.time() - name = client_sock.getsockname() - - try: - client_sock.connect((self.target_ip, self.target_port)) - except StandardError, e: - exception_occurred = True - self.test_action.add_critical_log("failed to connect succeed within 2 seconds %s, %d" - % (name[0], name[1])) - client_sock.close() - - time2 = time.time() - time1 - if exception_occurred is True: - self.test_action.add_critical_log("connect timeout %f; ip is %s, port is %d" - % (time2, name[0], name[1])) - continue - if time2 > self.connect_timeout: - self.test_action.add_critical_log("connect time too long %f; ip is %s, port is %d" - % (time2, name[0], name[1])) - - time.sleep(float(random.randint(0, 30))/100) - send_char = self.get_send_char() - data = send_char * self.request_len - try: - client_sock.send(data) - except StandardError: - NativeLog.add_trace_critical("send fail") - # try: - # data = client_sock.recv(1) - # except socket.error, e: - # self.handle_processing_fail("failed to receive data within 2 seconds") - data_received = 0 - time1 = time.time() - while data_received < self.response_len: - try: - data = client_sock.recv(4*1024) - except StandardError, e: - exception_occurred = True - break - data_received += len(data) - - time2 = time.time() - time1 - if exception_occurred is True or time2 > self.recv_timeout: - self.test_action.add_critical_log("receive time too long %f; ip is %s, port is %d"\ - % (time2, name[0], name[1])) - client_sock.close() - time.sleep(float(random.randint(0, 30))/100) - pass - pass - - def exit(self): - self.exit_flag.set() - pass - - -class SendThread(threading.Thread): - def __init__(self, test_action, test_count, send_cmd, response_len, check_send_ok): - threading.Thread.__init__(self) - self.setDaemon(True) - self.test_action = test_action - self.test_count = test_count - self.send_cmd = send_cmd - self.response_len = response_len - self.check_send_ok = check_send_ok - pass - - def run(self): - send_char = "a" - for i in xrange(self.test_count): - link_id = self.test_action.send_queue.get(1) - - self.test_action.send_allow_evt.clear() - self.test_action.serial_write_line("AT1", "AT+%s=%s,%d" % (self.send_cmd, link_id, self.response_len)) - self.test_action.add_info_log("write CIPSEND cmd") - - self.test_action.send_allow_evt.wait(10) - if self.test_action.send_allow_evt.is_set() is False: - self.test_action.add_critical_log("Failed to find OK > in 10s, test break") - break - self.test_action.send_allow_evt.clear() - - data = send_char * self.response_len - send_char = chr(ord(send_char) + 1) if ord(send_char) < ord("z") else "a" - self.test_action.recv_data_evt.clear() - self.test_action.send_ok_evt.clear() - self.test_action.serial_write("AT1", data) - self.test_action.add_info_log("data write done") - self.test_action.recv_data_evt.wait(10) - if self.test_action.recv_data_evt.is_set() is False: - self.test_action.add_critical_log("Failed to find Recv xx bytes in 10s, test break") - break - self.test_action.recv_data_evt.clear() - # if self.test_action.send_cmd == "CIPSEND": - if self.check_send_ok is True: - self.test_action.send_ok_evt.wait(10) - if self.test_action.send_ok_evt.is_set() is False: - self.test_action.add_critical_log("Failed to find SEND OK in 10s, test break") - break - self.test_action.add_info_log("send ok") - self.test_action.send_ok_evt.clear() - pass - pass - - -class SoftAPServer(PerformanceTCBase.PerformanceTCBase): - def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # init value for ip and port - self.pc_ip = "pc_ip" - self.server_port = "test_tcp_port1" - self.send_cmd = "CIPSEND" - self.baudrate = 115200 - self.rtscts = 3 - self.test_count = 1000 - self.request_len = 500 - self.response_len = 1600 - self.check_send_ok = True - self.concurrent_connections = 5 - self.connect_timeout = 3 - self.receive_timeout = 2 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.send_queue = Queue.Queue(maxsize=100) - self.send_allow_evt = threading.Event() - self.recv_data_evt = threading.Event() - self.send_ok_evt = threading.Event() - - pass - - @staticmethod - def add_critical_log(data): - NativeLog.add_trace_critical(data+"\r\n") - pass - - @staticmethod - def add_info_log(data): - NativeLog.add_trace_info(data) - - def process(self): - # step0, use initial condition AP3 (8266 as AP, PC connected to 8266, multiple connection) - pc_ip = self.get_parameter(self.pc_ip) - target_ip = self.get_parameter("target_ip") - server_port = self.get_parameter(self.server_port) - send_cmd = self.send_cmd - test_count = self.test_count - baudrate = self.baudrate - rtscts = self.rtscts - concurrent_connections = self.concurrent_connections - check_send_ok = self.check_send_ok - connect_timeout = self.connect_timeout - receive_timeout = self.receive_timeout - - self.serial_write_line("AT1", "AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)) - self.check_response("AT1", "OK\r\n") - self.reconfig_serial_port("AT1", baudrate, rtscts) - # step1, create server on 8266, create client thread - self.serial_write_line("AT1", "AT+CIPSERVER=1,%d" % server_port) - self.check_response("AT1", "OK") - - recv_thread = RecvThread(self) - send_thread = SendThread(self, test_count, send_cmd, self.response_len, check_send_ok) - send_thread.start() - recv_thread.start() - client_thread_list = [None] * concurrent_connections - for i in range(concurrent_connections): - client_thread_list[i] = TCPClientThread(self, pc_ip, target_ip, server_port, - self.request_len, self.response_len, i, - connect_timeout, receive_timeout) - client_thread_list[i].start() - pass - - # step3, wait sending thread join - send_thread.join() - - recv_thread.exit() - recv_thread.join() - - for i in range(concurrent_connections): - client_thread_list[i].exit() - client_thread_list[i].join() - pass - - self.serial_write_line("AT1", "AT+UART_CUR=115200,8,1,0,3") - self.check_response("AT1", "OK\r\n") - self.restore_serial_port("AT1") - self.set_result("Succeed") - pass - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/ATStress/TCPClientMulti.py b/components/test/TestCaseScript/ATStress/TCPClientMulti.py deleted file mode 100755 index 610a55cbc..000000000 --- a/components/test/TestCaseScript/ATStress/TCPClientMulti.py +++ /dev/null @@ -1,116 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class TCPClientMulti(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.max_conn = test_env.get_variable_by_name("max_conn")[1] - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - tx_enable = self.tx_enable - rx_enable = self.rx_enable - enable_log = self.enable_log - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPClientMulti script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # step1 - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 LISTEN "] - fail_string = "Fail, Fail on create PC server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 - for i in range(0, self.max_conn): - checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" " % i] - fail_string = "Fail, Fail on connect to PC server" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC%d" % (i+2)] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 - # turn off AT UART logging - if enable_log is False: - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - - data = "A" * at_send_length - fail_string = "Fail, Fail on send and recv data" - - for j in range(0, test_count): - - if tx_enable is True: - for i in range(0, self.max_conn): - checker_stings = ["P AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail on target send command for link %d" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - return - - checker_stings = ["P SOC%d RL %d" % ((i+2), at_send_length), "P AT1 C OK"] - test_action_strings = ["ATSO AT1 %s" % data] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - return - - if rx_enable is True: - checker_stings = [] - test_action_strings = [] - for i in range(0, self.max_conn): - checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) - test_action_strings.extend(["SOC SOC%d SEND %d %s" % (i+2, soc_send_length, data)]) - - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail to receive PC sent data") - NativeLog.add_trace_critical("Test count is %d" % j) - return - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/TCPClientSingle.py b/components/test/TestCaseScript/ATStress/TCPClientSingle.py deleted file mode 100755 index 7127c3d0f..000000000 --- a/components/test/TestCaseScript/ATStress/TCPClientSingle.py +++ /dev/null @@ -1,123 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class TCPClientSingle(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.link_type = "TCP" - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - tx_enable = self.tx_enable - rx_enable = self.rx_enable - enable_log = self.enable_log - link_type = self.link_type - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPClientSingle script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # step1 - checker_stings = ["R SOC_COM L OK"] - if link_type == "TCP": - test_action_string = ["SOC SOC1 LISTEN "] - elif link_type == "SSL": - test_action_string = ["SOC SOC1 SLISTEN "] - pass - else: - raise StandardError() - fail_string = "Fail, Fail on create PC server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 - if link_type == "TCP": - checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] - elif link_type == "SSL": - checker_stings = ["R SOC1 C +SACCEPT", "R AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"SSL\" "] - else: - raise StandardError() - fail_string = "Fail, Fail on connect to PC server" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC2"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 - # turn off AT UART logging - if enable_log is False: - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - - for j in range(0, test_count): - data = "A" * at_send_length - fail_string = "Fail, Fail on send and recv data" - - if tx_enable is True: - checker_stings = ["P AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d" % at_send_length] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail on target send command") - NativeLog.add_trace_critical("Test count is %d" % j) - return - - checker_stings = ["P SOC2 RL %d" % at_send_length, "P AT1 C OK"] - test_action_strings = ["ATSO AT1 %s" % data] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail on target send, send or recv error") - NativeLog.add_trace_critical("Test count is %d" % j) - return - - if rx_enable is True: - checker_stings = ["P AT1 DL S+%d" % soc_send_length] - test_action_strings = ["SOC SOC2 SEND %d" % soc_send_length] - - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail to receive PC sent data") - NativeLog.add_trace_critical("Test count is %d" % j) - return - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/TCPSendPerf.py b/components/test/TestCaseScript/ATStress/TCPSendPerf.py deleted file mode 100755 index a2f6e1a06..000000000 --- a/components/test/TestCaseScript/ATStress/TCPSendPerf.py +++ /dev/null @@ -1,148 +0,0 @@ -import time -import os -import socket -import ssl - -from NativeLog import NativeLog -from TCAction import PerformanceTCBase -from Utility import MakeFolder - - -SEND_CMD = ("CIPSEND, CIPSENDBUF", "CIPSENDEX") - -LOG_PATH = os.path.join("AT_LOG", "Performance", "AT_SEND") - - -class TCPSendPerf(PerformanceTCBase.PerformanceTCBase): - def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # init value for ip and port - self.pc_ip = "pc_ip" - self.server_port = "test_tcp_port1" - self.packet_len = 1 - self.test_count = 100 - self.send_cmd = "CIPSEND" - self.baudrate = 115200 - self.rtscts = 0 - self.link_type = "TCP" - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - pass - - def process(self): - pc_ip = self.get_parameter(self.pc_ip) - server_port = self.get_parameter(self.server_port) - packet_len = self.packet_len - test_count = self.test_count - send_cmd = self.send_cmd - baudrate = self.baudrate - rtscts = self.rtscts - result = True - link_type = self.link_type - - # create TCP connection - sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - sock.bind((pc_ip, server_port)) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - sock.settimeout(10) - sock.listen(1) - - self.serial_write_line("AT1", "AT+CIPSTART=0,\"%s\",\"%s\",%d" % (link_type, pc_ip, server_port)) - sock_client = sock.accept()[0] - if link_type == "SSL": - sock_client = ssl.wrap_socket(sock_client, - server_side=True, - certfile=os.path.join("Certificate", "default.cer"), - keyfile=os.path.join("Certificate", "default.key")) - pass - if self.check_response("AT1", "OK") is False: - result = False - - self.serial_write_line("AT1", "AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)) - if self.check_response("AT1", "OK\r\n") is False: - result = False - - self.reconfig_serial_port("AT1", baudrate, rtscts) - - # restore to read line mode - self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) - - sock_client.settimeout(0) - - for _dummy in range(1): - if result is False: - NativeLog.add_trace_critical("Fail to create TCP connection") - break - # send TCP packets - data = "A" * packet_len - time1 = time.time() - - i = 0 - data_recv_len = 0 - while i < test_count: - self.serial_write_line("AT1", "AT+%s=0,%d" % (send_cmd, packet_len)) - if self.check_response("AT1", ">", 0.05) is False: - continue - - i += 1 - self.serial_write("AT1", data) - if send_cmd == "CIPSENDBUF": - result = self.check_response("AT1", "Recv %d bytes" % packet_len, 3) - else: - result = self.check_response("AT1", "SEND OK", 3) - if result is False: - NativeLog.add_trace_critical("Fail during sending data") - break - try: - if link_type == "TCP": - data_recv = sock_client.recv(10*1460) - elif link_type == "SSL": - data_recv = sock_client.read(10*1024) - else: - raise StandardError() - data_recv_len += len(data_recv) - except socket.error, e: - if e.errno == 10035: - pass - elif e.message == "The read operation timed out": - pass - else: - NativeLog.add_exception_log(e) - else: - self.set_result("Succeed") - - time2 = time.time() - - folder_path = MakeFolder.make_folder(LOG_PATH) - file_name = os.path.join(folder_path, - "%s_%s_%s.log" % (send_cmd, - packet_len, - time.strftime("%d%H%M%S", time.localtime()))) - with open(file_name, "ab+") as f: - f.write("\r\n[performance] %f packets per second " - "(including failed send operation)" - % (test_count/(time2-time1))) - f.write("\r\n[performance] %f Kbps" % (data_recv_len/(125*(time2-time1)))) - - self.serial_write_line("AT1", "AT+UART_CUR=115200,8,1,0,3") - self.check_response("AT1", "OK\r\n") - self.restore_serial_port("AT1") - - # restore to read line mode - self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) - # close socket - sock.close() - sock_client.close() - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/ATStress/TCPServerMulti.py b/components/test/TestCaseScript/ATStress/TCPServerMulti.py deleted file mode 100755 index c317bc974..000000000 --- a/components/test/TestCaseScript/ATStress/TCPServerMulti.py +++ /dev/null @@ -1,126 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class TCPServerMulti(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.max_conn = test_env.get_variable_by_name("max_conn")[1] - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - target_ip_str = self.target_ip_str - enable_log = self.enable_log - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPSeverMulti script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # turn off AT UART logging - if enable_log is False: - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - - # step1 create TCP server on target - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATC AT1 CIPSERVER 1 "] - fail_string = "Fail, Fail on create target TCP server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 PC connect to target server - for j in range(0, test_count): - data = "A" * at_send_length - fail_string = "Fail, Fail on connect to target server" - - # check if all connection can send data on target - checker_stings = ["P AT1 C OK"] - test_action_strings = ["ATS AT1 AT+CIPCLOSE=%d" % self.max_conn] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=100) is False: - NativeLog.add_trace_critical("Fail to close all connection") - NativeLog.add_trace_critical("Test count is %d" % j) - continue # if fail on this step, we can recover and continue - - # a) do connect - fail_flag = False - for i in range(0, self.max_conn): - checker_stings = ["P SOC_COM C OK", "P AT1 C CONNECT"] - test_action_strings = ["SOC SOC%d CONNECT %s" % (i+1, target_ip_str)] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail to connect to target for link %d" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - # if fail on this step, we can recover and continue - fail_flag = True - break - - if fail_flag is True: - # fail on step a) - continue - - # b) check if all connection can recv data on target - checker_stings = [] - test_action_strings = [] - for i in range(0, self.max_conn): - checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) - test_action_strings.extend(["SOC SOC%d SEND %d" % (i+1, soc_send_length)]) - - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail to receive data from PC") - NativeLog.add_trace_critical("Test count is %d" % j) - continue # if fail on this step, we can recover and continue - - # c) check if all connection can send data on target - for i in range(0, self.max_conn): - checker_stings = ["P AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail on target send command for link %d" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - return - - checker_stings = ["P SOC%d RL %d" % ((i+1), at_send_length), "P AT1 C OK"] - test_action_strings = ["ATSO AT1 %s" % data] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - return - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/TCPTransparent.py b/components/test/TestCaseScript/ATStress/TCPTransparent.py deleted file mode 100755 index d116923bf..000000000 --- a/components/test/TestCaseScript/ATStress/TCPTransparent.py +++ /dev/null @@ -1,280 +0,0 @@ -from TCAction import TCActionBase -from TCAction import CmdHandler -from NativeLog import NativeLog -import time -import random -import string -import os - - -class TransparentResultCheckCntx(TCActionBase.ResultCheckContext): - - def __init__(self, test_action, test_env, name): - TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) - self.result_array = [] - self.at_data_recv_total = 0 - self.pc_data_recv_total = 0 - self.temp_data_at2wifi = "" - self.temp_data_wifi2at = "" - pass - - def run(self): - validation_required = self.test_action.data_validation - path = os.path.split(self.test_action.log_file_name) - file_name_at2wifi = os.path.join(path[0], "%s_at2wifi_pc.bin" % self.test_action.timestamp) - file_name_wifi2at = os.path.join(path[0], "%s_wifi2at_at.bin" % self.test_action.timestamp) - - while True: - exit_flag = self.wait_exit_event(2) - # force exit - if exit_flag is True: - break - rx_len = 0 - tx_len = 0 - try: - self.lock_data() - rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) - tx_port = filter(lambda x: x[0] == "SOC2", self.data_cache) - self.data_cache = [] - finally: - self.unlock_data() - - if len(rx_port) == 1: - rx_len = len(rx_port[0][1]) - self.at_data_recv_total += rx_len - if validation_required is True: - self.temp_data_wifi2at += rx_port[0][1] - if len(tx_port) == 1: - tx_len = len(tx_port[0][1]) - self.pc_data_recv_total += tx_len - if validation_required is True: - self.temp_data_at2wifi += tx_port[0][1] - - self.result_array.append(["TX %8d %s" % - (tx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) - self.result_array.append(["RX %8d %s" % - (rx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) - - if validation_required is True: - with open(file_name_at2wifi, "ab+") as f: - f.write(self.temp_data_at2wifi) - with open(file_name_wifi2at, "ab+") as f: - f.write(self.temp_data_wifi2at) - - def get_validation_data(self): - return self.temp_data_at2wifi, self.temp_data_wifi2at - - def get_test_results(self): - return self.result_array, self.at_data_recv_total, self.pc_data_recv_total - - -class TCPTransparent(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.timestamp = time.strftime("%d%H%M%S", time.localtime()) - - pass - - def cleanup(self): - # close current result check context - self.result_cntx.stop_thread() - self.result_cntx.join() - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - # restore to read line mode - self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) - - # make sure enter condition that can respond to AT command - self.result_cntx = TCActionBase.ResultCheckContext(self, self.test_env, self.tc_name) - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - checker_stings = ["ATR AT1 R *"] - test_action_string = ["ATSO AT1 +++", "DELAY 0.1", "ATS AT1 AT"] - fail_string = "Fail, Fail to reconfig UART" - - result = False - - while result is False: - result = self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - - # reset baudrate - - checker_stings = ["ATR AT1 L OK"] - test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,3" % 115200] - fail_string = "Fail, Fail to reconfig UART" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - test_action = CmdHandler.parse_action("UART AT1 %d" % 115200, self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - TCActionBase.CommonTCActionBase.cleanup(self) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - # at send data len - at_send_data_len = self.at_send_data_len - # pc send data len - pc_send_data_len = self.pc_send_data_len - # sleep time between each send, test count - test_dispatch = self.test_dispatch - # enable target TCP TX - tx_enable = self.tx_enable - # enable target TCP RX - rx_enable = self.rx_enable - # if need to record tx/rx data to file - data_validation = self.data_validation - # UART baudrate - baudrate = self.baudrate - # HW flow control - rtscts = self.rtscts - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step0 reconfig baudrate - if baudrate != 0: - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)] - fail_string = "Fail, Fail to reconfig UART" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - test_action = CmdHandler.parse_action("UART AT1 %d %d" % (baudrate, rtscts), self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - - # step1 create PC server - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 LISTEN "] - fail_string = "Fail, Fail on create PC server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 target connect, switch to transparent - checker_stings = ["R SOC1 C +ACCEPT", "R AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"TCP\" "] - fail_string = "Fail, Fail on connect to PC server" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC2"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_strings = ["ATS AT1 AT+CIPMODE=1"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 - # turn off AT UART logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - # uart try to return data ASAP - self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) - - # switch to new result check context - self.result_cntx.stop_thread() - self.result_cntx.join() - self.result_cntx = TransparentResultCheckCntx(self, self.test_env, self.tc_name) - self.result_cntx.start() - - at_data_sent_total = 0 - pc_data_sent_total = 0 - at2wifi_data = "" - wifi2at_data = "" - - for j in range(0, len(at_send_data_len) * len(pc_send_data_len)): - at_data_len = at_send_data_len[j / len(pc_send_data_len)] - pc_data_len = pc_send_data_len[j % len(pc_send_data_len)] - # data = "".join(["A"] * at_data_len) - chars = string.ascii_lowercase - data_list = ["".join([random.choice(chars) for m in range(at_data_len-16)])] - chars = string.ascii_uppercase - data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) - chars = string.digits - data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) - - for i in range(0, len(test_dispatch)): - for k in range(0, test_dispatch[i][1]): - data_str = "%.2d%.2d%.10d%s\r\n" % (j, i, k, data_list[k % 3]) - # time1 = time.time() - if tx_enable is True: - test_action = CmdHandler.parse_action("ATSO AT1 %s" % data_str, self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - at_data_sent_total += at_data_len - if data_validation is True: - at2wifi_data += data_str - # time2 = time.time() - if rx_enable is True: - if tx_enable is True: - test_action = CmdHandler.parse_action("SOC SOC2 SENDNB %d %s" % (pc_data_len, data_str), - self.test_env) - else: - test_action = CmdHandler.parse_action("SOC SOC2 SEND %d %s" % (pc_data_len, data_str), - self.test_env) - sent_len = CmdHandler.do_action(test_action[0], self.test_env) - pc_data_sent_total += sent_len - if data_validation is True: - wifi2at_data += data_str[:sent_len] - # time3 = time.time() - # if time3-time2 > 0.1: - # break - if test_dispatch[i][0] != 0: - time.sleep(test_dispatch[i][0]) - time.sleep(3) # wait 3 seconds - - # write send data to file for data validation - if data_validation is True: - path = os.path.split(self.log_file_name) - with open(os.path.join(path[0], "%s_at2wifi_at.bin" % self.timestamp), "ab+") as f: - f.write(at2wifi_data) - with open(os.path.join(path[0], "%s_wifi2at_pc.bin" % self.timestamp), "ab+") as f: - f.write(wifi2at_data) - - temp_data_at2wifi, temp_data_wifi2at = self.result_cntx.get_validation_data() - if temp_data_at2wifi != at2wifi_data: - NativeLog.add_prompt_trace("[Validation Fail] at2wifi") - if temp_data_wifi2at != wifi2at_data: - NativeLog.add_prompt_trace("[Validation Fail] wifi2at") - - throughput_results, at_data_recv_total, pc_data_recv_total = self.result_cntx.get_test_results() - result_str = "AT sent %15d\r\n" % at_data_sent_total - result_str += "PC recv %15d\r\n" % pc_data_recv_total - result_str += "PC sent %15d\r\n" % pc_data_sent_total - result_str += "AT recv %15d\r\n" % at_data_recv_total - for _result in throughput_results: - result_str += "%s\r\n" % _result - with open(self.log_file_name, "ab+") as f: - f.write(result_str) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/UDPMulti.py b/components/test/TestCaseScript/ATStress/UDPMulti.py deleted file mode 100755 index 4423db3ce..000000000 --- a/components/test/TestCaseScript/ATStress/UDPMulti.py +++ /dev/null @@ -1,113 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import time - - -class UDPMulti(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.max_conn = test_env.get_variable_by_name("max_conn")[1] - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - target_ip_str = self.target_ip_str - tx_enable = self.tx_enable - rx_enable = self.rx_enable - enable_log = self.enable_log - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for UDPMulti script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # step1, bind one PC UDP port - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 BIND "] - fail_string = "Fail, Fail on binding socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 2 create 5 UDP link on target - for i in range(0, self.max_conn): - checker_stings = ["R AT1 C CONNECT L OK"] - test_action_strings = ["ATC AT1 CIPSTART %d \"UDP\" 1" - % (i, i+1)] - fail_string = "Fail, Fail on create UDP link" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 send recv data - # turn off AT UART logging - if enable_log is False: - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - - for j in range(0, test_count): - data = "A" * at_send_length - fail_string = "Fail, Fail on send/recv data" - - if tx_enable is True: - # target link 0-5 sendto PC - for i in range(0, self.max_conn): - checker_stings = ["P AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (i, at_send_length)] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Target fail on send cmd on link %d" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - - checker_stings = ["P SOC_COM C RECV_LEN=%d P " % (at_send_length, i+1), - "P AT1 C OK"] - test_action_strings = ["ATSO AT1 %s" % data] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Target sent UDP packet error on link %d" % i) - NativeLog.add_trace_critical("Test count is %d" % j) - - if rx_enable is True: - # PC send to target - checker_stings = [] - test_action_strings = [] - for i in range(0, self.max_conn): - checker_stings.extend(["P AT1 DL %d+%d" % (i, soc_send_length)]) - test_action_strings.extend(["SOC SOC1 SENDTO %d %s" - % (soc_send_length, i+1, target_ip_str)]) - - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("PC sent UDP packet error") - NativeLog.add_trace_critical("Test count is %d" % j) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/UDPSingle.py b/components/test/TestCaseScript/ATStress/UDPSingle.py deleted file mode 100755 index 0f30330ab..000000000 --- a/components/test/TestCaseScript/ATStress/UDPSingle.py +++ /dev/null @@ -1,105 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class UDPSingle(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - TCActionBase.CommonTCActionBase.cleanup(self) - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - try: - at_send_length = self.at_send_length - soc_send_length = self.soc_send_length - test_count = self.test_count - target_ip_str = self.target_ip_str - tx_enable = self.tx_enable - rx_enable = self.rx_enable - enable_log = self.enable_log - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for UDPSingle script, error is %s" % e) - raise StandardError("Error configuration") - # configurable params - - # step1, bind one PC UDP port - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 BIND "] - fail_string = "Fail, Fail on binding UDP socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 2 create UDP link on target - checker_stings = ["R AT1 C CONNECT L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"UDP\" 1"] - fail_string = "Fail, Fail on create UDP link" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 send recv data - # turn off AT UART logging - if enable_log is False: - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - - for j in range(0, test_count): - data = "A" * at_send_length - fail_string = "Fail, Fail on send recv data" - - # target sendto PC - if tx_enable is True: - checker_stings = ["P AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d" % at_send_length] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Target fail on send cmd") - NativeLog.add_trace_critical("Test count is %d" % j) - - checker_stings = ["P SOC_COM C RECV_LEN=%d P " % at_send_length, - "P AT1 C OK"] - test_action_strings = ["ATSO AT1 %s" % data] - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Target sent UDP packet error") - NativeLog.add_trace_critical("Test count is %d" % j) - - # PC send to target - if rx_enable is True: - checker_stings = (["P AT1 DL S+%d" % soc_send_length]) - test_action_strings = (["SOC SOC1 SENDTO %d %s" % (soc_send_length, target_ip_str)]) - - if self.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("PC sent UDP packet error") - NativeLog.add_trace_critical("Test count is %d" % j) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/UDPTransparent.py b/components/test/TestCaseScript/ATStress/UDPTransparent.py deleted file mode 100755 index 699d2b1ad..000000000 --- a/components/test/TestCaseScript/ATStress/UDPTransparent.py +++ /dev/null @@ -1,262 +0,0 @@ -from TCAction import TCActionBase -from TCAction import CmdHandler -from NativeLog import NativeLog -import time -import random -import string -import os - - -class TransparentResultCheckCntx(TCActionBase.ResultCheckContext): - - def __init__(self, test_action, test_env, name): - TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) - self.result_array = [] - self.at_data_recv_total = 0 - self.pc_data_recv_total = 0 - pass - - def run(self): - validation_required = self.test_action.data_validation - temp_data_at2wifi = "" - temp_data_wifi2at = "" - path = os.path.split(self.test_action.log_file_name) - file_name_at2wifi = os.path.join(path[0], "%s_at2wifi_pc.bin" % self.test_action.timestamp) - file_name_wifi2at = os.path.join(path[0], "%s_wifi2at_at.bin" % self.test_action.timestamp) - - while True: - exit_flag = self.wait_exit_event(2) - # force exit - if exit_flag is True: - break - rx_len = 0 - tx_len = 0 - try: - self.lock_data() - rx_port = filter(lambda x: x[0] == "AT1", self.data_cache) - tx_port = filter(lambda x: x[0] == "SOC1", self.data_cache) - self.data_cache = [] - finally: - self.unlock_data() - - if len(rx_port) == 1: - rx_len = len(rx_port[0][1]) - self.at_data_recv_total += rx_len - if validation_required is True: - temp_data_wifi2at += rx_port[0][1] - if len(tx_port) == 1: - tx_len = len(tx_port[0][1]) - self.pc_data_recv_total += tx_len - if validation_required is True: - temp_data_at2wifi += tx_port[0][1] - - self.result_array.append(["TX %8d %s" % - (tx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) - self.result_array.append(["RX %8d %s" % - (rx_len/2, time.strftime("%m-%d %H:%M:%S", time.localtime()))]) - - if validation_required is True: - with open(file_name_at2wifi, "ab+") as f: - f.write(temp_data_at2wifi) - with open(file_name_wifi2at, "ab+") as f: - f.write(temp_data_wifi2at) - - def get_test_results(self): - return self.result_array, self.at_data_recv_total, self.pc_data_recv_total - - -class UDPTransparent(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.timestamp = time.strftime("%d%H%M%S", time.localtime()) - - pass - - def cleanup(self): - # close current result check context - self.result_cntx.stop_thread() - self.result_cntx.join() - # turn on logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(True) - # restore to read line mode - self.test_env.uart_ports["AT1"].set_performance_flag(flag=False) - - # make sure enter condition that can respond to AT command - self.result_cntx = TCActionBase.ResultCheckContext(self, self.test_env, self.tc_name) - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - checker_stings = ["R AT1 R *"] - test_action_string = ["ATSO AT1 +++", "DELAY 0.1", "ATS AT1 AT"] - fail_string = "Fail, Fail to reconfig UART" - - result = False - - while result is False: - result = self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - - # reset baudrate - - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,3" % 115200] - fail_string = "Fail, Fail to reconfig UART" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - test_action = CmdHandler.parse_action("UART AT1 %d" % 115200, self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - TCActionBase.CommonTCActionBase.cleanup(self) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - # at send data len - at_send_data_len = self.at_send_data_len - # pc send data len - pc_send_data_len = self.pc_send_data_len - # sleep time between each send, test count - test_dispatch = self.test_dispatch - # enable target TCP TX - tx_enable = self.tx_enable - # enable target TCP RX - rx_enable = self.rx_enable - # if need to record tx/rx data to file - data_validation = self.data_validation - # UART baudrate - baudrate = self.baudrate - # HW flow control - rtscts = self.rtscts - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step0 reconfig baudrate - if baudrate != 0: - checker_stings = ["R AT1 L OK"] - test_action_string = ["ATS AT1 AT+UART_CUR=%d,8,1,0,%d" % (baudrate, rtscts)] - fail_string = "Fail, Fail to reconfig UART" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - test_action = CmdHandler.parse_action("UART AT1 %d %d" % (baudrate, rtscts), self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - - # step1 create PC server - checker_stings = ["R SOC_COM L OK"] - test_action_string = ["SOC SOC1 BIND "] - fail_string = "Fail, Fail on create PC server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2 target connect, switch to transparent - checker_stings = ["R AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART \"UDP\" 0"] - fail_string = "Fail, Fail on connect to PC server" - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R AT1 L OK"] - test_action_strings = ["ATS AT1 AT+CIPMODE=1"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - checker_stings = ["R AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND"] - if self.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) is False: - return - - # step 3 - # turn off AT UART logging - self.test_env.uart_ports["AT1"].set_uart_logging_flag(False) - # restore to read data asap - self.test_env.uart_ports["AT1"].set_performance_flag(flag=True) - - # switch to new result check context - self.result_cntx.stop_thread() - self.result_cntx.join() - self.result_cntx = TransparentResultCheckCntx(self, self.test_env, self.tc_name) - self.result_cntx.start() - - at_data_sent_total = 0 - pc_data_sent_total = 0 - at2wifi_data = "" - wifi2at_data = "" - - for j in range(0, len(at_send_data_len) * len(pc_send_data_len)): - at_data_len = at_send_data_len[j / len(pc_send_data_len)] - pc_data_len = pc_send_data_len[j % len(pc_send_data_len)] - # data = "".join(["A"] * at_data_len) - chars = string.ascii_lowercase - data_list = ["".join([random.choice(chars) for m in range(at_data_len-16)])] - chars = string.ascii_uppercase - data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) - chars = string.digits - data_list.append("".join([random.choice(chars) for m in range(at_data_len-16)])) - - for i in range(0, len(test_dispatch)): - for k in range(0, test_dispatch[i][1]): - data_str = "%.2d%.2d%.10d%s\r\n" % (j, i, k, data_list[k % 3]) - # time1 = time.time() - if tx_enable is True: - test_action = CmdHandler.parse_action("ATSO AT1 %s" % data_str, self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - at_data_sent_total += at_data_len - if data_validation is True: - at2wifi_data += data_str - # time2 = time.time() - if rx_enable is True: - test_action = CmdHandler.parse_action("SOC SOC1 SENDTO %d %s %s %s" - % (pc_data_len, "", - "", data_str), self.test_env) - CmdHandler.do_actions(test_action, self.test_env) - pc_data_sent_total += pc_data_len - if data_validation is True: - wifi2at_data += data_str - # time3 = time.time() - # if time3-time2 > 0.1: - # pass - if test_dispatch[i][0] != 0: - time.sleep(test_dispatch[i][0]) - time.sleep(3) # wait 3 seconds - - # write send data to file for data validation - if data_validation is True: - path = os.path.split(self.log_file_name) - with open(os.path.join(path[0], "%s_at2wifi_at.bin" % self.timestamp), "ab+") as f: - f.write(at2wifi_data) - with open(os.path.join(path[0], "%s_wifi2at_pc.bin" % self.timestamp), "ab+") as f: - f.write(wifi2at_data) - throughput_results, at_data_recv_total, pc_data_recv_total = self.result_cntx.get_test_results() - result_str = "AT sent %15d\r\n" % at_data_sent_total - result_str += "PC recv %15d\r\n" % pc_data_recv_total - result_str += "PC sent %15d\r\n" % pc_data_sent_total - result_str += "AT recv %15d\r\n" % at_data_recv_total - for _result in throughput_results: - result_str += "%s\r\n" % _result - with open(self.log_file_name, "ab+") as f: - f.write(result_str) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/ATStress/__init__.py b/components/test/TestCaseScript/ATStress/__init__.py deleted file mode 100755 index 5a3bbc44d..000000000 --- a/components/test/TestCaseScript/ATStress/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -__all__ = ["TCPClientMulti", "TCPClientSingle", "TCPServerMulti", - "TCPTransparent", "UDPMulti", "UDPSingle"] \ No newline at end of file diff --git a/components/test/TestCaseScript/IOT/SCIOT.py b/components/test/TestCaseScript/IOT/SCIOT.py deleted file mode 100755 index 5ced3ef12..000000000 --- a/components/test/TestCaseScript/IOT/SCIOT.py +++ /dev/null @@ -1,357 +0,0 @@ -import Queue - -from TCAction import TCActionBase -from NativeLog import NativeLog -from SCUDPServer import * -from TCAction.CmdExecutor import CmdExecutorBasic -from Utility import MakeFolder - -TEST_RESULT_CATEGORY = ("AP", "Phone") -TEST_RESULT_PROPERTY = ("model", "total", "succeed", "failed", "total time1", "total time2") -SINGLE_TEST_RESULT = ("AP", "Phone", "result", "time1", "time2") - -LOG_FILES = ("by_ap.tmp", "by_phone.tmp", "failed_item.tmp", "disqualified_item.tmp", "total.tmp") - -LOG_PATH = os.path.join("AT_LOG", "IOT") - - -def make_session_id(mac, test_id): - return mac_to_bytes(mac) + chr((test_id & 0xFF00) >> 8) + chr(test_id & 0xFF) - - -class TestHandler(threading.Thread): - def __init__(self, session_id, ap, phone, udp_server, test_action): - threading.Thread.__init__(self) - self.setDaemon(True) - self.udp_server = udp_server - self.session_id = session_id - self.ap = ap - self.phone = phone - self.test_action = test_action - self.recv_queue = Queue.Queue(10) - self.abort_event = threading.Event() - self.start_time = time.time() - self.test_result = None - udp_server.register_test_handler(session_id, self) - pass - - def req_receiver(self, msg, address): - self.recv_queue.put([msg, address]) - pass - - def res_receiver(self, msg, address): - self.recv_queue.put([msg, address]) - pass - - def abort_handler(self): - NativeLog.add_prompt_trace("[Test Handler][Debug] test aborted") - self.abort_event.set() - self.test_action.remove_from_available_list(self.phone) - pass - - def wait_result(self, event, timeout=None): - time_start = time.time() - while True: - if self.abort_event.isSet() is True: - return False - - if time.time() - self.start_time > ABORT_TIMEOUT: - return False - - if timeout is not None: - if time.time() - time_start > timeout: - return False - - if event == "ACK" or event == "result": - try: - ret = self.recv_queue.get(timeout=0.5) - except Queue.Empty, e: - continue - else: - msg = ret[0] - value_list = get_value_from_msg("type", msg) - msg_typ = ord(value_list[0]) - if msg_typ == TYPE_VAL[event]: - NativeLog.add_prompt_trace("[Test Handler][Debug] wait message succeed") - return msg - elif (msg_typ & 0x80) == 0: # invalid request - self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["Not support"]], - [VALUE_NAME["session id"], self.session_id]], - ret[1]) - pass - else: - pass - pass - - def run(self): - for i in range(1): - # step1 send broadcast to SP - msg = [[VALUE_NAME["type"], TYPE_VAL["Init new test"]], - [VALUE_NAME["session id"], self.session_id]] - self.udp_server.send_request(("", self.udp_server.udp_port), self.session_id, msg) - # wait response - if self.wait_result("ACK") is False: - break - NativeLog.add_prompt_trace("[Step1] Initial new test succeed") - - # step2 start smart config - checker_stings = ["ATR AT1 L OK"] - test_action_string = ["ATS AT1 AT+CWSTOPSMART"] - fail_string = "Fail, Failed to start smart config" - if self.test_action.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - NativeLog.add_prompt_trace(fail_string) - break - checker_stings = ["ATR AT1 L OK"] - test_action_string = ["ATS AT1 AT+CWSTARTSMART=1"] - if self.test_action.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - NativeLog.add_prompt_trace(fail_string) - break - NativeLog.add_prompt_trace("[Step2] Start smart config succeed") - - # step3 send test request to SP - msg = [[VALUE_NAME["type"], TYPE_VAL["test request"]], - [VALUE_NAME["session id"], self.session_id], - [VALUE_NAME["ap ssid"], self.ap["ssid"]], - [VALUE_NAME["ap password"], self.ap["password"]], - [VALUE_NAME["ap bssid"], mac_to_bytes(self.ap["bssid"])], - # [VALUE_NAME["ET version"], 0x20], - [VALUE_NAME["ssid hidden"], self.ap["is_hidden"]], - [VALUE_NAME["ap encryption"], AP_ENCRYPTION_VAL[self.ap["encryption"]]] - ] - self.udp_server.send_request((self.phone["ip"], self.udp_server.udp_port), self.session_id, msg) - # wait SP reply - if self.wait_result("ACK") is False: - break - NativeLog.add_prompt_trace("[Step3] Send test request succeed") - time_base = time.time() - - # step4 wait target smart config succeed - checker_stings = ["ATR AT1 C get%%20wifi%%20info C %s C %s" - % (self.ap["ssid"], self.ap["password"])] - test_action_string = [] - fail_string = "Fail, Fail to get ap info" - # if check target get smart config result fail, continue and get result from SP - ret = self.test_action.load_and_exe_one_step(checker_stings, test_action_string, - fail_string, check_time=600) - if ret is False: - NativeLog.add_prompt_trace("[Step4] Target smart config fail") - step_4_fail = True - else: - NativeLog.add_prompt_trace("[Step4] Target smart config succeed") - step_4_fail = False - time_target_succeed = time.time() - time_base - - # step5 wait SP result - msg = self.wait_result("result") - if msg is False: - NativeLog.add_prompt_trace("[Test Handler][Debug] Failed to get result from SP") - break - else: - self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["ACK"]], - [VALUE_NAME["session id"], self.session_id]], - (self.phone["ip"], self.udp_server.udp_port)) - tmp = get_value_from_msg(["result code", "start SC time", "recv UDP time"], msg) - result_code = ord(tmp[0]) - if result_code == RESULT_CODE_VAL["OK"]: - sp_start_time = bytes_to_time(tmp[1]) - sp_recv_udp_time = bytes_to_time(tmp[2]) - smart_config_protocol_cost = time_target_succeed - sp_start_time - user_experience_time = sp_recv_udp_time - sp_start_time - self.test_result = ["Succeed", smart_config_protocol_cost, user_experience_time] - elif result_code == RESULT_CODE_VAL["recv UDP fail"]: - sp_start_time = bytes_to_time(tmp[1]) - if step_4_fail is True: - smart_config_protocol_cost = 0 - else: - smart_config_protocol_cost = time_target_succeed - sp_start_time - self.test_result = ["Failed", smart_config_protocol_cost, 0] - pass - else: - NativeLog.add_prompt_trace("[Test Handler][Debug] Disqualified message: %s" % tmp) - - for k in range(RETRANSMIT_COUNT - 1): - if self.wait_result("result", RETRANSMIT_TIMEOUT) is not False: - self.udp_server.send_response([[VALUE_NAME["type"], TYPE_VAL["ACK"]], - [VALUE_NAME["session id"], self.session_id]], - (self.phone["ip"], self.udp_server.udp_port)) - - NativeLog.add_prompt_trace("[Step5] Receive test result from SP") - - if self.test_result is None: - self.test_result = ["Disqualified", 0, 0] - self.udp_server.deregister_test_handler(self.session_id) - NativeLog.add_prompt_trace("One Test Done") - pass - - def get_result(self): - if self.test_result is None: - NativeLog.add_trace_critical("Get result before test finish") - return self.test_result - pass - - -class SCIOT(TCActionBase.CommonTCActionBase): - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.ap_list = [] - self.test_result = dict.fromkeys(TEST_RESULT_CATEGORY) - self.test_result["AP"] = [] - self.test_result["Phone"] = [] - self.available_phone_list = [] - self.pc_ip = "" - self.udp_port = "" - self.test_id = 0x00 - self.resource_lock = threading.Lock() - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROPERTY, " + cmd_set[i][1][j] + ")))" - exec cmd_string - for ap in self.ap_list: - self.test_result["AP"].append(dict(zip(TEST_RESULT_PROPERTY, [ap["ssid"], 0, 0, 0, 0, 0]))) - - self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, "TEST_%s" - % (time.strftime("%y%m%d%H%M%S", time.localtime())))) - self.log_files = dict.fromkeys(LOG_FILES) - for _file in self.log_files: - self.log_files[_file] = os.path.join(self.log_folder, - (time.strftime("%H%M%S", time.localtime())) + _file) - pass - - def update_phone_list(self, phone): - with self.resource_lock: - tmp = filter(lambda x: x["model"] == phone["model"], self.available_phone_list) - if len(tmp) == 1: - tmp[0]["ip"] = phone["ip"] - else: - self.available_phone_list.append(phone) - - tmp = filter(lambda x: x["model"] == phone["model"], self.test_result["Phone"]) - if len(tmp) == 0: - self.test_result["Phone"].append(dict(zip(TEST_RESULT_PROPERTY, [phone["model"], 0, 0, 0, 0, 0]))) - pass - - def remove_from_available_list(self, phone): - with self.resource_lock: - tmp = filter(lambda x: x["model"] == phone["model"], self.available_phone_list) - if len(tmp) == 1: - self.available_phone_list.remove(tmp[0]) - pass - - def allocate_test(self): - phone = None - test_count = 0xFFFF - with self.resource_lock: - for _phone in self.available_phone_list: - tmp = filter(lambda x: x["model"] == _phone["model"], self.test_result["Phone"]) - if len(tmp) == 1: - _count = tmp[0]["total"] - if _count < test_count: - test_count = _count - phone = _phone - ap_list = self.ap_list[test_count % len(self.ap_list):] - return phone, ap_list - pass - - def output_test_result(self, ap, phone, test_result): - result_str = "Time stamp" + ":\t" + NativeLog.generate_timestamp() + "\r\n" - result_str += "AP model" + ":\t" + str(ap["ssid"]) + "\r\n" - result_str += "AP encryption" + ":\t" + str(ap["encryption"]) + "\r\n" - result_str += "AP HT" + ":\t" + str(ap["ht"]) + "\r\n" - result_str += "AP ssid hidden" + ":\t" + str(ap["is_hidden"]) + "\r\n" - result_str += "Phone model" + ":\t" + str(phone["model"]) + "\r\n" - result_str += "Result" + ":\t" + str(test_result[0]) + "\r\n" - result_str += "Time1" + ":\t" + str(test_result[1]) + "\r\n" - result_str += "Time2" + ":\t" + str(test_result[2]) + "\r\n" - - with self.resource_lock: - tmp = [filter(lambda x: x["model"] == ap["ssid"], self.test_result["AP"])[0], - filter(lambda x: x["model"] == phone["model"], self.test_result["Phone"])[0]] - if test_result[0] == "Succeed": - for _tmp in tmp: - _tmp["total"] += 1 - _tmp["succeed"] += 1 - _tmp["total time1"] += test_result[1] - _tmp["total time2"] += test_result[2] - pass - elif test_result[0] == "Disqualified": - for _tmp in tmp: - _tmp["total"] += 1 - pass - else: - for _tmp in tmp: - _tmp["total"] += 1 - _tmp["failed"] += 1 - pass - tmp_result = dict(zip(TEST_RESULT_CATEGORY, ["", ""])) - for category in self.test_result: - for _result in self.test_result[category]: - for n in _result: - tmp_result[category] += str(n) + ":\t" + str(_result[n]) + "\r\n" - - # update to log file - with open(self.log_files["by_ap.tmp"], "wb+") as f: - f.write(tmp_result["AP"]) - with open(self.log_files["by_phone.tmp"], "wb+") as f: - f.write(tmp_result["Phone"]) - - with open(self.log_files["total.tmp"], "ab+") as f: - f.write(result_str) - if test_result[0] == "Failed": - with open(self.log_files["failed_item.tmp"], "ab+") as f: - f.write(result_str) - elif test_result[0] == "Disqualified": - with open(self.log_files["disqualified_item.tmp"], "ab+") as f: - f.write(result_str) - - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - pc_ip = CmdExecutorBasic.extract_parameter(self.pc_ip, self.test_env) - if isinstance(self.udp_port, int) is False: - udp_port = CmdExecutorBasic.extract_parameter(self.udp_port, self.test_env) - else: - udp_port = self.udp_port - - server = UDPServer(pc_ip, udp_port, self.update_phone_list) - server.start() - - while True: - phone, ap_list = self.allocate_test() - if phone is None: - time.sleep(5) - continue - for ap in ap_list: - NativeLog.add_prompt_trace("AP is %s, Phone is %s" % (ap["ssid"], phone["model"])) - session_id = make_session_id(phone["mac"], self.test_id) - self.test_id += 1 - test_handler = TestHandler(session_id, ap, phone, server, self) - test_handler.start() - test_handler.join() - result = test_handler.get_result() - self.output_test_result(ap, phone, result) - - # finally, execute done - server.join() - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/IOT/SCUDPServer.py b/components/test/TestCaseScript/IOT/SCUDPServer.py deleted file mode 100755 index 75f24f79a..000000000 --- a/components/test/TestCaseScript/IOT/SCUDPServer.py +++ /dev/null @@ -1,378 +0,0 @@ -import socket -import time -import os -import threading - -from NativeLog import NativeLog - - -RETRANSMIT_COUNT = 5 -RETRANSMIT_TIMEOUT = 0.5 -ABORT_TIMEOUT = 120 -BEACON_SEND_RATE = 30 - - -VALUE_NAME = {"type": 0x00, - "session id": 0x01, - "result code": 0x02, - "ap ssid": 0x03, - "ap password": 0x04, - "start SC time": 0x05, - "recv UDP time": 0x06, - "SP model": 0x07, - "SP mac": 0x08, - "ET version": 0x09, - "ap bssid": 0x0A, - "ssid hidden": 0x0B, - "ap encryption": 0x0C, - } - -TYPE_VAL = {"Init new test": 0x00, - "test request": 0x01, - "result": 0x02, - "query phone": 0x03, - "ACK": 0x80, - "phone report": 0x81, - "Not support": 0xFF, - "invalid session": 0xFE, - } - -RESULT_CODE_VAL = {"OK": 0x80, - "JAP fail": 0x81, # SP join AP fail, should disqualify this result - "recv UDP fail": 0x82, # SP did not receive UDP sent by target - } - -AP_ENCRYPTION_VAL = {"OPEN": 0x00, - "WEP": 0x01, - "WPA": 0x02, - } - -AP_PROPERTY = ("ssid", "password", "bssid", "is_hidden", "encryption", "ht") -PHONE_PROPERTY = ("ip", "mac", "model") - - -SERIAL_PORT_NUM = 3 -LOG_FILE_PREFIX = "SC_IOT" -LOG_FOLDER = os.path.join("AT_LOG", "TEMP") -LOG_FILE_NAME = os.path.join(LOG_FOLDER, "%s_%s.log" % (LOG_FILE_PREFIX, time.strftime("%d%H%M%S", time.localtime()))) - - -REQUEST_LOCK = threading.Lock() -HANDLER_LOCK = threading.Lock() - - -def sync_request_list(func): - def handle_args(*args, **kwargs): - with REQUEST_LOCK: - ret = func(*args, **kwargs) - return ret - return handle_args - - -def sync_handler_list(func): - def handle_args(*args, **kwargs): - with HANDLER_LOCK: - ret = func(*args, **kwargs) - return ret - return handle_args - - -def _process_one_tlv_pair(data): - typ = ord(data[0]) - length = ord(data[1]) - value = data[2:2+length] - processed_data = data[2+length:] - return (typ, value), processed_data - pass - - -def bytes_to_msg(data): - data_to_process = data - msg = [] - while True: - one_pair, data_to_process = _process_one_tlv_pair(data_to_process) - msg.append(one_pair) - if len(data_to_process) == 0: - break - return msg - pass - - -def msg_to_bytes(msg): - byte_str = "" - for pair in msg: - byte_str += chr(pair[0]) - if isinstance(pair[1], list) is True: - byte_str += chr(len(pair[1])) - byte_str.join([chr(m) for m in pair[1]]) - elif isinstance(pair[1], str) is True: - byte_str += chr(len(pair[1])) - byte_str += pair[1] - elif isinstance(pair[1], int) is True: - byte_str += chr(1) - byte_str += chr(pair[1]) - else: - raise TypeError("msg content only support list and string type") - return byte_str - - -def get_value_from_msg(type_list, msg): - if isinstance(type_list, str) is True: - type_list = [type_list] - ret = [""] * len(type_list) - for pair in msg: - for i in range(len(type_list)): - if pair[0] == VALUE_NAME[type_list[i]]: - ret[i] = pair[1] - if "" not in ret: - # all type value found - break - else: - NativeLog.add_prompt_trace("missing required type in msg") - return ret - - -def bytes_to_time(bytes_in): - if len(bytes_in) != 4: - return 0 - t = float(ord(bytes_in[0])*256*256*256 + ord(bytes_in[1])*256*256 - + ord(bytes_in[2])*256 + ord(bytes_in[2]))/1000 - return t - pass - - -def mac_to_bytes(mac): - tmp = mac.split(':') - return "".join([chr(int(m[:2], base=16)) for m in tmp]) - pass - - -def bytes_to_mac(bytes_in): - mac = "".join(["%x:" % ord(m) for m in bytes_in] ) - return mac[:-1] - - -class RetransmitHandler(threading.Thread): - def __init__(self, udp_server): - threading.Thread.__init__(self) - self.setDaemon(True) - self.udp_server = udp_server - self.exit_event = threading.Event() - pass - - @sync_request_list - def find_required_retransmit_msg(self): - time_now = time.time() - aborted_sessions = [] - retransmit_msg = [] - msgs = filter(lambda x: time_now - x[4] >= RETRANSMIT_TIMEOUT, self.udp_server.unconfirmed_request) - for msg in msgs: - if msg[3] == 0: - aborted_sessions.append(msg[0]) - self.udp_server.unconfirmed_request.remove(msg) - else: - msg[3] -= 1 - msg[4] = time_now - retransmit_msg.append(msg) - pass - return aborted_sessions, retransmit_msg - pass - - def run(self): - while True: - self.exit_event.wait(0.1) - if self.exit_event.isSet() is True: - break - aborted_sessions, retransmit_msg = self.find_required_retransmit_msg() - for msg in retransmit_msg: - self.udp_server.udp_socket.sendto(msg[1], msg[2]) - for session_id in aborted_sessions: - self.udp_server.session_aborted(session_id) - - def exit(self): - self.exit_event.set() - pass - - -class SendBeacon(threading.Thread): - def __init__(self, sock, udp_port): - threading.Thread.__init__(self) - self.setDaemon(True) - self.udp_sock = sock - self.udp_port = udp_port - self.exit_event = threading.Event() - - def run(self): - while True: - msg = [[VALUE_NAME["type"], TYPE_VAL["query phone"]]] - data = msg_to_bytes(msg) - self.udp_sock.sendto(data, ("", self.udp_port)) - for i in range(BEACON_SEND_RATE): - self.exit_event.wait(1) - if self.exit_event.isSet() is True: - return - pass - - def exit(self): - self.exit_event.set() - pass - - -class UDPServer(threading.Thread): - def __init__(self, pc_ip, udp_port, update_phone_handler): - threading.Thread.__init__(self) - self.setDaemon(True) - sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) - sock.bind((pc_ip, udp_port)) - sock.settimeout(1) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) - self.udp_socket = sock - self.unconfirmed_request = [] - self.test_handler_list = [] - self.pc_ip = pc_ip - self.udp_port = udp_port - self.update_phone_handler = update_phone_handler - self.retransmit_thread = RetransmitHandler(self) - self.beacon_thread = SendBeacon(self.udp_socket, self.udp_port) - self.retransmit_thread.start() - self.beacon_thread.start() - self.exit_event = threading.Event() - pass - - @sync_handler_list - def register_test_handler(self, session_id, test_handler): - tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) - if len(tmp) > 0: - NativeLog.add_prompt_trace("handler with same session id exist") - else: - self.test_handler_list.append([session_id, test_handler]) - pass - - @sync_handler_list - def deregister_test_handler(self, session_id): - tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) - if len(tmp) > 1: - NativeLog.add_prompt_trace("deregister test handler fail") - elif len(tmp) == 1: - self.test_handler_list.remove(tmp[0]) - pass - - @sync_handler_list - def get_test_handler(self, session_id): - ret = None - tmp = filter(lambda x: x[0] == session_id, self.test_handler_list) - if len(tmp) != 1: - NativeLog.add_prompt_trace("failed to get test handler, " - "%d handler found, session id %s" % (len(tmp), session_id)) - elif len(tmp) == 1: - ret = tmp[0][1] - return ret - pass - - def session_aborted(self, session_id): - test_handler = self.get_test_handler(session_id) - if test_handler is not None: - test_handler.abort_handler() - pass - - def confirm_request(self, session_id, msg, address): - test_handler = self.get_test_handler(session_id) - if test_handler is not None: - test_handler.res_receiver(msg, address) - self.remove_pending_request(session_id) - pass - - def receive_request(self, msg, address): - result = get_value_from_msg(["type", "session id"], msg) - msg_type = ord(result[0]) - session_id = result[1] - if msg_type != TYPE_VAL["result"]: - self.send_response([[VALUE_NAME["type"], TYPE_VAL["Not support"]]], address) - else: - test_handler = self.get_test_handler(session_id) - if test_handler is None: - self.send_response([[VALUE_NAME["type"], TYPE_VAL["invalid session"]], - [VALUE_NAME["session id"], session_id]], - address) - pass - else: - test_handler.req_receiver(msg, address) - pass - - @sync_request_list - def add_request_to_queue(self, dest_addr, session_id, data): - tmp = filter(lambda x: x[0] == session_id, self.unconfirmed_request) - if len(tmp) != 0: - NativeLog.add_prompt_trace("One pending request belong to same session id %s" % session_id) - pass - else: - self.unconfirmed_request.append([session_id, data, - dest_addr, RETRANSMIT_COUNT-1, time.time()]) - - def send_request(self, dest_addr, session_id, msg): - data = msg_to_bytes(msg) - self.add_request_to_queue(dest_addr, session_id, data) - self.udp_socket.sendto(data, dest_addr) - pass - - def send_response(self, msg, address): - self.udp_socket.sendto(msg_to_bytes(msg), address) - - @sync_request_list - def remove_pending_request(self, session_id): - tmp = filter(lambda x: x[0] == session_id, self.unconfirmed_request) - if len(tmp) > 0: - self.unconfirmed_request.remove(tmp[0]) - pass - pass - - def handle_response(self, msg, address): - result = get_value_from_msg(["type", "session id"], msg) - msg_type = ord(result[0]) - session_id = result[1] - if msg_type == TYPE_VAL["ACK"]: - self.confirm_request(session_id, msg, address) - elif msg_type == TYPE_VAL["phone report"]: - # add new available phone - tmp = get_value_from_msg(["SP model", "SP mac"], msg) - phone = dict(zip(PHONE_PROPERTY, [address[0], bytes_to_mac(tmp[1]), tmp[0]])) - self.update_phone_handler(phone) - pass - elif msg_type == TYPE_VAL["Not support"] or msg_type == TYPE_VAL["invalid session"]: - self.session_aborted(session_id) - pass - - def run(self): - while self.exit_event.isSet() is False: - try: - data, address = self.udp_socket.recvfrom(65535) - except socket.error, e: - continue - - if address[0] == self.pc_ip: - continue - - msg = bytes_to_msg(data) - msg_type = get_value_from_msg(["type"], msg)[0] - - if msg_type is None: - NativeLog.add_prompt_trace("invalid incoming msg: %s" % "".join(["0x%X, " % m for m in data])) - else: - msg_type = ord(msg_type) - # check if request or reply - if (msg_type & 0x80) != 0: - self.handle_response(msg, address) - else: - self.receive_request(msg, address) - pass - - self.retransmit_thread.exit() - self.beacon_thread.exit() - self.retransmit_thread.join() - self.beacon_thread.join() - pass - - def exit(self): - self.exit_event.set() - pass diff --git a/components/test/TestCaseScript/IOT/WifiConnUtility.py b/components/test/TestCaseScript/IOT/WifiConnUtility.py deleted file mode 100755 index d50474561..000000000 --- a/components/test/TestCaseScript/IOT/WifiConnUtility.py +++ /dev/null @@ -1,244 +0,0 @@ -from NativeLog import NativeLog -import time -import random -import string - - -ERROR_AP_PROP = {"ssid": "123456789012345678901234567890", - "ssid_len": 30, - "pwd": "12345678901234567890", - "pwd_len": 20, - "channel": 10, - "enc": 3, - "apc": 9, # invalid apc count - } - - -class WifiConnUtilError(StandardError): - pass - - -class WifiConnUtility(object): - - def __init__(self, tc_action): - self.tc_action = tc_action - self.target_type = tc_action.target_type - pass - - def set_mode(self, mode): - ret = True - fail_string = "set mode fail" - cmd = [] - checker_stings = [] - for i in range(2): - if self.target_type[0] == "SSC": - cmd.append("SSCC SSC%d op -S -o %d" % (i+1, mode[i])) - checker_stings.append("SSCP SSC%d C cur_mode C %d" % (i+1, mode[i])) - pass - else: - cmd.append("ATC AT%d CWMODE %d" % (i+1, mode[i])) - checker_stings.append("ATP AT%d L OK" % (i+1)) - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Failed to set mode") - ret = False - return ret - pass - - def _apc_switch(self, outlet_list, action_list): - checker_stings = ["R PC_COM C OK"] - switch_cmd = "APC APC1" - fail_string = "Error when switching APC" - ret = True - - for [_outlet, _action] in zip(action_list, outlet_list): - switch_cmd += " %s %d" % (_action, _outlet) - - if self.tc_action.load_and_exe_one_step(checker_stings, [switch_cmd], - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Error when switching APC") - ret = False - return ret - pass - - def _set_target_ap(self, ap_prop): - ret = True - fail_string = "set target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - if self.target_type[1] == "SSC": - if ap_prop["pwd"] == "": - cmd = ["SSCC SSC2 ap -S -s %s -t %d" % (ap_prop["ssid"], - ap_prop["enc"]) - ] - else: - cmd = ["SSCC SSC2 ap -S -s %s -p %s -t %d" % (ap_prop["ssid"], - ap_prop["pwd"], - ap_prop["enc"]) - ] - checker_stings = ["SSCP SSC2 C +SAP:OK"] - pass - else: - cmd = ["ATC AT2 CWSAP \"%s\" \"%s\" %d %d" % (ap_prop["ssid"], - ap_prop["pwd"], - ap_prop["channel"], - ap_prop["enc"]) - ] - checker_stings = ["ATR AT2 L OK"] - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("set target ap fail") - ret = False - return ret - pass - - def setup_ap(self, ap_type, ap_prop): - if ap_type == "target": - ret = self._set_target_ap(ap_prop) - pass - else: - ret = self._apc_switch(["ON"], [ap_prop["apc"]]) - # delay for 5 seconds, wait AP ready - time.sleep(5) - pass - return ret - - def do_scan(self, ap_prop): - fail_string = "Scan fail" - ret = True - # do not check if the set AP can be scanned - if self.target_type[1] == "SSC": - cmd = ["SSCC SSC1 sta -S"] - checker_stings = ["SSCR SSC1 C ssc%20scan%20done"] - pass - else: - cmd = ["ATS AT1 AT+CWLAP"] - checker_stings = ["ATR AT1 L OK"] - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=100) is False: - NativeLog.add_trace_critical("Scan fail") - ret = False - return ret - pass - - def _switch_off_target_ap(self, delay): - time.sleep(delay) - self._set_target_ap(ERROR_AP_PROP) - pass - - def _switch_on_target_ap(self, ap_prop, delay): - time.sleep(delay) - self._set_target_ap(ap_prop) - pass - - def _switch_off_ap(self, ap_type, ap_prop, delay_range): - delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 - if ap_type == "target": - self._switch_off_target_ap(delay) - else: - delay -= 1.5 - time.sleep(delay if delay > 0 else 0) - self._apc_switch(["OFF"], [ap_prop["apc"]]) - pass - - def _switch_on_ap(self, ap_type, ap_prop, delay_range): - delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 - if ap_type == "target": - self._switch_on_target_ap(ap_prop, delay) - else: - delay -= 1.5 - time.sleep(delay if delay > 0 else 0) - self._apc_switch(["ON"], [ap_prop["apc"]]) - pass - - def _join_ap(self, ap_prop, test_method): - fail_string = "join target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - if self.target_type[1] == "SSC": - cmd = ["SSCC SSC1 ap -C -s %s -p %s" % (ap_prop["ssid"], - ap_prop["pwd"],) - ] - checker_stings = ["SSCR SSC1 C %s" % ap_prop["ssid"], - "SSCR SSC1 C dhcp%20client%20start", - "SSCR SSC1 C ip C mask C gw"] - pass - else: - cmd = ["ATC AT1 CWJAP \"%s\" \"%s\"" % (ap_prop["ssid"], - ap_prop["pwd"]) - ] - checker_stings = ["ATR AT1 NC ERROR NC FAIL L OK"] - pass - if test_method == "Normal": - ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_freq=0.1, check_time=350) - if ret is not False: - ret *= 0.1 - else: - ret = self.tc_action.load_and_exe_one_step([], cmd, fail_string) - return ret - pass - - def _check_join_ap_result(self, ap_prop): - ret = False - fail_string = "join ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - - if self.target_type[1] == "SSC": - checker_stings = ["SSCR SSC1 C dhcp%20client%20start", - "SSCR SSC1 C ip C mask C gw"] - ret = self.tc_action.load_and_exe_one_step(checker_stings, ["DELAY 0"], - fail_string, check_freq=1, check_time=120) - pass - else: - cmd = ["ATS AT1 AT+CWJAP?"] - checker_stings = ["ATR AT1 NC busy NC No%20AP C +CWJAP"] - for i in range(3): - ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_freq=1, check_time=2) - if ret is not False: - break - time.sleep(15) - - return ret - pass - - def join_ap(self, join_test_method, ap_type, ap_prop, delay): - - if join_test_method == "WRONG_PROP": - _prop = ERROR_AP_PROP - else: - _prop = ap_prop - - ret = self._join_ap(_prop, join_test_method) - - if join_test_method == "OFF_ON": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - self._switch_on_ap(ap_type, ap_prop, delay[1]) - ret = self._check_join_ap_result(_prop) - pass - elif join_test_method == "OFF": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - time.sleep(25) - pass - - return ret - pass - - def do_reconnect(self, reconnect_test_method, ap_type, ap_prop, delay): - ret = True - if reconnect_test_method == "OFF_ON": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - self._switch_on_ap(ap_type, ap_prop, delay[1]) - ret = self._check_join_ap_result(ap_prop) - pass - elif reconnect_test_method == "OFF": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - pass - return ret - pass - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/IOT/WifiJAP.py b/components/test/TestCaseScript/IOT/WifiJAP.py deleted file mode 100755 index 0bb629295..000000000 --- a/components/test/TestCaseScript/IOT/WifiJAP.py +++ /dev/null @@ -1,183 +0,0 @@ -import os -import random -import time - -import WifiConnUtility -from NativeLog import NativeLog -from TCAction import TCActionBase -from Utility import Encoding -from Utility import MakeFolder - -STEPS = {"SCAN1": 0x01, "JAP": 0x02, "SCAN2": 0x04, "RECONNECT": 0x08} - -AP_PROP = ("ssid", "ssid_len", "pwd", - "pwd_len", "channel", "enc", "apc") - -JAP_TEST_METHOD = ("Normal", "OFF_ON", "OFF", "WRONG_PROP") - -RECONNECT_TEST_METHOD = ("OFF_ON", "OFF") - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") - - -SSID_LEN_RANGE = (1, 32) # in bytes -ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP -PWD_RANGE = {0: [0, 0], - 1: [5, 5], - 2: [8, 63], - 3: [8, 63], - 4: [8, 63], - } - - -class WifiJAP(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # default value for optional configurable params - self.pwd_len = [8, 64] - self.step_config = [0x03, 0x01, 0x02, 0x0B, 0x0F] - self.join_test_method = ["Normal"] - self.join_delay = [[1.5, 5], [1.5, 5]] - self.reconnect_test_method = ["OFF_ON"] - self.reconnect_delay = [[1.5, 5], [1.5, 6]] - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # read AP list - self.ap_list = [] - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROP, " + cmd_set[i][1][j] + ")))" - exec cmd_string - - folder_path = MakeFolder.make_folder(LOG_FOLDER) - file_name = "JAP_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) - self._performance_log_file = os.path.join(folder_path, file_name) - - # test statistics - self._succeed_count = self._fail_count = self._time_cost_count = 0 - self._total_time = self._longest_time = 0 - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - # get target type "SSC" or "AT" - self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] - self.target_type.append("SSC" if test_env.get_port_by_name("AT1") is None else "AT") - self._utility = WifiConnUtility.WifiConnUtility(self) - pass - - def _generate_random_ap_prop(self): - ap_prop = dict.fromkeys(AP_PROP) - # generate target ap_value - ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) - ap_prop["channel"] = random.choice(range(1, 14)) - ap_prop["enc"] = random.choice(ENC_TYPE) - ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) - # generate string - if self.target_type[0] == self.target_type[1] == "AT": - ap_prop["ssid"] = Encoding.generate_random_utf8_str(ap_prop["ssid_len"]) - ap_prop["pwd"] = Encoding.generate_random_utf8_str(ap_prop["pwd_len"]) - # NativeLog.add_trace_info("ssid hex is : %x" % ap_prop["ssid"]) - # NativeLog.add_trace_info("pwd hex is : %x" % ap_prop["pwd"]) - else: - ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) - ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) - - return ap_prop - - def _logging_performance(self, ssid, join_method="Normal", time_cost=0): - # log performance to performance log file - with open(self._performance_log_file, "ab+") as f: - # log time and ssid - f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % - (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) - if join_method == "Normal" or join_method == "OFF_ON": - if time_cost is not False: - self._succeed_count += 1 - if join_method == "Normal": - f.write("[Succeed][%f]\r\n" % time_cost) - self._longest_time = (time_cost > self._longest_time and - [time_cost] or [self._longest_time])[0] - self._time_cost_count += 1 - self._total_time += time_cost - else: - f.write("[Succeed][%s]\r\n" % join_method) - else: - self._fail_count += 1 - f.write("[Fail][%s]\r\n" % join_method) - pass - - def _logging_fail_step(self, ssid, step): - with open(self._performance_log_file, "ab+") as f: - f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % - (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) - f.write("[Fail][%s]\r\n" % step) - pass - - def _generate_performance_report(self): - with open(self._performance_log_file, "ab+") as f: - f.write("[Test report] Succeed: %d\r\n" % self._succeed_count) - f.write("[Test report] Failed: %d\r\n" % self._fail_count) - if self._succeed_count > 0 or self._fail_count > 0: - f.write("[Test report] Pass Rate: %f\r\n" % - (self._succeed_count/(self._fail_count+self._succeed_count))) - if self._time_cost_count > 0: - f.write("[Test report] Average time: %f\r\n" % (self._total_time/self._time_cost_count)) - f.write("[Test report] Longest time: %f\r\n" % self._longest_time) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # mandatory configurable params - try: - target_ap_num = self.target_ap_num - test_count = self.test_count - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) - raise StandardError("Error configuration") - - # prepare ap list - _ap_list = [["target", None]] * target_ap_num - for _ap_prop in self.ap_list: - _ap_list.append(["AP", _ap_prop]) - - # set to correct mode first - # self._utility.set_mode([1, 2]) - - for _ap in _ap_list: - # arrange ap - _ap_type = _ap[0] - _ap_prop = _ap[1] - if _ap_type == "target": - _ap_prop = self._generate_random_ap_prop() - - for i in xrange(test_count): - # step 3 : mandatory step, join AP - _join_test_method = "Normal" - time_cost = self._utility.join_ap(_join_test_method, _ap_type, _ap_prop, self.join_delay) - # log performance to performance log file - self._logging_performance(_ap_prop["ssid"], _join_test_method, time_cost) - NativeLog.add_prompt_trace("[Step] Join AP done") - - NativeLog.add_prompt_trace("[WifiJAP] One AP Done") - - # generate report and cleanup - self._generate_performance_report() - - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/IOT/__init__.py b/components/test/TestCaseScript/IOT/__init__.py deleted file mode 100755 index db0afd1fc..000000000 --- a/components/test/TestCaseScript/IOT/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__author__ = 'Administrator' diff --git a/components/test/TestCaseScript/MeshStress/MeshSendRecv.py b/components/test/TestCaseScript/MeshStress/MeshSendRecv.py deleted file mode 100755 index bad4619a7..000000000 --- a/components/test/TestCaseScript/MeshStress/MeshSendRecv.py +++ /dev/null @@ -1,525 +0,0 @@ -from __future__ import division -import time -import threading -import re -import random -import os -import binascii - -from TCAction import PerformanceTCBase -from NativeLog import NativeLog -from NativeLog import HTMLGenerator -from comm import MeshPort -from Utility import Encoding - -# check frequency in second -CHECK_FREQ = 0.05 -# check timeout in seconds -CHECK_TIMEOUT = 30 -# multicast group len -MULTICAST_GROUP_LEN = 2 - - -LOG_PATH = os.path.join("..", "log") - -def _convert_to_mesh_mac_format(value_in): - value_out = "" - match_list = re.findall("([0-9a-fA-F]+)", value_in) - try: - for i in range(6): - value_out += "%02X" % int(match_list[i], base=16) - pass - except StandardError, e: - NativeLog.add_exception_log(e) - raise e - return value_out - -class SendRecvTime(threading.Thread): - def __init__(self): - threading.Thread.__init__(self) - self.setDaemon(True) - self.send_time = dict() - self.recv_time = dict() - self.send_time_lock = threading.Lock() - self.recv_time_lock = threading.Lock() - - def add_send_time(self, key, timestamp): - with self.send_time_lock: - self.send_time[key] = timestamp - - def add_recv_time(self, key, timestamp): - with self.recv_time_lock: - if key in self.recv_time.keys(): - self.recv_time[key].append(timestamp) - else: - self.recv_time[key] = [timestamp] - - def calculate(self): - # add compute delay time code here - print 'send dict len:', len(self.send_time) - print 'recv dict len:', len(self.recv_time) - recv_time_keys = self.recv_time.keys() - Max_delay_time = 0.0 - Total_delay_time = 0.0 - # for i in range(len(recv_time_keys)): - # key = recv_time_keys[i] - for key in recv_time_keys: - Total_delay_time_t = 0.0 - if isinstance(self.recv_time[key], list): - for time1 in self.recv_time[key]: - if time1 - self.send_time[key] >= Max_delay_time: - Max_delay_time = time1 - self.send_time[key] - Total_delay_time_t += (time1 - self.send_time[key]) - else: - pass - else: - if self.recv_time[key] - self.send_time[key] > Max_delay_time: - Max_delay_time = self.recv_time[key] - self.send_time[key] - Total_delay_time_t += (self.recv_time[key] - self.send_time[key]) - Total_delay_time_t += (Total_delay_time_t / len(self.recv_time[key])) - Total_delay_time += Total_delay_time_t - Avg_delay_time = Total_delay_time / len(recv_time_keys) - loss_rate = (len(self.send_time.keys()) - len(self.recv_time.keys())) / len(self.send_time.keys()) - return [Max_delay_time, Avg_delay_time, loss_rate] - pass - -class EntitySendThread(threading.Thread): - def __init__(self, port, behavior, unicast_addr, send_delay, typ, device_mac_list, server_addr, send_recv_time): - threading.Thread.__init__(self) - self.setDaemon(True) - self.recv_data_cache = "" - self.packets_sent = 0 - self.port = port - self.behavior = behavior - self.typ = typ - self.unicast_addr = unicast_addr - self.node_num = len(device_mac_list) - self.device_mac_list = list(device_mac_list) - self.server_addr = server_addr - if typ != "SERVER": - self.device_mac_list.remove(port.device_mac) - self.send_delay = send_delay - self.cache_lock = threading.Lock() - self.exit_event = threading.Event() - self.send_recv_time = send_recv_time - pass - - def data_recv_callback(self, data): - with self.cache_lock: - self.recv_data_cache += data - if self.typ == "SSC": - while True: - if self.recv_data_cache is not None: - match = re.compile(".+\+MSEND1:\d+:OK", re.DOTALL) - res = match.search(self.recv_data_cache) - index = re.search("\+MSEND1:(\d+):OK", self.recv_data_cache) - if index is not None: - time1 = time.time() - index1 = int(index.group(1)) - self.send_recv_time.add_send_time(index1, time1) - #print 'send index:', index1 - process_index = res.group().split("MSEND1") - if len(process_index) > 1: - process_index_t = len(process_index[0]) + len("MSEND1") - self.recv_data_cache = self.recv_data_cache[process_index_t:] - else: - self.recv_data_cache = self.recv_data_cache[len(res.group()):] - else: - break - else: - break - pass - - - def __server_send_packet(self, dst_addr, option_list=None, group_addr=None): - ver = 0x0 - flags = 0x0 - proto = 0x0 - index = random.randint(10000, 999999999) - if group_addr is not None: - len_t = hex(len(group_addr) * 6).split("0x") - if len(group_addr) <= 2: - option_list = "070" + len_t[1] - else: - option_list = "07" + len_t[1] - group = "" - for addr in group_addr: - group += _convert_to_mesh_mac_format(addr) - option_list += group - else: - option_list = None - if self.behavior == "broadcast": - dst_addr = "00:00:00:00:00:00" - elif self.behavior == "unicast": - if self.unicast_addr == "random": - dst_addr = random.choice(self.device_mac_list) - else: - dst_addr = self.unicast_addr - elif self.behavior == "p2p": - proto = 0x2 - if self.unicast_addr == "random": - dst_addr = random.choice(self.device_mac_list) - else: - dst_addr = self.unicast_addr - packet = MeshPort.Packet(ver=ver, flags=flags, proto=proto, - dst_addr=dst_addr, src_addr=self.server_addr, option_list=option_list, data="A" * 100, index=index) - send_data = packet.dumps - try: - self.port.socket.send(send_data) - time2 = time.time() - self.send_recv_time.add_send_time(index, time2) - except StandardError, e: - NativeLog.add_exception_log(e) - return False - - def __server_do_send(self): - if self.behavior == "broadcast": - if self.__server_send_packet(dst_addr="00:00:00:00:00:00", group_addr=None) is True: - self.packets_sent += self.node_num - elif self.behavior == "multicast": - random.shuffle(self.device_mac_list) - group_addr_list = self.device_mac_list[:MULTICAST_GROUP_LEN] - if self.__server_send_packet(dst_addr="01:00:5E:00:00:00", group_addr=group_addr_list) is True: - self.packets_sent += MULTICAST_GROUP_LEN - elif self.behavior == "unicast": - if self.__server_send_packet(dst_addr=random.choice(self.device_mac_list), group_addr=None) is True: - self.packets_sent += 1 - elif self.behavior == "p2p": - if self.__server_send_packet(dst_addr=random.choice(self.device_mac_list), group_addr=None) is True: - self.packets_sent += 1 - else: - NativeLog.add_trace_critical("unsupported behavior [%s]" % self.behavior) - self.exit() - return - - def __node_send_packet(self, dst_addr, group_addr=None): - send_data = "" - ret = False - if group_addr is not None: - len_t = hex(len(group_addr) * 6).split("0x") - if len(group_addr) <= 2: - option_list = "070" + len_t[1] - else: - option_list = "07" + len_t[1] - group = "" - for addr in group_addr: - group += _convert_to_mesh_mac_format(addr) - option_list += group - dst_addr = "01:00:5E:00:00:00" - send_data = "meshsend -S -d %s -o %s -l 100\r\n" % (dst_addr, option_list) - else: - if self.behavior == "broadcast": - dst_addr = "00:00:00:00:00:00" - send_data = "meshsend -S -d %s -l 100\r\n" % dst_addr - elif self.behavior == "unicast": - if self.unicast_addr == "random": - dst_addr = random.choice(self.device_mac_list) - else: - dst_addr = self.unicast_addr - send_data = "meshsend -S -d %s -l 100\r\n" % dst_addr - elif self.behavior == "p2p": - if self.unicast_addr == "random": - dst_addr = random.choice(self.device_mac_list) - else: - dst_addr = self.unicast_addr - send_data = "meshsend -S -d %s -t 1 -l 100\r\n" % dst_addr - try: - self.port.write(send_data) - except StandardError, e: - NativeLog.add_exception_log(e) - pass - for i in range(int(CHECK_TIMEOUT / CHECK_FREQ)): - time.sleep(CHECK_FREQ) - with self.cache_lock: - if self.recv_data_cache.find("+MESHSEND:OK") != -1: - ret = True - break - elif self.recv_data_cache.find("+MESHSEND:ERROR") != -1: - break - return ret - - - def __node_do_send(self): - if self.behavior == "broadcast": - if self.__node_send_packet("00:00:00:00:00:00", group_addr=None) is True: - self.packets_sent += self.node_num - elif self.behavior == "multicast": - random.shuffle(self.device_mac_list) - group_addr_list = self.device_mac_list[:MULTICAST_GROUP_LEN] - if self.__node_send_packet("01:00:5E:00:00:00", group_addr_list) is True: - self.packets_sent += MULTICAST_GROUP_LEN - elif self.behavior == "unicast": - if self.__node_send_packet(random.choice(self.device_mac_list), group_addr=None) is True: - self.packets_sent += 1 - elif self.behavior == "p2p": - if self.__node_send_packet(random.choice(self.device_mac_list), group_addr=None) is True: - self.packets_sent += 1 - else: - NativeLog.add_trace_critical("unsupported behavior [%s]" % self.behavior) - self.exit() - return - - def get_sent_packets(self): - return self.packets_sent - - def exit(self): - self.exit_event.set() - pass - - def run(self): - while self.exit_event.isSet() is False: - if self.typ == "SSC": - self.__node_do_send() - elif self.typ == "SERVER": - self.__server_do_send() - else: - NativeLog.add_trace_critical("type [%s] is neither SSC nor SERVER" % self.typ) - break - time.sleep(self.send_delay) - - pass - - -class EntityRecvThread(threading.Thread): - def __init__(self, port, typ, send_recv_time): - threading.Thread.__init__(self) - self.setDaemon(True) - self.recv_data_cache = "" - self.packets_recv = 0 - self.port = port - self.typ = typ - self.cache_lock = threading.Lock() - self.exit_event = threading.Event() - self.send_recv_time = send_recv_time - pass - - def data_recv_callback(self, data): - # if self.typ == "SERVER": - # NativeLog.add_prompt_trace("[data_recv_callback] server recv len %d" % len(data)) - with self.cache_lock: - self.recv_data_cache += data - pass - - def __server_do_recv(self): - while True: - if self.recv_data_cache: - data_cache = self.recv_data_cache - data_cache_hex = binascii.hexlify(data_cache) - packet_len = int(data_cache_hex[2:6], 16) - if len(self.recv_data_cache) >= packet_len: - time3 = time.time() - data_catch_t = self.recv_data_cache[:packet_len] - packet = binascii.hexlify(data_catch_t) - index3 = int(packet[-8:], 16) - self.send_recv_time.add_recv_time(index3, time3) - self.recv_data_cache = self.recv_data_cache[packet_len:] - else: - break - #self.packets_recv += 1 - else: - break - - def __node_do_recv(self): - with self.cache_lock: - while True: - if self.recv_data_cache: - match = re.search("\+MESHRECV:\d+", self.recv_data_cache) - index = re.search(",(\d+),OK", self.recv_data_cache) - res = re.compile(".+,\d+,OK", re.DOTALL) - res_t = res.search(self.recv_data_cache) - if match is not None: - time4 = time.time() - if index is not None: - index4 = int(index.group(1)) - self.send_recv_time.add_recv_time(index4, time4) - if len(res_t.group()) > 1: - process_index = len(res_t.group(0)) - self.recv_data_cache = self.recv_data_cache[process_index:] - else: - process_index = len(res_t.group()) - self.recv_data_cache = self.recv_data_cache[process_index:] - else: - break - else: - break - # self.packets_recv += 1 - else: - break - pass - - def get_recv_packets(self): - return self.packets_recv - - def exit(self): - self.exit_event.set() - pass - - def run(self): - while self.exit_event.isSet() is False: - if self.typ == "SSC": - self.__node_do_recv() - elif self.typ == "SERVER": - self.__server_do_recv() - else: - NativeLog.add_trace_critical("type [%s] is neither SSC nor SERVER" % self.typ) - break - time.sleep(CHECK_FREQ) - - pass - - -class MeshSendRecv(PerformanceTCBase.PerformanceTCBase): - def __init__(self, name, test_env, cmd_set, timeout, log_path): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.send_config = [] - self.test_time = 0 - self.loss_rate_standard = 0.8 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # load node send config - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.send_config.extend([" + cmd_set[i][1][j] + "])" - exec cmd_string - node_num = self.get_parameter("node_num") - self.recv_cb = dict.fromkeys(["SSC%s" % (x + 1) for x in range(int(node_num))] + ["GSOC1"]) - self.recv_cb_lock = threading.Lock() - pass - - def register_recv_callback(self, port_name, callback): - with self.recv_cb_lock: - if self.recv_cb[port_name] is None: - self.recv_cb[port_name] = [callback] - else: - self.recv_cb[port_name].append(callback) - pass - - def process(self): - try: - test_time = self.test_time * 60 - send_config = self.send_config - loss_rate_standard = self.loss_rate_standard - node_num = self.get_parameter("node_num") - pc_ip_list = self.get_parameter("pc_ip").split(".") - port = self.get_parameter("test_tcp_port1") - send_recv_time = SendRecvTime() - except StandardError: - return - #create server_addr - server_addr = "" - for i in range(len(pc_ip_list)): - if pc_ip_list[i] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: - server_addr = server_addr + "0" + pc_ip_list[i] - else: - list_t = hex(int(pc_ip_list[i])).split("0x") - server_addr += list_t[1] - port_t = hex(port).split("0x") - port_t_list = list(port_t[1]) - server_addr = server_addr + port_t_list[2] + port_t_list[3] + port_t_list[0] + port_t_list[1] - server_port = self.test_env.get_port_by_name("GSOC1") - if server_port is None: - return - - # create thread dict - thread_dict = dict.fromkeys(["SSC%s" % (x + 1) for x in range(int(node_num))] + ["GSOC1"]) - for port_name in thread_dict: - thread_dict[port_name] = dict(zip(["tx", "rx"], [None, None])) - device_mac_list = [] - # init recv thread & register port for SSC - for port_name in ["SSC%s" % (x + 1) for x in range(int(node_num))]: - port = self.test_env.get_port_by_name(port_name) - thread_dict[port_name]["rx"] = EntityRecvThread(port, "SSC", send_recv_time) - self.register_recv_callback(port_name, thread_dict[port_name]["rx"].data_recv_callback) - device_mac_list.append(port.device_mac) - - thread_dict["GSOC1"]["rx"] = EntityRecvThread(server_port, "SERVER", send_recv_time) - self.register_recv_callback("GSOC1", thread_dict["GSOC1"]["rx"].data_recv_callback) - - # config[0]: target_name; config[1]: behavior; config[2]: destination; config[3]:send_delay; - for config in send_config: - port = self.test_env.get_port_by_name(config[0]) - name = port.name - if config[2] == "GSOC1": - dst = server_addr[:2] + ":" + server_addr[2:4] + ":" + server_addr[4:6] + ":" + server_addr[6:8] + \ - ":" + server_addr[8:10] + ":" + server_addr[10:12] - elif config[2] == "random": - dst = "random" - else: - dst = self.test_env.get_port_by_name(config[2]).device_mac - if name != "GSOC1": - server_addr = None - if config[1] == "broadcast" or config[1] == "multicast": - dst = None - typ = "SSC" if isinstance(port, MeshPort.MeshPort) is False else "SERVER" - thread_dict[name]["tx"] = EntitySendThread(port, config[1], dst, config[3], typ, device_mac_list, - server_addr, send_recv_time) - self.register_recv_callback(name, thread_dict[name]["tx"].data_recv_callback) - pass - - # start all thread - for port_name in thread_dict: - if thread_dict[port_name]["rx"] is not None: - thread_dict[port_name]["rx"].start() - if thread_dict[port_name]["tx"] is not None: - thread_dict[port_name]["tx"].start() - - # wait test time - time.sleep(test_time) - # close all send thread - for port_name in thread_dict: - if thread_dict[port_name]["tx"] is not None: - thread_dict[port_name]["tx"].exit() - thread_dict[port_name]["tx"].join() - # make sure all packet received before close recv thread - time.sleep(10) - # close all recv thread - for port_name in thread_dict: - if thread_dict[port_name]["rx"] is not None: - thread_dict[port_name]["rx"].exit() - thread_dict[port_name]["rx"].join() - - [max_delay_time, avg_delay_time, loss_rate] = send_recv_time.calculate() - - NativeLog.add_trace_critical("[Mesh Send Recv Test] MAX Delay Time is %.3f" % max_delay_time) - NativeLog.add_trace_critical("[Mesh Send Recv Test] Avg Delay Time is %.3f" % avg_delay_time) - NativeLog.add_trace_critical("[Mesh Send Recv Test] loss rate is %.2f%%" % (loss_rate * 100)) - - # set succeed if loss rate higher than required - if loss_rate < loss_rate_standard: - self.set_result("Succeed") - pass - - @Encoding.encode_utf8(3) - def result_check(self, port_name, data): - if port_name in self.recv_cb: - # if port_name == "GSOC1": - # NativeLog.add_prompt_trace("[result_check] recv GSOC1 data len %s" % len(data)) - with self.recv_cb_lock: - callback_list = self.recv_cb[port_name] - if callback_list is not None: - for callback in callback_list: - callback(data) - - # do logging - timestamp = NativeLog.generate_timestamp() - with self.sync_lock: - _formatted_data = HTMLGenerator.process_one_log_item(data, self.log_index, port_name, timestamp) - self.log_index += 1 - - self.append_to_log_file(_formatted_data) - - NativeLog.add_all_tc_log(data, port_name, timestamp) - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/MeshStress/__init__.py b/components/test/TestCaseScript/MeshStress/__init__.py deleted file mode 100755 index 6e94287c4..000000000 --- a/components/test/TestCaseScript/MeshStress/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["StableCase1"] \ No newline at end of file diff --git a/components/test/TestCaseScript/SSLTest/Capability.py b/components/test/TestCaseScript/SSLTest/Capability.py deleted file mode 100755 index efdb6eeb9..000000000 --- a/components/test/TestCaseScript/SSLTest/Capability.py +++ /dev/null @@ -1,90 +0,0 @@ - - -class SSLCapability(object): - CAPABILITY_TYPE = ["version", "cipher_suite", "fragment_size", # for hello capability negotiation - "verify_server", "verify_client", # if support verify server/client - "key_algorithm", "key_encoding", "pem_encryption", # what kind of private it supports - "certificate_encoding", "certificate_digest", # what kind of certificate it supports - ] - SSL_TYPE = ("TargetClient", "TargetServer", "PCClient", "PCServer") - - def __init__(self, typ, **kwargs): - assert typ in self.SSL_TYPE - self.type = typ - self.capability = dict.fromkeys(self.CAPABILITY_TYPE, None) - for kw in kwargs: - self.capability[kw] = kwargs[kw] - for kw in self.capability: - assert self.capability[kw] is not None - pass - - def get(self, kw): - return self.capability[kw] - - def set(self, **kwargs): - for kw in kwargs: - self.capability[kw] = kwargs[kw] - pass - - -class TargetSSLCapability(SSLCapability): - DEFAULT_CAPABILITY = { - "version": ["SSLv23_2"], - "cipher_suite": ["TLS_RSA_WITH_AES_128_CBC_SHA", - "TLS_RSA_WITH_AES_256_CBC_SHA", - "TLS_RSA_WITH_RC4_128_SHA", - "TLS_RSA_WITH_RC4_128_MD5"], - "fragment_size": [2048, 4096, 8192], - "verify_server": True, - "verify_client": False, - "key_algorithm": ["RSA512", "RSA1024", "RSA2048", "RSA4096"], - "key_encoding": ["PEM", "DER"], - "pem_encryption": [None, "aes128", "aes256"], - "certificate_encoding": ["PEM", "DER"], - "certificate_digest": ["md5", "sha1", "sha256", "sha384", "sha512"], - } - - def __init__(self, typ, **kwargs): - assert typ == "TargetClient" or typ == "TargetServer" - capability = dict(self.DEFAULT_CAPABILITY) - for kw in kwargs: - capability[kw] = kwargs[kw] - SSLCapability.__init__(self, typ, **capability) - pass - pass - - -class PCSSLCapability(SSLCapability): - DEFAULT_CAPABILITY = { - "version": ["SSLv23", "SSLv20", "SSLv30", "TLSv10", "TLSv11", "TLSv12"], - "cipher_suite": ["TLS_RSA_WITH_AES_128_CBC_SHA", - "TLS_RSA_WITH_AES_256_CBC_SHA", - "TLS_RSA_WITH_RC4_128_SHA", - "TLS_RSA_WITH_RC4_128_MD5", - "TLS_DH_DSS_WITH_AES_128_CBC_SHA", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"], - "fragment_size": [16384], - "verify_server": True, - "verify_client": True, - "key_algorithm": ["RSA512", "RSA1024", "RSA2048", "RSA4096"], - "key_encoding": ["PEM"], - "pem_encryption": [None], - "certificate_encoding": ["PEM"], - "certificate_digest": ["md5", "sha1", "sha256", "sha384", "sha512"], - } - - def __init__(self, typ): - assert typ == "PCClient" or typ == "PCServer" - SSLCapability.__init__(self, typ, **self.DEFAULT_CAPABILITY) - pass - pass - - -def main(): - pc = PCSSLCapability("PCClient") - target = TargetSSLCapability("TargetClient") - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/ConfigUtility.py b/components/test/TestCaseScript/SSLTest/ConfigUtility.py deleted file mode 100755 index f36fe44fe..000000000 --- a/components/test/TestCaseScript/SSLTest/ConfigUtility.py +++ /dev/null @@ -1,333 +0,0 @@ -from PKI import PKIDict, PKIItem -import Parameter - - -def multiply_2_lists(list1, list2): - def make_list(li): - if not isinstance(li, list): - li = [li] - return li - list1 = make_list(list1) - list2 = make_list(list2) - ret = [] - for a in list1: - for b in list2: - ret.append(make_list(a) + make_list(b)) - return ret - - -def list_multiply(list1, *args): - ret = list1 - for arg in args: - ret = multiply_2_lists(ret, arg) - return ret - - -def list_and(list1, list2): - ret = [] - for item in list1: - if item in list2: - ret.append(item) - return ret - - -class ComputeResult(object): - NEGOTIATION_CONFIG = ["client_version", "client_cipher_suite", "client_fragment_size", - "server_version", "server_cipher_suite", "server_fragment_size"] - CERT_KEY_CONFIG = ["verify_server", "verify_client", - "client_trust_anchor", "client_certificate", "client_key", - "server_trust_anchor", "server_certificate", "server_key"] - - TYPE_CONTEXT = "context" - TYPE_NEGOTIATION = "negotiation" - TYPE_CERT_KEY = "cert_key" - TYPE_SEND_PARAM = "send_param" - - # results - SUCCEED = 0 - CREATE_CONTEXT_FAIL = 1 - HANDSHAKE_FAIL = 2 - CERT_KEY_FAIL = 3 - - def __init__(self, client_capability, server_capability): - self.client_capability = client_capability - self.server_capability = server_capability - pass - - @staticmethod - def __check_cert(cert, capability, check_encoding=True): - ret = True - if cert.name is not None: - if check_encoding is True: - if cert.digest not in capability.get("certificate_digest") \ - or cert.key_algorithm not in capability.get("key_algorithm") \ - or cert.file_encoding not in capability.get("certificate_encoding"): - ret = False - else: - if cert.digest not in capability.get("certificate_digest") \ - or cert.key_algorithm not in capability.get("key_algorithm"): - ret = False - return ret - - @staticmethod - def __check_key(key, capability, check_encoding=True): - ret = True - if key.name is not None: - if check_encoding is True: - if key.algorithm not in capability.get("key_algorithm") \ - or key.file_encoding not in capability.get("key_encoding") \ - or key.file_encryption not in capability.get("pem_encryption"): - ret = False - else: - if key.algorithm not in capability.get("key_algorithm") \ - or key.file_encryption not in capability.get("pem_encryption"): - ret = False - return ret - - # compute result functions - def check_context(self, config): - result = self.SUCCEED - check_list = [(self.__check_cert, PKIItem.Certificate(config["client_trust_anchor"]), - self.client_capability), - (self.__check_cert, PKIItem.Certificate(config["client_certificate"]), - self.client_capability), - (self.__check_key, PKIItem.PrivateKey(config["client_key"]), - self.client_capability), - (self.__check_cert, PKIItem.Certificate(config["server_trust_anchor"]), - self.server_capability), - (self.__check_cert, PKIItem.Certificate(config["server_certificate"]), - self.server_capability), - (self.__check_key, PKIItem.PrivateKey(config["server_key"]), - self.server_capability)] - for _check in check_list: - if _check[0](_check[1], _check[2]) is False: - result = self.CREATE_CONTEXT_FAIL - break - return result - - def check_negotiation_param(self, config): - result = self.SUCCEED - # first check version - while True: - if Parameter.VERSION[config["client_version"]]\ - & Parameter.VERSION[config["server_version"]] == 0: - result = self.HANDSHAKE_FAIL - break - # check cipher suite - supported_cipher_suite = list_and(self.client_capability.get("cipher_suite"), - self.server_capability.get("cipher_suite")) - if config["client_cipher_suite"] not in supported_cipher_suite\ - or config["server_cipher_suite"] not in supported_cipher_suite\ - or config["client_cipher_suite"] != config["server_cipher_suite"]: - result = self.HANDSHAKE_FAIL - break - break - return result - - # check cert key, if it can be supported by both client and server, if it matches - def __check_cert_key_content(self, cert, key): - if self.__check_cert(cert, self.client_capability, check_encoding=False) is True\ - and self.__check_cert(cert, self.server_capability, check_encoding=False) is True \ - and self.__check_key(key, self.client_capability, check_encoding=False) is True \ - and self.__check_key(key, self.server_capability, check_encoding=False) is True \ - and key.name.find(cert.private_key) != -1: - result = True - else: - result = False - return result - - def __verify_ca(self, ca, cert, capability): - result = True - while True: - # if ca supported - if self.__check_cert(ca, capability) is False: - result = False - break - # check if ca in cert chain - try: - index = cert.cert_chain.index(ca.name) - except StandardError: - result = False - break - - # for pem cert, it contains cert chain to issuer, any cert in chain works - # der cert do not contain cert chain - # only der root cert verify L1 cert and root cert works - if cert.file_encoding == "DER": - if len(cert.cert_chain) > 2 and index != len(cert.cert_chain) - 1: - result = False - break - # check if all certs in before trust anchor supported - for cert_name in cert.cert_chain[1:index]: - _cert = PKIItem.Certificate(cert_name + ".pem") - if self.__check_cert(_cert, capability) is False: - result = False - break - break - return result - - def __check_verify_client(self, client_cert, client_key, server_ca): - result = self.__check_cert_key_content(client_cert, client_key) - if result is True: - result = self.__verify_ca(server_ca, client_cert, self.server_capability) - return result - - def __check_verify_server(self, client_ca, server_cert): - return self.__verify_ca(client_ca, server_cert, self.client_capability) - - def check_cert_key(self, config): - result = self.SUCCEED - while True: # break if when anything failed - if (config["verify_server"] is True and self.client_capability.get("verify_server") is False) \ - or (config["verify_client"] is True and - (self.server_capability.get("verify_client") is False or - self.client_capability.get("verify_client") is False)): - result = self.CERT_KEY_FAIL - break - - server_cert = PKIItem.Certificate(config["server_certificate"]) - server_key = PKIItem.PrivateKey(config["server_key"]) - server_ca = PKIItem.Certificate(config["server_trust_anchor"]) - client_cert = PKIItem.Certificate(config["client_certificate"]) - client_key = PKIItem.PrivateKey(config["client_key"]) - client_ca = PKIItem.Certificate(config["client_trust_anchor"]) - # always check server cert key - if self.__check_cert_key_content(server_cert, server_key) is False: - result = self.CERT_KEY_FAIL - break - # if require to verify server - if config["verify_server"] is True: - if self.__check_verify_server(client_ca, server_cert) is False: - result = self.CERT_KEY_FAIL - break - # if require to verify client - if config["verify_client"] is True: - if self.__check_verify_client(client_cert, client_key, server_ca) is False: - result = self.CERT_KEY_FAIL - break - break - return result - - CHECK_FUNC = { - TYPE_CONTEXT: check_context, - TYPE_NEGOTIATION: check_negotiation_param, - TYPE_CERT_KEY: check_cert_key, - } - CONFIG_KEY = { - TYPE_CONTEXT: CERT_KEY_CONFIG, - TYPE_NEGOTIATION: NEGOTIATION_CONFIG, - TYPE_CERT_KEY: CERT_KEY_CONFIG, - } - - def compute_result(self, typ, config_list): - succeed_list = [] - fail_list = [] - for config in config_list: - if self.CHECK_FUNC[typ](self, dict(zip(self.CONFIG_KEY[typ], config))) != self.SUCCEED: - fail_list.append(config) - else: - succeed_list.append(config) - return succeed_list, fail_list - pass - - -class GenerateTestConfig(ComputeResult): - TEST_CONFIG = ComputeResult.NEGOTIATION_CONFIG + \ - ComputeResult.CERT_KEY_CONFIG - - def __init__(self, client_capability, server_capability): - ComputeResult.__init__(self, client_capability, server_capability) - self.key_dict = PKIDict.PKIDict.KEY_DICT - self.cert_dict = PKIDict.PKIDict.CERT_DICT - pass - - def generate_negotiation_config(self): - _config = list_multiply(self.client_capability.get("version"), - self.client_capability.get("cipher_suite"), - self.client_capability.get("fragment_size"), - self.server_capability.get("version"), - self.server_capability.get("cipher_suite"), - self.server_capability.get("fragment_size")) - return self.compute_result(self.TYPE_NEGOTIATION, _config) - - def __choose_cert_key(self, verify_server, verify_client, - client_ca_opt, client_cert_key_opt, - server_ca_opt, server_cert_key_opt): - pass - - # CERT_KEY_CONFIG = ["verify_server", "verify_client", - # "client_trust_anchor", "client_certificate", "client_key", - # "server_trust_anchor", "server_certificate", "server_key"] - def generate_cert_key_config(self): - # first handle not verify certificate case - _config_list = [] - for cert in PKIDict.PKIDict.CERT_DICT: - for key in PKIDict.PKIDict.KEY_DICT: - _config_list.append([False, False, None, None, None, None, cert, key]) - cert_key_succeed, context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) - cert_key_succeed, cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, cert_key_succeed) - key_cert_pair = [[x[6], x[7]] for x in cert_key_succeed] - # for succeed config, do server cert verify - _config_list = [] - for _config in cert_key_succeed: - for cert in PKIDict.PKIDict.CERT_DICT: - _config_list.append([True, False, cert, None, None, - None, _config[6], _config[7]]) - _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) - context_fail += _context_fail - _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) - cert_key_fail += _cert_key_fail - cert_key_succeed += _cert_key_succeed - # for succeed config, do client verify - _config_list = [] - for _config in _cert_key_succeed: - for key_cert in key_cert_pair: - _config_list.append([True, True, _config[2], key_cert[0], key_cert[1], - key_cert[0], _config[6], _config[7]]) - _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) - context_fail += _context_fail - _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) - cert_key_fail += _cert_key_fail - cert_key_succeed += _cert_key_succeed - # only verify client not verify server - _config_list = [] - for _config in _cert_key_succeed: - _config_list.append([False, True, None, - _config[3], _config[4], _config[5], _config[6], _config[7]]) - _cert_key_succeed, _context_fail = self.compute_result(self.TYPE_CONTEXT, _config_list) - context_fail += _context_fail - _cert_key_succeed, _cert_key_fail = self.compute_result(self.TYPE_CERT_KEY, _cert_key_succeed) - cert_key_fail += _cert_key_fail - cert_key_succeed += _cert_key_succeed - return cert_key_succeed, context_fail, cert_key_fail - - -class ConfigUtility(GenerateTestConfig): - # test config - _TEST_CONFIG_DICT_KEY = ("config", "result") - - def __init__(self, client_capability, server_capability): - GenerateTestConfig.__init__(self, client_capability, server_capability) - pass - - def get_all_test_config(self): - negotiation_succeed, negotiation_fail = self.generate_negotiation_config() - cert_key_succeed, context_fail, cert_key_fail = self.generate_cert_key_config() - succeed_config = list_multiply(negotiation_succeed, cert_key_succeed) - context_fail_config = list_multiply([negotiation_succeed[0]], context_fail) - negotiation_fail_config = list_multiply(negotiation_fail, [cert_key_succeed[0]]) - cert_key_fail_config = list_multiply([negotiation_succeed[0]], cert_key_fail) - return dict(zip(["succeed", "context_fail", "negotiation_fail", "cert_key_fail"], - [[dict(zip(self.TEST_CONFIG, x)) for x in succeed_config], - [dict(zip(self.TEST_CONFIG, x)) for x in context_fail_config], - [dict(zip(self.TEST_CONFIG, x)) for x in negotiation_fail_config], - [dict(zip(self.TEST_CONFIG, x)) for x in cert_key_fail_config]])) - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/Parameter.py b/components/test/TestCaseScript/SSLTest/Parameter.py deleted file mode 100755 index 1670c5fd2..000000000 --- a/components/test/TestCaseScript/SSLTest/Parameter.py +++ /dev/null @@ -1,56 +0,0 @@ - - -VERSION = { - "SSLv23": 0x1F, - "SSLv23_2": 0x1C, # current target ssl implementation do not support SSLv20 and TLSv12 - "SSLv20": 0x01, - "SSLv30": 0x02, - "TLSv10": 0x04, - "TLSv11": 0x08, - "TLSv12": 0x10, -} - - -CIPHER_SUITE = { - # supported algorithm - "TLS_RSA_WITH_AES_128_CBC_SHA": "AES128-SHA", - "TLS_RSA_WITH_AES_256_CBC_SHA": "AES256-SHA", - "TLS_RSA_WITH_RC4_128_SHA": "RC4-SHA", - "TLS_RSA_WITH_RC4_128_MD5": "RC4-MD5", - "TLS_DH_DSS_WITH_AES_128_CBC_SHA": "DH-DSS-AES128-SHA", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": "ECDHE-RSA-AES128-GCM-SHA256", -} - - -FRAGMENT_SIZE = { - "SIZE_DEFAULT": 0, - "SIZE_512": 512, - "SIZE_1024": 1024, - "SIZE_2048": 2048, - "SIZE_4096": 4096, - "SIZE_8192": 8192, -} - - -VERIFY_OPTION = { - "NOT_VERIFY": "NOT_VERIFY", - "VERIFY": "VERIFY", -} - - -SEND_OPTION = { - "MAX_SEND_SIZE_512": 512, - "MAX_SEND_SIZE_1K": 1024, - "MAX_SEND_SIZE_2K": 2048, - "MAX_SEND_SIZE_4K": 4096, - "MAX_SEND_SIZE_8K": 8192, - "MAX_SEND_SIZE_16K": 16384, -} - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/SSLHandler.py b/components/test/TestCaseScript/SSLTest/SSLHandler.py deleted file mode 100644 index 7fe19b3ce..000000000 --- a/components/test/TestCaseScript/SSLTest/SSLHandler.py +++ /dev/null @@ -1,498 +0,0 @@ -import socket -import ssl -import os -import re -import time -import threading - -import Parameter -from PKI import PKIDict -from PKI import PKIItem -from NativeLog import NativeLog - - -class SerialPortCheckFail(StandardError): - pass - - -class SSLHandlerFail(StandardError): - pass - - -class PCFail(StandardError): - pass - - -class TargetFail(StandardError): - pass - - -def ssl_handler_wrapper(handler_type): - if handler_type == "PC": - exception_type = PCFail - elif handler_type == "Target": - exception_type = TargetFail - else: - exception_type = None - - def _handle_func(func): - def _handle_args(*args, **kwargs): - try: - ret = func(*args, **kwargs) - except StandardError, e: - NativeLog.add_exception_log(e) - raise exception_type(str(e)) - return ret - return _handle_args - return _handle_func - - -class SerialPort(object): - def __init__(self, tc_action, port_name): - self.tc_action = tc_action - self.port_name = port_name - - def flush(self): - self.tc_action.flush_data(self.port_name) - - def write_line(self, data): - self.tc_action.serial_write_line(self.port_name, data) - - def check(self, condition, timeout=10): - if self.tc_action.check_response(self.port_name, condition, timeout) is False: - raise SerialPortCheckFail("serial port check fail, condition is %s" % condition) - - def read_data(self): - return self.tc_action.serial_read_data(self.port_name) - pass - - -class SSLHandler(object): - # ssl operation timeout is 30 seconds - TIMEOUT = 30 - - def __init__(self, typ, config, serial_port): - self.type = typ - self.config = config - self.timeout = self.TIMEOUT - self.serial_port = serial_port - self.accept_thread = None - self.data_validation = False - - def set_timeout(self, timeout): - self.timeout = timeout - - def init_context(self): - pass - - def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): - pass - - def listen(self, local_port=0, local_ip=0): - pass - - def send(self, size, data): - pass - - def recv(self, length, timeout): - pass - - def set_data_validation(self, validation): - pass - - def close(self): - if self.accept_thread is not None: - self.accept_thread.exit() - self.accept_thread.join(5) - pass - - -class TargetSSLHandler(SSLHandler): - def __init__(self, typ, config, serial_port): - SSLHandler.__init__(self, typ, config, serial_port) - self.ssl_id = None - self.server_id = None - - @ssl_handler_wrapper("Target") - def init_context(self): - self.serial_port.flush() - self.serial_port.write_line("soc -T") - self.serial_port.check("+CLOSEALL") - - if self.type == "client": - version = Parameter.VERSION[self.config["client_version"]] - fragment = self.config["client_fragment_size"] - ca = self.config["client_trust_anchor"] - cert = self.config["client_certificate"] - key = self.config["client_key"] - verify_required = 0x01 if self.config["verify_server"] is True else 0x00 - context_type = 1 - else: - version = Parameter.VERSION[self.config["server_version"]] - fragment = self.config["server_fragment_size"] - ca = self.config["server_trust_anchor"] - cert = self.config["server_certificate"] - key = self.config["server_key"] - verify_required = 0x02 if self.config["verify_client"] is True else 0x00 - context_type = 2 - ssc_cmd = "ssl -I -t %u -r %u -v %u -o %u" % (context_type, fragment, version, verify_required) - - if ca is not None: - _index = PKIDict.PKIDict.CERT_DICT[ca] - ssc_cmd += " -a %d" % _index - if cert is not None: - _index = PKIDict.PKIDict.CERT_DICT[cert] - ssc_cmd += " -c %d" % _index - if key is not None: - _index = PKIDict.PKIDict.KEY_DICT[key] - ssc_cmd += " -k %d" % _index - # write command and check result - self.serial_port.flush() - self.serial_port.write_line(ssc_cmd) - self.serial_port.check(["+SSL:OK", "AND", "!+SSL:ERROR"]) - - @ssl_handler_wrapper("Target") - def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): - self.serial_port.flush() - self.serial_port.write_line("soc -B -t SSL -i %s -p %s" % (local_ip, local_port)) - self.serial_port.check(["OK", "AND", "!ERROR"]) - self.serial_port.flush() - self.serial_port.write_line("soc -C -s 0 -i %s -p %s" % (remote_ip, remote_port)) - self.serial_port.check(["OK", "AND", "!ERROR"], timeout=30) - self.ssl_id = 0 - pass - - def accept_succeed(self): - self.ssl_id = 1 - - class Accept(threading.Thread): - def __init__(self, serial_port, succeed_cb): - threading.Thread.__init__(self) - self.setDaemon(True) - self.serial_port = serial_port - self.succeed_cb = succeed_cb - self.exit_flag = threading.Event() - - def run(self): - while self.exit_flag.isSet() is False: - try: - self.serial_port.check("+ACCEPT:", timeout=1) - self.succeed_cb() - break - except StandardError: - pass - - def exit(self): - self.exit_flag.set() - - @ssl_handler_wrapper("Target") - def listen(self, local_port=0, local_ip=0): - self.serial_port.flush() - self.serial_port.write_line("soc -B -t SSL -i %s -p %s" % (local_ip, local_port)) - self.serial_port.check(["OK", "AND", "!ERROR"]) - self.serial_port.flush() - self.serial_port.write_line("soc -L -s 0") - self.serial_port.check(["OK", "AND", "!ERROR"]) - self.server_id = 0 - self.accept_thread = self.Accept(self.serial_port, self.accept_succeed) - self.accept_thread.start() - pass - - @ssl_handler_wrapper("Target") - def send(self, size=10, data=None): - if data is not None: - size = len(data) - self.serial_port.flush() - self.serial_port.write_line("soc -S -s %s -l %s" % (self.ssl_id, size)) - self.serial_port.check(["OK", "AND", "!ERROR"]) - pass - - @ssl_handler_wrapper("Target") - def recv(self, length, timeout=SSLHandler.TIMEOUT): - pattern = re.compile("\+RECV:\d+,(\d+)\r\n") - data_len = 0 - data = "" - time1 = time.time() - while time.time() - time1 < timeout: - data += self.serial_port.read_data() - if self.data_validation is True: - if "+DATA_ERROR" in data: - raise SSLHandlerFail("target data validation fail") - while True: - match = pattern.search(data) - if match is None: - break - else: - data_len += int(match.group(1)) - data = data[data.find(match.group())+len(match.group()):] - if data_len >= length: - result = True - break - else: - result = False - if result is False: - raise SSLHandlerFail("Target recv fail") - - def set_data_validation(self, validation): - self.data_validation = validation - self.serial_port.flush() - self.serial_port.write_line("soc -V -s %s -o %s" % (self.ssl_id, 1 if validation is True else 0)) - self.serial_port.check(["OK", "AND", "!ERROR"]) - - @ssl_handler_wrapper("Target") - def close(self): - SSLHandler.close(self) - self.serial_port.flush() - self.serial_port.write_line("ssl -D") - self.serial_port.check(["+SSL:OK", "OR", "+SSL:ERROR"]) - self.serial_port.write_line("soc -T") - self.serial_port.check("+CLOSEALL") - pass - - pass - - -def calc_hash(index): - return (index & 0xffffffff) % 83 + (index & 0xffffffff) % 167 - - -def verify_data(data, start_index): - for i, c in enumerate(data): - if ord(c) != calc_hash(start_index + i): - NativeLog.add_trace_critical("[Data Validation Error] target sent data index %u is error." - " Sent data is %x, should be %x" - % (start_index + i, ord(c), calc_hash(start_index + i))) - return False - return True - - -def make_validation_data(length, start_index): - return bytes().join([chr(calc_hash(start_index + i)) for i in range(length)]) - - -class PCSSLHandler(SSLHandler): - PROTOCOL_MAPPING = { - "SSLv23": ssl.PROTOCOL_SSLv23, - "SSLv23_2": ssl.PROTOCOL_SSLv23, - "SSLv20": ssl.PROTOCOL_SSLv2, - "SSLv30": ssl.PROTOCOL_SSLv3, - "TLSv10": ssl.PROTOCOL_TLSv1, - "TLSv11": ssl.PROTOCOL_TLSv1_1, - "TLSv12": ssl.PROTOCOL_TLSv1_2, - } - CERT_FOLDER = os.path.join(".", "PKI", PKIDict.PKIDict.CERT_FOLDER) - KEY_FOLDER = os.path.join(".", "PKI", PKIDict.PKIDict.KEY_FOLDER) - - def __init__(self, typ, config, serial_port): - SSLHandler.__init__(self, typ, config, serial_port) - self.ssl_context = None - self.ssl = None - self.server_sock = None - self.send_index = 0 - self.recv_index = 0 - - class InitContextThread(threading.Thread): - def __init__(self, handler, version, cipher_suite, ca, cert, key, verify_required, remote_cert): - threading.Thread.__init__(self) - self.setDaemon(True) - self.handler = handler - self.version = version - self.cipher_suite = cipher_suite - self.ca = ca - self.cert = cert - self.key = key - self.verify_required = verify_required - self.remote_cert = remote_cert - pass - - @staticmethod - def handle_cert(cert_file, ca_file): - cert = PKIItem.Certificate() - cert.parse_file(cert_file) - ca = PKIItem.Certificate() - ca.parse_file(ca_file) - if cert.file_encoding == "PEM" and ca.name in cert.cert_chain: - cert_chain_t = cert.cert_chain[1:cert.cert_chain.index(ca.name)] - ret = ["%s.pem" % c for c in cert_chain_t] - else: - ret = [] - return ret - - def run(self): - try: - ssl_context = ssl.SSLContext(self.version) - # cipher suite - ssl_context.set_ciphers(self.cipher_suite) - if self.ca is not None: - ssl_context.load_verify_locations(cafile=os.path.join(self.handler.CERT_FOLDER, self.ca)) - # python ssl can't verify cert chain, don't know why - # need to load cert between cert and ca for pem (pem cert contains cert chain) - if self.remote_cert is not None: - cert_chain = self.handle_cert(self.remote_cert, self.ca) - for c in cert_chain: - NativeLog.add_trace_info("load ca chain %s" % c) - ssl_context.load_verify_locations(cafile=os.path.join(self.handler.CERT_FOLDER, c)) - if self.cert is not None: - cert = os.path.join(self.handler.CERT_FOLDER, self.cert) - key = os.path.join(self.handler.KEY_FOLDER, self.key) - ssl_context.load_cert_chain(cert, keyfile=key) - if self.verify_required is True: - ssl_context.verify_mode = ssl.CERT_REQUIRED - else: - ssl_context.verify_mode = ssl.CERT_NONE - self.handler.ssl_context = ssl_context - except StandardError, e: - NativeLog.add_exception_log(e) - pass - pass - - @ssl_handler_wrapper("PC") - def init_context(self): - if self.type == "client": - version = self.PROTOCOL_MAPPING[self.config["client_version"]] - cipher_suite = Parameter.CIPHER_SUITE[self.config["client_cipher_suite"]] - ca = self.config["client_trust_anchor"] - cert = self.config["client_certificate"] - key = self.config["client_key"] - verify_required = self.config["verify_server"] - remote_cert = self.config["server_certificate"] - else: - version = self.PROTOCOL_MAPPING[self.config["server_version"]] - cipher_suite = Parameter.CIPHER_SUITE[self.config["server_cipher_suite"]] - ca = self.config["server_trust_anchor"] - cert = self.config["server_certificate"] - key = self.config["server_key"] - verify_required = self.config["verify_client"] - remote_cert = self.config["client_certificate"] - - _init_context = self.InitContextThread(self, version, cipher_suite, ca, cert, key, verify_required, remote_cert) - _init_context.start() - _init_context.join(5) - if self.ssl_context is None: - raise StandardError("Init Context Fail") - - pass - - @ssl_handler_wrapper("PC") - def connect(self, remote_ip, remote_port, local_ip=0, local_port=0): - sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - # reuse socket in TIME_WAIT state - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - sock.settimeout(self.timeout) - sock.bind((local_ip, local_port)) - self.ssl = self.ssl_context.wrap_socket(sock) - self.ssl.connect((remote_ip, remote_port)) - pass - - def accept_succeed(self, ssl_new): - ssl_new.settimeout(self.timeout) - self.ssl = ssl_new - - class Accept(threading.Thread): - def __init__(self, server_sock, ssl_context, succeed_cb): - threading.Thread.__init__(self) - self.setDaemon(True) - self.server_sock = server_sock - self.ssl_context = ssl_context - self.succeed_cb = succeed_cb - self.exit_flag = threading.Event() - - def run(self): - while self.exit_flag.isSet() is False: - try: - new_socket, addr = self.server_sock.accept() - ssl_new = self.ssl_context.wrap_socket(new_socket, server_side=True) - self.succeed_cb(ssl_new) - break - except StandardError: - pass - pass - - def exit(self): - self.exit_flag.set() - - @ssl_handler_wrapper("PC") - def listen(self, local_port=0, local_ip=0): - self.server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - # reuse socket in TIME_WAIT state - self.server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - self.server_sock.settimeout(1) - self.server_sock.bind((local_ip, local_port)) - self.server_sock.listen(5) - self.accept_thread = self.Accept(self.server_sock, self.ssl_context, self.accept_succeed) - self.accept_thread.start() - pass - - @ssl_handler_wrapper("PC") - def send(self, size=10, data=None): - if data is None: - self.ssl.send(make_validation_data(size, self.send_index)) - if self.data_validation is True: - self.send_index += size - else: - self.ssl.send(data) - - @ssl_handler_wrapper("PC") - def recv(self, length, timeout=SSLHandler.TIMEOUT, data_validation=False): - time1 = time.time() - data_len = 0 - while time.time() - time1 < timeout: - data = self.ssl.read() - - if data_validation is True and len(data) > 0: - if verify_data(data, self.recv_index) is False: - raise SSLHandlerFail("PC data validation fail, index is %s" % self.recv_index) - self.recv_index += len(data) - data_len += len(data) - if data_len >= length: - result = True - break - else: - result = False - if result is False: - raise SSLHandlerFail("PC recv fail") - - def set_data_validation(self, validation): - self.data_validation = validation - - @ssl_handler_wrapper("PC") - def close(self): - SSLHandler.close(self) - if self.ssl is not None: - self.ssl.close() - self.ssl = None - if self.server_sock is not None: - self.server_sock.close() - self.server_sock = None - del self.ssl_context - - -def main(): - ssl_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - # cipher suite - ssl_context.set_ciphers("AES256-SHA") - ssl_context.load_cert_chain("D:\workspace\\auto_test_script\PKI\Certificate\\" - "L2CertRSA512sha1_L1CertRSA512sha1_RootCertRSA512sha1.pem", - keyfile="D:\workspace\\auto_test_script\PKI\Key\PrivateKey2RSA512.pem") - ssl_context.verify_mode = ssl.CERT_NONE - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - # reuse socket in TIME_WAIT state - server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - server_sock.settimeout(100) - server_sock.bind(("192.168.111.5", 443)) - server_sock.listen(5) - while True: - try: - new_socket, addr = server_sock.accept() - ssl_new = ssl_context.wrap_socket(new_socket, server_side=True) - print "server connected" - break - except StandardError: - pass - - -pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/SSLHandshake.py b/components/test/TestCaseScript/SSLTest/SSLHandshake.py deleted file mode 100755 index 5eb68c350..000000000 --- a/components/test/TestCaseScript/SSLTest/SSLHandshake.py +++ /dev/null @@ -1,240 +0,0 @@ -import os -import random -import time -import re - -from TCAction import TCActionBase -from TCAction import PerformanceTCBase -from NativeLog import NativeLog, HTMLGenerator -from Utility import MakeFolder - -import ConfigUtility -import Capability -import SSLHandler - -LOG_FOLDER = os.path.join("AT_LOG", "TEMP") - -HEAP_SIZE_LIMIT = 30000 - - -class SSLHandshake(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.client_type = None - self.server_type = None - self.client_capability = dict() - self.server_capability = dict() - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - timestamp = time.strftime("%d%H%M%S", time.localtime()) - folder = MakeFolder.make_folder(os.path.join(LOG_FOLDER, "SSLHandshake_%s" % timestamp)) - self.tested_log = os.path.join(folder, "SSLHandshakeTested.log") - self.failed_log = os.path.join(folder, "SSLHandshakeFailed.log") - self.memory_track_log = os.path.join(folder, "SSLHandshakeMemTrack.log") - self.succeed_log = os.path.join(folder, "SSLHandshakeSucceed.log") - # store test result for failed config - self.failed_log2 = os.path.join(folder, "SSLHandshakeFailed2.log") - self.succeed_log2 = os.path.join(folder, "SSLHandshakeSucceed2.log") - - self.heap_size_pattern = re.compile("\+FREEHEAP:(\d+)\r\n") - - @staticmethod - def close(client, server): - try: - client.close() - except StandardError: - pass - try: - server.close() - except StandardError: - pass - - def query_heap_size(self, scenario="idle"): - self.flush_data("SSC1") - self.serial_write_line("SSC1", "ram -H") - match = self.check_regular_expression("SSC1", self.heap_size_pattern) - if match is None: - NativeLog.add_trace_critical("No response for SSC ram command") - else: - heap_size = int(match.group(1)) - self.log_memory("[heap size][%s] %s" % (scenario, heap_size)) - if heap_size < HEAP_SIZE_LIMIT and scenario == "idle": - NativeLog.add_trace_critical("[HeapSize] %s" % heap_size) - - pass - - def prepare_handshake_test(self): - # check if connected - self.flush_data("SSC1") - self.serial_write_line("SSC1", "sta -Q") - if self.check_response("SSC1", "+JAP:CONNECTED,") is False: - ap_ssid = self.get_parameter("ap_ssid") - ap_password = self.get_parameter("ap_password") - self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - self.check_response("SSC1", "+JAP:CONNECTED,") - self.query_heap_size() - - @staticmethod - def log_data_to_file(file_name, data): - with open(file_name, "ab+") as f: - f.write(data+"\r\n") - - def log_test_config(self, data): - # append to log - with self.sync_lock: - _formatted_data = HTMLGenerator.process_one_log_item(data) - self.append_to_log_file(_formatted_data) - self.log_data_to_file(self.tested_log, data) - - def log_memory(self, data): - self.log_data_to_file(self.memory_track_log, data) - - def log_fail(self, data, log_type="succeed"): - print data - if log_type == "succeed": - self.log_data_to_file(self.failed_log, data) - else: - self.log_data_to_file(self.failed_log2, data) - - def log_succeed(self, data, log_type="succeed"): - if log_type == "succeed": - self.log_data_to_file(self.succeed_log, data) - else: - self.log_data_to_file(self.succeed_log2, data) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - # rewrite the following code - if self.client_type == "PC": - client_capability = Capability.PCSSLCapability("PCClient") - client_handler = SSLHandler.PCSSLHandler - client_ip = self.get_parameter("pc_ip") - else: - client_capability = Capability.TargetSSLCapability("TargetClient", **self.client_capability) - client_handler = SSLHandler.TargetSSLHandler - client_ip = self.get_parameter("target_ip") - if self.server_type == "PC": - server_capability = Capability.PCSSLCapability("PCServer") - server_handler = SSLHandler.PCSSLHandler - server_ip = self.get_parameter("pc_ip") - else: - server_capability = Capability.TargetSSLCapability("TargetServer", **self.server_capability) - server_handler = SSLHandler.TargetSSLHandler - server_ip = self.get_parameter("target_ip") - - serial_port = SSLHandler.SerialPort(self, "SSC1") - # generate config - config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) - config_list_dict = config_utility.get_all_test_config() - - # succeed - for config in config_list_dict["succeed"]: - self.prepare_handshake_test() - self.log_test_config("[Succeed config] %s" % config) - port = random.randint(500, 50000) - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - try: - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=port) - client.connect(server_ip, port, local_ip=client_ip) - self.query_heap_size(scenario="connected") - self.log_succeed("[Succeed config] %s" % config) - except SSLHandler.TargetFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[Target][%s]\r\n[Failed][Succeed config] %s" % (e, config)) - except SSLHandler.PCFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[PC][%s]\r\n[Failed][Succeed config] %s" % (e, config)) - - self.close(client, server) - - # init context fail - for config in config_list_dict["context_fail"]: - self.prepare_handshake_test() - port = random.randint(500, 50000) - self.log_test_config("[Init context fail config] %s" % config) - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - try: - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=port) - client.connect(server_ip, port, local_ip=client_ip) - self.log_fail("[Target]\r\n[Failed][Init context fail config] %s" % config, log_type="failed") - except StandardError, e: - NativeLog.add_exception_log(e) - self.log_succeed("[init context fail] %s" % config, log_type="failed") - self.close(client, server) - pass - - # negotiation fail - for config in config_list_dict["negotiation_fail"]: - self.prepare_handshake_test() - self.log_test_config("[negotiation_fail] %s" % config) - port = random.randint(500, 50000) - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - try: - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=port) - except SSLHandler.TargetFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[Target][%s]\r\n[Failed][negotiation fail config] %s" % (e, config), log_type="failed") - self.close(client, server) - continue - except SSLHandler.PCFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[PC][%s]\r\n[Failed][negotiation fail config] %s" % (e, config), log_type="failed") - self.close(client, server) - continue - try: - client.connect(server_ip, port, local_ip=client_ip) - self.log_fail("[Target]\r\n[Failed][negotiation fail config] %s" % config, log_type="failed") - except StandardError, e: - NativeLog.add_exception_log(e) - self.log_succeed("[negotiation fail] %s" % config, log_type="failed") - self.close(client, server) - - # cert key fail - for config in config_list_dict["cert_key_fail"]: - self.prepare_handshake_test() - self.log_test_config("[cert_key_fail] %s" % config) - port = random.randint(500, 50000) - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - try: - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=port) - except SSLHandler.TargetFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[Target][%s]\r\n[Failed][cert_key fail config] %s" % (e, config), log_type="failed") - self.close(client, server) - continue - except SSLHandler.PCFail, e: - NativeLog.add_exception_log(e) - self.log_fail("[PC][%s]\r\n[Failed][cert_key fail config] %s" % (e, config), log_type="failed") - self.close(client, server) - continue - try: - client.connect(server_ip, port, local_ip=client_ip) - self.log_fail("[Target][Failed][cert_key fail config] %s" % config, log_type="failed") - except StandardError, e: - NativeLog.add_exception_log(e) - self.log_succeed("[cert_key_fail] %s" % config, log_type="failed") - self.close(client, server) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/SSLLowMem.py b/components/test/TestCaseScript/SSLTest/SSLLowMem.py deleted file mode 100644 index fdc058f90..000000000 --- a/components/test/TestCaseScript/SSLTest/SSLLowMem.py +++ /dev/null @@ -1,140 +0,0 @@ -import os -import random -import time -import re - -from TCAction import TCActionBase -from TCAction import PerformanceTCBase -from NativeLog import NativeLog, HTMLGenerator -from Utility import MakeFolder - -import ConfigUtility -import Capability -import SSLHandler - -LOG_FOLDER = os.path.join("AT_LOG", "TEMP") - -HEAP_SIZE_LIMIT = 30000 - - -class SSLLowMem(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.client_type = None - self.server_type = None - self.client_capability = dict() - self.server_capability = dict() - self.heap_usage_range = (10000, 30000) - self.test_time = 120 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - timestamp = time.strftime("%d%H%M%S", time.localtime()) - self.heap_size_pattern = re.compile("\+FREEHEAP:(\d+)\r\n") - - @staticmethod - def close(client, server): - try: - client.close() - except StandardError: - pass - try: - server.close() - except StandardError: - pass - - def query_heap_size(self, scenario="idle"): - self.flush_data("SSC1") - self.serial_write_line("SSC1", "ram -H") - match = self.check_regular_expression("SSC1", self.heap_size_pattern) - if match is None: - NativeLog.add_trace_critical("No response for SSC ram command") - else: - heap_size = int(match.group(1)) - if heap_size < HEAP_SIZE_LIMIT and scenario == "idle": - NativeLog.add_trace_critical("[HeapSize] %s" % heap_size) - - pass - - def prepare_handshake_test(self): - # check if connected - self.flush_data("SSC1") - self.serial_write_line("SSC1", "sta -Q") - if self.check_response("SSC1", "+JAP:CONNECTED,") is False: - ap_ssid = self.get_parameter("ap_ssid") - ap_password = self.get_parameter("ap_password") - self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - self.check_response("SSC1", "+JAP:CONNECTED,") - # random alloc memory - while True: - memory_size = random.randint(self.heap_usage_range[0], self.heap_usage_range[1]) - self.serial_write_line("SSC1", "soc -M -l %s" % memory_size) - if self.check_response("SSC1", "+SOC_BUFFER:OK", timeout=1) is True: - break - # query size - self.query_heap_size() - - @staticmethod - def log_data_to_file(file_name, data): - with open(file_name, "ab+") as f: - f.write(data+"\r\n") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - # rewrite the following code - if self.client_type == "PC": - client_capability = Capability.PCSSLCapability("PCClient") - client_handler = SSLHandler.PCSSLHandler - client_ip = self.get_parameter("pc_ip") - else: - client_capability = Capability.TargetSSLCapability("TargetClient", **self.client_capability) - client_handler = SSLHandler.TargetSSLHandler - client_ip = self.get_parameter("target_ip") - if self.server_type == "PC": - server_capability = Capability.PCSSLCapability("PCServer") - server_handler = SSLHandler.PCSSLHandler - server_ip = self.get_parameter("pc_ip") - else: - server_capability = Capability.TargetSSLCapability("TargetServer", **self.server_capability) - server_handler = SSLHandler.TargetSSLHandler - server_ip = self.get_parameter("target_ip") - - test_time = self.test_time * 60 # convert test time from minutes to seconds - - serial_port = SSLHandler.SerialPort(self, "SSC1") - # generate config - config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) - config_list_dict = config_utility.get_all_test_config() - - start_time = time.time() - - # succeed - for config in config_list_dict["succeed"]: - if time.time() - start_time > test_time: - break - self.prepare_handshake_test() - port = random.randint(500, 50000) - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - try: - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=port) - client.connect(server_ip, port, local_ip=client_ip) - self.query_heap_size(scenario="connected") - except SSLHandler.TargetFail, e: - NativeLog.add_exception_log(e) - except SSLHandler.PCFail, e: - NativeLog.add_exception_log(e) - self.close(client, server) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/SSLSendRecv.py b/components/test/TestCaseScript/SSLTest/SSLSendRecv.py deleted file mode 100644 index 13fe0b152..000000000 --- a/components/test/TestCaseScript/SSLTest/SSLSendRecv.py +++ /dev/null @@ -1,147 +0,0 @@ -import random -import time - -from TCAction import TCActionBase -from TCAction import PerformanceTCBase -from NativeLog import NativeLog -import ConfigUtility -import Capability -import SSLHandler - - -class SSLSendRecv(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=15, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.target_role = "Client" - self.max_send_len = 2048 - self.test_time = 120 - self.data_validation = False - - self.target_capability = {"version": ["SSLv23"], - "cipher_suite": ["TLS_RSA_WITH_AES_256_CBC_SHA", "TLS_RSA_WITH_AES_128_CBC_SHA"], - "fragment_size": [2048], - "verify_server": False, - "verify_client": False, - "key_algorithm": ["RSA2048"], - "key_encoding": ["PEM"], - "pem_encryption": [None], - "certificate_encoding": ["PEM"], - "certificate_digest": ["sha1"], - } - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - @staticmethod - def close(client, server): - try: - client.close() - except StandardError: - pass - try: - server.close() - except StandardError: - pass - - def cleanup(self): - self.serial_write_line("SSC1", "ssl -D") - self.check_response("SSC1", "SSL") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - - target_role = self.target_role - max_send_len = self.max_send_len - test_time = self.test_time * 60 - data_validation = self.data_validation - - ssl_port = random.randint(10000, 50000) - NativeLog.add_prompt_trace("SSL port is %s" % ssl_port) - - # make sure ssl context deinit - self.serial_write_line("SSC1", "ssl -D") - self.check_response("SSC1", "SSL") - - # close all sockets and enlarge send buffer - self.serial_write_line("SSC1", "soc -T") - self.check_response("SSC1", "CLOSEALL") - - self.serial_write_line("SSC1", "soc -M -l %s" % max_send_len) - self.check_response("SSC1", "+SOC_BUFFER:OK") - - # rewrite the following code - if target_role == "Server": - client_capability = Capability.PCSSLCapability("PCClient") - client_handler = SSLHandler.PCSSLHandler - client_ip = self.get_parameter("pc_ip") - server_capability = Capability.TargetSSLCapability("TargetServer", **self.target_capability) - server_handler = SSLHandler.TargetSSLHandler - server_ip = self.get_parameter("target_ip") - elif target_role == "Client": - client_capability = Capability.TargetSSLCapability("TargetClient", **self.target_capability) - client_handler = SSLHandler.TargetSSLHandler - client_ip = self.get_parameter("target_ip") - server_capability = Capability.PCSSLCapability("PCServer") - server_handler = SSLHandler.PCSSLHandler - server_ip = self.get_parameter("pc_ip") - else: - raise StandardError("Unsupported target role %s" % target_role) - - serial_port = SSLHandler.SerialPort(self, "SSC1") - - # generate one succeed config - config_utility = ConfigUtility.ConfigUtility(client_capability, server_capability) - config_list_dict = config_utility.get_all_test_config() - - for config in config_list_dict["succeed"]: - try: - # create connection - NativeLog.add_prompt_trace(str(config)) # do print config - client = client_handler("client", config, serial_port) - server = server_handler("server", config, serial_port) - client.init_context() - server.init_context() - server.listen(local_ip=server_ip, local_port=ssl_port) - client.connect(server_ip, ssl_port, local_ip=client_ip) - except StandardError, e: - NativeLog.add_exception_log(e) - return - - # set data validation - client.set_data_validation(data_validation) - server.set_data_validation(data_validation) - - # do send recv - time_start = time.time() - while time.time() - time_start < test_time: - send_len = random.randint(1, max_send_len) - try: - client.send(size=send_len) - client.send(size=send_len) - server.recv(send_len*2) - except StandardError, e: - NativeLog.add_exception_log(e) - NativeLog.add_prompt_trace("client send / server recv fail") - break - try: - # do send twice, try to create a tcp segment with 2 records - server.send(size=send_len) - server.send(size=send_len) - client.recv(send_len*2) - except StandardError, e: - NativeLog.add_exception_log(e) - NativeLog.add_prompt_trace("server send / client recv fail") - break - else: - self.set_result("Succeed") - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SSLTest/__init__.py b/components/test/TestCaseScript/SSLTest/__init__.py deleted file mode 100755 index 98fe3be4a..000000000 --- a/components/test/TestCaseScript/SSLTest/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["Capability", "ConfigUtility", "Parameter", "SSLHandler", "SSLHandshake"] diff --git a/components/test/TestCaseScript/SleepMode/AutoSleep.py b/components/test/TestCaseScript/SleepMode/AutoSleep.py deleted file mode 100755 index 9db70227c..000000000 --- a/components/test/TestCaseScript/SleepMode/AutoSleep.py +++ /dev/null @@ -1,561 +0,0 @@ -import random -import os -import time -import string -import re -import threading - -from TCAction import TCActionBase, PerformanceTCBase -from NativeLog import NativeLog -from Utility import MakeFolder -from Utility import MultimeterUtil -from Utility import ShellCmd - -LOG_PATH = os.path.join("AT_LOG", "SLEEP") - -SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] -SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) - -SAMPLE_RATE_SLEEP_MODE_CHANGE = 0.002 -SAMPLE_NUM_SLEEP_MODE_CHANGE = 256 - -SAMPLE_RATE = 0.002 -SAMPLE_NUM = 512 -MAX_VALUE = 1 -Y_AXIS_LABEL = "Current (mA)" -GPIO_EDGE_DELAY = 120 # 20 ms - -NONE_SLEEP_MIN_CUR = 30 -LIGHT_SLEEP_MIN_CUR = 1.5 -MODEM_SLEEP_MIN_CUR = 20 - -GPIO_WAKE_UP = 15 -GPIO_CHIP_RESET = 14 - -SLEEP_WAKEUP_DELAY = 0.01 - - -class AutoSleep(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.test_mode = "mode_change" - self.test_count = 100 - self.sleep_mode = SLEEP_MODE_LIST - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, - "AUTO_SLEEP_%s_%s" % (self.test_mode, - time.strftime("%d%H%M%S", - time.localtime())))) - self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) - - @staticmethod - def find_min_items(item_list, count): - assert count < len(item_list) - min_items = [] - for i in range(count): - min_val = min(item_list) - min_items.append(min_val) - item_list.remove(min_val) - return min_items - - def sleep_mode_change(self, sleep_mode): - result = True - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] %s start" % sleep_mode) - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - # set sleep mode - self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) - self.check_response("SSC1", "+SLEEP_MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] mode set") - time.sleep(6) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE_SLEEP_MODE_CHANGE, - sample_num=SAMPLE_NUM_SLEEP_MODE_CHANGE, - max_value=MAX_VALUE) - # do check measure - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - - NativeLog.add_prompt_trace("[AutoSleep][ModeChange] measure done, average min current %f" % average_val) - - if sleep_mode == "none_sleep": - if average_val < NONE_SLEEP_MIN_CUR: - result = False - elif sleep_mode == "light_sleep": - if average_val > LIGHT_SLEEP_MIN_CUR: - result = False - elif sleep_mode == "modem_sleep": - if average_val > MODEM_SLEEP_MIN_CUR or average_val < LIGHT_SLEEP_MIN_CUR: - result = False - if result is False: - NativeLog.add_trace_critical("[AutoSleep][ModeChange] %s failed" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, "%s_fail" % sleep_mode, Y_AXIS_LABEL) - - time.sleep(5) - return result - - def sleep_current_measure(self, sleep_mode): - result = True - - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] %s start" % sleep_mode) - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - # set sleep mode - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) - self.check_response("SSC1", "+SLEEP_MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] set mode done") - time.sleep(10) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, sleep_mode, Y_AXIS_LABEL) - NativeLog.add_prompt_trace("[AutoSleep][CurrentMeasure] measure done") - return result - - def light_sleep_wakeup(self): - result = True - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] start") - - time.sleep(1) - self.serial_write_line("SSC1", "") - time.sleep(1) - # check if respond to uart - self.flush_data("SSC1") - for i in range(60): - self.serial_write("SSC1", "a") - time.sleep(0.043) - time.sleep(0.1) - respond_data = self.serial_read_data("SSC1") - if len(respond_data) >= 60: - NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " - "Failed when recving data during sleep, %d" % len(respond_data)) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on sleep mode done") - - self.serial_write_line("SSC1", "") - time.sleep(1) - - # change GPIO to make target wakeup - self.serial_write_line("SSC2", "gpio -L -p %d -t 0" % GPIO_WAKE_UP) - self.check_response("SSC2", "+GPIO_SET:OK") - - self.serial_write_line("SSC1", "") - time.sleep(1) - self.flush_data("SSC1") - for i in range(60): - self.serial_write("SSC1", "a") - time.sleep(0.043) - time.sleep(0.1) - respond_data = self.serial_read_data("SSC1") - if len(respond_data) < 60: - NativeLog.add_trace_critical("[AutoSleep][light sleep wakeup] " - "Failed when recving data during wakeup, %d" % len(respond_data)) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][LightSleepWakeup] check on wakeup mode done") - self.serial_write_line("SSC1", "") - # restore GPIO level - self.serial_write_line("SSC2", "gpio -L -p %d -t 1" % GPIO_WAKE_UP) - self.check_response("SSC2", "+GPIO_SET:OK") - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) - self.check_response("SSC2", "+GPIO_SET:OK") - time.sleep(2) - return result - - def sleep_exit_enter(self, sleep_mode, ssid, password): - result = True - if sleep_mode == "modem_sleep": - max_current_for_sleep = 20 - elif sleep_mode == "light_sleep": - max_current_for_sleep = 5 - else: - raise StandardError("Not supported mode %s" % sleep_mode) - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] %s start" % sleep_mode) - - ap_ssid = self.get_parameter("ap_ssid") - ap_password = self.get_parameter("ap_password") - - # step A: no STA connect to SoftAP, enter modem sleep mode - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 1") - self.check_response("SSC1", "+MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - self.check_response("SSC2", "+GPIO_SET:OK") - self.check_response("SSC1", "+JAP:CONNECTED") - self.check_response("SSC1", "pm open") - - self.serial_write_line("SSC2", "sta -D") - self.check_response("SSC2", "+QAP") - - time.sleep(5) - - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val > max_current_for_sleep: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] " - "did not enter %s sleep, %d" % (sleep_mode, average_val)) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_A" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step A done") - # step B: STA connect to SoftAP, exit modem sleep mode - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 3") - self.check_response("SSC1", "+MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - time.sleep(1) - self.serial_write_line("SSC2", "sta -C -s %s -p %s" % (ssid, password)) - self.check_response("SSC2", "+JAP:CONNECTED") - # self.check_response("SSC1", "pm close") - time.sleep(10) - - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val < 30: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_B" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step B done") - # step C: target set to STA mode, enter modem sleep - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 1") - self.check_response("SSC1", "+MODE:OK") - - self.check_response("SSC2", "+GPIO_SET:OK") - # self.check_response("SSC1", "pm open") - time.sleep(15) - - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val > max_current_for_sleep: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not enter %s sleep" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_C" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step C done") - # step D: target disconnect, exit modem sleep - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sta -D") - self.check_response("SSC1", "+QAP") - self.check_response("SSC2", "+GPIO_SET:OK") - # self.check_response("SSC1", "pm close") - time.sleep(5) - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val < 30: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_D" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step D done") - # step E: target connect to AP, enter modem sleep - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - self.check_response("SSC2", "+GPIO_SET:OK") - self.check_response("SSC1", "+JAP:CONNECTED") - self.check_response("SSC1", "pm open") - time.sleep(3) - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val > max_current_for_sleep: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not enter %s sleep" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_E" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step E done") - # step F: target set to AP mode, exit modem sleep - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 2") - self.check_response("SSC1", "+MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - # self.check_response("SSC1", "pm close") - time.sleep(5) - - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val < 30: - NativeLog.add_trace_critical("[AutoSleep][SleepExitEnter] did not exit %s sleep" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_sleep_exit_enter_fail_F" % sleep_mode, Y_AXIS_LABEL) - result = False - - NativeLog.add_prompt_trace("[AutoSleep][EnterExitSleep] step F done") - return result - - def ping_test(self, sleep_mode): - result = True - NativeLog.add_prompt_trace("[AutoSleep][PingTest] %s start" % sleep_mode) - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - if sleep_mode == "modem_sleep": - max_current_for_sleep = MODEM_SLEEP_MIN_CUR - elif sleep_mode == "light_sleep": - max_current_for_sleep = LIGHT_SLEEP_MIN_CUR - else: - raise StandardError("Not supported mode %s" % sleep_mode) - - self.serial_write_line("SSC1", "op -S -o 1") - self.check_response("SSC1", "+MODE:OK") - - # set sleep mode - self.serial_write_line("SSC1", "sleep -S -t %d" % sleep_mode_enum) - self.check_response("SSC1", "+SLEEP_MODE:OK") - NativeLog.add_prompt_trace("[AutoSleep][PingTest] set mode done") - - # connect to AP - ap_ssid = self.get_parameter("ap_ssid") - ap_password = self.get_parameter("ap_password") - target_ip = self.get_parameter("target_ip") - - self.serial_write_line("SSC1", "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - self.check_response("SSC1", "+JAP:CONNECTED") - - time.sleep(10) - # measure current, should be in sleep mode - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - - if average_val > max_current_for_sleep: - NativeLog.add_trace_critical("[AutoSleep][PingTest] step A did not enter %s sleep, %f" - % (sleep_mode, average_val)) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_ping_test_fail_not_enter_sleep" % sleep_mode, Y_AXIS_LABEL) - result = False - else: - NativeLog.add_prompt_trace("[AutoSleep][PingTest] step A enter %s sleep, %f" - % (sleep_mode, average_val)) - - class PingThread(threading.Thread): - def __init__(self, ping_ip): - threading.Thread.__init__(self) - self.setDaemon(True) - self.target_ip = ping_ip - self.exit_event = threading.Event() - - def run(self): - while self.exit_event.isSet() is False: - ShellCmd.shell_check_output("ping %s -w 500" % self.target_ip) - time.sleep(0.1) - pass - - def exit(self): - self.exit_event.set() - - NativeLog.add_prompt_trace("[AutoSleep][PingTest] ping start") - ping_thread = PingThread(target_ip) - ping_thread.start() - time.sleep(5) - - # measure current, should not be in sleep mode - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val < 30: - NativeLog.add_trace_critical("[AutoSleep][PingTest] step B did not exit %s sleep, %f" - % (sleep_mode, average_val)) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_ping_test_fail_not_exit_sleep" % sleep_mode, Y_AXIS_LABEL) - result = False - else: - NativeLog.add_prompt_trace("[AutoSleep][PingTest] step B exit %s sleep, %f" - % (sleep_mode, average_val)) - - ping_thread.exit() - ping_thread.join(20) - NativeLog.add_prompt_trace("[AutoSleep][PingTest] ping stop") - time.sleep(10) - - # measure current, should not be in sleep mode - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val > max_current_for_sleep: - NativeLog.add_trace_critical("[AutoSleep][PingTest] step C did not enter %s" % sleep_mode) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "%s_ping_test_fail_not_enter_sleep" % sleep_mode, Y_AXIS_LABEL) - result = False - else: - NativeLog.add_prompt_trace("[AutoSleep][PingTest] step C enter %s sleep" % sleep_mode) - - return result - - def cleanup(self): - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["modem_sleep"]) - self.check_response("SSC1", "OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - - try: - test_mode = self.test_mode - test_count = self.test_count - sleep_mode = self.sleep_mode - except StandardError, e: - return - - # make sure enter modem sleep mode before start test - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["modem_sleep"]) - self.check_response("SSC1", "+SLEEP_MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - self.check_response("SSC1", "pm open", timeout=10) - - self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_WAKE_UP) - self.check_response("SSC1", "+GPIO_GET") - self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_CHIP_RESET) - self.check_response("SSC1", "+GPIO_GET") - - # start test - if "mode_change" in test_mode: - for i in range(test_count): - result = self.sleep_mode_change(random.choice(SLEEP_MODE_LIST)) - - elif "measure_current" in test_mode: - for i in range(test_count): - for mode in sleep_mode: - result = self.sleep_current_measure(mode) - pass - elif "gpio_wakeup" in test_mode: - # change GPIO to make sure target exit sleep mode, so it can process SSC commands - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - # set sleep mode - self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE["light_sleep"]) - self.check_response("SSC1", "+SLEEP_MODE:OK") - - self.check_response("SSC2", "+GPIO_SET:OK") - for i in range(test_count): - result = self.light_sleep_wakeup() - pass - elif "sleep_exit_enter" in test_mode: - ssid = "".join([random.choice(string.lowercase) for i in range(10)]) - password = "".join([random.choice(string.lowercase) for i in range(10)]) - self.serial_write_line("SSC2", "sta -D") - self.check_response("SSC2", "+QAP") - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 3") - self.check_response("SSC1", "+MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3" % (ssid, password)) - self.check_response("SSC1", "+SAP:OK") - self.serial_write_line("SSC2", "op -S -o 1") - self.check_response("SSC2", "+MODE:OK") - - for mode in sleep_mode: - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "sleep -S -t %d" % SLEEP_MODE[mode]) - self.check_response("SSC1", "+SLEEP_MODE:OK") - self.check_response("SSC2", "+GPIO_SET:OK") - - for i in range(test_count): - result = self.sleep_exit_enter(mode, ssid, password) - elif "ping" in test_mode: - for mode in sleep_mode: - for i in range(test_count): - result = self.ping_test(mode) - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SleepMode/DeepSleep.py b/components/test/TestCaseScript/SleepMode/DeepSleep.py deleted file mode 100755 index 252ebb075..000000000 --- a/components/test/TestCaseScript/SleepMode/DeepSleep.py +++ /dev/null @@ -1,259 +0,0 @@ -import random -import os -import time - -from TCAction import TCActionBase, PerformanceTCBase -from Utility import MakeFolder -from Utility import MultimeterUtil -from NativeLog import NativeLog - -LOG_PATH = os.path.join("AT_LOG", "SLEEP") - -DEEP_SLEEP_OPTION_LIST = ["up_to_bin", "normal", "no_rf_calibrate", "rf_off"] -DEEP_SLEEP_OPTION = { - "up_to_bin": 0, - "normal": 1, - "no_rf_calibrate": 2, - "rf_off": 4, -} - -SAMPLE_RATE = 0.001 -SAMPLE_NUM = 512 -MAX_VALUE = 0.1 -Y_AXIS_LABEL = "Current (mA)" - - -MEASURE_FREQ = 3600 - -GPIO_WAKE_UP = 15 -GPIO_CHIP_RESET = 14 -GPIO_EDGE_DELAY = 100 # 20 ms - - -class DeepSleep(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.test_mode = "mode_change" - self.test_count = 100 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, - "DEEP_SLEEP_%s_%s" % (self.test_mode, - time.strftime("%d%H%M%S", - time.localtime())))) - self.sleep_time_log = os.path.join(self.log_folder, "deep_sleep_wakeup_time.log") - self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) - - def deep_sleep_stable(self): - result = True - RandomTime = random.randint(1, 100) - self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - if self.check_response("SSC1", "ready!!!") is False: - result = False - NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") - else: - NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) - time.sleep(1) - - RandomTime = random.randint(100000, 1000000) - self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - if self.check_response("SSC1", "ready!!!") is False: - result = False - NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") - else: - NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) - time.sleep(1) - return result - - def deep_sleep_current_measure(self): - result = True - self.serial_write_line("SSC1", "") - self.serial_write_line("SSC1", "dsleep -S -t 10000000") - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - time.sleep(3) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - average_current = float(0) - for current in current_line: - average_current += current - average_current /= SAMPLE_NUM - - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "deep_sleep_current", Y_AXIS_LABEL) - - if average_current > 1: - NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] average current %f > 1mA" % average_current) - else: - NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] dsleep current ok, %f" % average_current) - - if self.check_response("SSC1", "ready!!!") is False: - NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] CurrentMeasure wait ready err %f" - % average_current) - result = False - - NativeLog.add_trace_critical("[DeepSleep][CurrentMeasure] wait ready ok") - - return result - - ########################################## - # gpio wake up - ########################################## - def deep_sleep_wakeup(self): - result = True - - self.serial_write_line("SSC1", "dsleep -S -t 0") - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - - time.sleep(2) - - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - average_current = float(0) - for current in current_line: - average_current += current - average_current /= SAMPLE_NUM - - if average_current > 1: - NativeLog.add_trace_critical("[DeepSleep][Wakeup] average current %f > 1mA" % average_current) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "deep_sleep_current", Y_AXIS_LABEL) - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) - self.check_response("SSC2", "+GPIO_SET:OK") - if self.check_response("SSC1", "ready!!!") is False: - NativeLog.add_trace_critical("[DeepSleep][Wakeup] target did not wakeup") - result = False - else: - NativeLog.add_trace_critical("[DeepSleep][Wakeup] target wakeup") - - time.sleep(1) - return result - - ######################################### - #test one hour, Verify RTC Clock timer - ######################################### - def deep_sleep_timeout(self): - result = True - Timeout = 3600 - - start_sleep_time = time.time() - self.serial_write_line("SSC1", "") - self.serial_write_line("SSC1", "dsleep -S -t %d" % (Timeout*1000000)) - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - self.check_response("SSC1", "ready!!!", timeout = Timeout*2) - time_escaped = time.time() - start_sleep_time - NativeLog.add_trace_critical("[DeepSleep][timeout] desired sleep timeout is %s, actual sleep timeout is %s" % (Timeout, time_escaped)) - with open(self.sleep_time_log, "ab+") as f: - f.write("[DeepSleep] desired sleep timeout is %s, actual sleep timeout is %s" % (Timeout, time_escaped)) - return result - - ############################################ - # Capture current map, verify the process of power on - # notice: option = "up_to_bin" up to byte108 in init.bin, - ############################################ - def wake_option(self): - result = True - for option in DEEP_SLEEP_OPTION_LIST: - for i in range(8): - self.serial_write_line("SSC1", "dsleep -O -m %s" % DEEP_SLEEP_OPTION[option]) - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - self.serial_write_line("SSC1", "dsleep -S -t 1200000") - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - - # measure current - current_line = self.multimeter.measure_current(sample_rate=0.002, - sample_num=SAMPLE_NUM, - max_value=1) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "deep_sleep_wakeup_option_%s_%d" - % (option, DEEP_SLEEP_OPTION[option]), Y_AXIS_LABEL) - - NativeLog.add_trace_critical("[DeepSleep][wake_option] target wakeup option:%d" - % DEEP_SLEEP_OPTION[option]) - time.sleep(3) - - return result - - def deep_sleep_wakeup_flash_gpio_status(self): - result = True - RandomTime = random.randint(2000000, 2000000) - self.serial_write_line("SSC1", "dsleep -S -t %s" % RandomTime) - if self.check_response("SSC1", "+DSLEEP:OK") is False: - result = False - if self.check_response("SSC1", "ready!!!") is False: - result = False - NativeLog.add_trace_critical("[DeepSleep][Stable] wait ready err") - else: - NativeLog.add_trace_critical("[DeepSleep][Stable] SleepTime:%d" % RandomTime) - - self.serial_write_line("SSC1", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - self.check_response("SSC1", "+GPIO_SET:OK") - - time.sleep(1) - return result - - def cleanup(self): - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) - self.check_response("SSC2", "+GPIO_SET:OK") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.serial_write_line("SSC2", "sta -D") - self.check_response("SSC2", "+QAP") - self.serial_write_line("SSC1", "sta -D") - self.check_response("SSC1", "+QAP") - try: - test_mode = self.test_mode - test_count = self.test_count - except StandardError, e: - return - - # self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_EDGE_DELAY)) - # self.check_response("SSC2", "+GPIO_SET:OK") - # time.sleep(1) - - if "stable" in test_mode: - for i in range(test_count): - # result = self.deep_sleep_wakeup_flash_gpio_status() - result = self.deep_sleep_stable() - elif "measure_current" in test_mode: - for i in range(test_count): - result = self.deep_sleep_current_measure() - elif "timeout" in test_mode: - for i in range(test_count): - result = self.deep_sleep_timeout() - elif "wakeup" in test_mode: - for i in range(test_count): - result = self.deep_sleep_wakeup() - elif "wake_option" in test_mode: - for i in range(test_count): - result = self.wake_option() - - self.set_result("Succeed") - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SleepMode/ForceSleep.py b/components/test/TestCaseScript/SleepMode/ForceSleep.py deleted file mode 100755 index 4938a97c2..000000000 --- a/components/test/TestCaseScript/SleepMode/ForceSleep.py +++ /dev/null @@ -1,254 +0,0 @@ -import random -import os -import time - -from TCAction import TCActionBase, PerformanceTCBase -from Utility import MakeFolder -from Utility import MultimeterUtil -from NativeLog import NativeLog - -LOG_PATH = os.path.join("AT_LOG", "SLEEP") - -SLEEP_MODE_LIST = ["none_sleep", "light_sleep", "modem_sleep"] -SLEEP_MODE = dict(zip(SLEEP_MODE_LIST, range(len(SLEEP_MODE_LIST)))) - -SAMPLE_RATE = 0.002 -SAMPLE_NUM = 512 -MAX_VALUE = 1 -Y_AXIS_LABEL = "Current (mA)" - -MEASURE_FREQ_HOUR = 3600 - -GPIO_WAKE_UP = 15 -GPIO_EDGE_DELAY = 120 # 20 ms -GPIO_CHIP_RESET = 14 -GPIO_CHIP_RESET_DELAY = 100 - -NONE_SLEEP_MIN_CUR = 30 -LIGHT_SLEEP_MIN_CUR = 1.5 -MODEM_SLEEP_MIN_CUR = 20 - -LIGHT_SLEEP_WAKEUP_DELAY = 0.01 - - -class ForceSleep(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.test_mode = "mode_change" - self.test_count = 100 - self.sleep_mode = SLEEP_MODE_LIST - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.log_folder = MakeFolder.make_folder(os.path.join(LOG_PATH, - "FORCE_SLEEP_%s_%s" % (self.test_mode, - time.strftime("%d%H%M%S", - time.localtime())))) - self.multimeter = MultimeterUtil.MultimeterUtil(self.log_folder) - - @staticmethod - def find_min_items(item_list, count): - assert count < len(item_list) - min_items = [] - for i in range(count): - min_val = min(item_list) - min_items.append(min_val) - item_list.remove(min_val) - return min_items - - def sleep_time_boundary_test(self): - result = True - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 0") - self.check_response("SSC2", "+GPIO_SET:OK") - if self.check_response("SSC1", "+MODE:OK") is False: - result = False - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "fsleep -S -t 1") - self.check_response("SSC2", "+GPIO_SET:OK") - if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - result = False - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "fsleep -D -d 0") - self.check_response("SSC2", "+GPIO_SET:OK") - # if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - # result = False - time.sleep(1) - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - min_items = self.find_min_items(current_line, 10) - average_val = float(0) - for val in min_items: - average_val += val - average_val /= 10 - if average_val > LIGHT_SLEEP_MIN_CUR: - NativeLog.add_trace_critical("[ForceSleep][Boundary] did not enter light sleep %d" % average_val) - result = False - return result - else: - NativeLog.add_trace_critical("[ForceSleep][Boundary] enter light sleep") - - for i in range(3): - time.sleep(MEASURE_FREQ_HOUR) - for j in range(3): - time.sleep(10) - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "light_sleep_boundary_%s_%s" % (i, j), Y_AXIS_LABEL) - pass - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - self.check_response("SSC2", "+GPIO_SET:OK") - time.sleep(1) - self.serial_write_line("SSC1", "reboot") - self.check_response("SSC1", "ready!!!") - self.serial_write_line("SSC1", "fsleep -S -t 1") - if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - result = False - self.serial_write_line("SSC1", "") - self.serial_write_line("SSC1", "fsleep -B -t 1") - if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - result = False - time.sleep(MEASURE_FREQ_HOUR) - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET,GPIO_CHIP_RESET_DELAY)) - return result - - def force_sleep_current_measure(self, sleep_mode): - result = True - # choose sleep mode - sleep_mode_enum = SLEEP_MODE[sleep_mode] - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 0") - if self.check_response("SSC1", "+MODE:OK") is False: - result = False - self.check_response("SSC2", "+GPIO_SET:OK") - - # set sleep mode - self.serial_write_line("SSC1", "fsleep -S -t %s" % sleep_mode_enum) - if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - result = False - self.serial_write_line("SSC1", "fsleep -D -d 0") - # if self.check_response("SSC1", "+FSLEEP_MODE:OK") is False: - # result = False - - time.sleep(3) - - for i in range(10): - time.sleep(10) - # measure current - current_line = self.multimeter.measure_current(sample_rate=SAMPLE_RATE, - sample_num=SAMPLE_NUM, - max_value=MAX_VALUE) - self.multimeter.draw_graph(current_line, SAMPLE_RATE, - "force_%s_sleep_current_%s" % (sleep_mode, i), Y_AXIS_LABEL) - NativeLog.add_trace_critical("[ForceSleep][current_measure] force_%s_%d"% (sleep_mode,i)) - - # self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP,GPIO_EDGE_DELAY)) - # self.check_response("SSC2", "+GPIO_SET:OK") - # self.serial_write_line("SSC1", "reboot") - # self.check_response("SSC1", "ready!!!") - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_CHIP_RESET_DELAY)) - self.check_response("SSC2", "+GPIO_SET:OK") - if self.check_response("SSC1", "ready!!!") is False: - result = False - time.sleep(1) - return result - - def force_sleep_illegal_enter(self): - result = True - # choose sleep mode - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "op -S -o 2") - if self.check_response("SSC1", "+MODE:OK") is False: - result = False - self.check_response("SSC2", "+GPIO_SET:OK") - - # set sleep mode - self.serial_write_line("SSC1", "fsleep -D -d 0") - if self.check_response("SSC1", "ready!!!", timeout=10) is False: - result = False - time.sleep(5) - return result - - def force_sleep_stable_test(self): - result = True - # choose sleep mode - - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "fsleep -L") - if self.check_response("SSC1", "+MODE:OK") is False: - result = False - self.check_response("SSC2", "+GPIO_SET:OK") - - time.sleep(3600) - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_CHIP_RESET, GPIO_CHIP_RESET_DELAY)) - time.sleep(5) - return result - - def cleanup(self): - self.serial_write_line("SSC2", "gpio -E -p %d -t 0 -d %d" % (GPIO_WAKE_UP, GPIO_EDGE_DELAY)) - time.sleep(LIGHT_SLEEP_WAKEUP_DELAY) - self.serial_write_line("SSC1", "reboot") - self.check_response("SSC1", "ready!!!") - self.check_response("SSC2", "+GPIO_SET:OK") - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.serial_write_line("SSC2", "sta -D") - self.check_response("SSC2", "+QAP") - self.serial_write_line("SSC1", "sta -D") - self.check_response("SSC1", "+QAP") - try: - test_mode = self.test_mode - test_count = self.test_count - sleep_mode = self.sleep_mode - except StandardError, e: - return - - # set gpio to input on sleep target - self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_WAKE_UP) - self.check_response("SSC1", "+GPIO_GET") - self.serial_write_line("SSC1", "gpio -G -p %d" % GPIO_CHIP_RESET) - self.check_response("SSC1", "+GPIO_GET") - - if test_mode == "boundary_test": - for i in range(test_count): - result = self.sleep_time_boundary_test() - pass - elif test_mode == "measure_current": - for j in range(test_count): - for mode in sleep_mode: - result = self.force_sleep_current_measure(mode) - pass - elif test_mode == "illegal_enter": - for i in range(test_count): - result = self.force_sleep_illegal_enter() - pass - elif test_mode == "stable_test": - for i in range(test_count): - result = self.force_sleep_stable_test() - pass - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/SleepMode/__init__.py b/components/test/TestCaseScript/SleepMode/__init__.py deleted file mode 100755 index fcd54657f..000000000 --- a/components/test/TestCaseScript/SleepMode/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["AutoSleep", "DeepSleep", "ForceSleep"] diff --git a/components/test/TestCaseScript/StableTest/StableCase1.py b/components/test/TestCaseScript/StableTest/StableCase1.py deleted file mode 100755 index 2554c1499..000000000 --- a/components/test/TestCaseScript/StableTest/StableCase1.py +++ /dev/null @@ -1,160 +0,0 @@ -import time -import random -import threading - -from TCAction import TCActionBase -from NativeLog import NativeLog - - -class StableCase1(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.exit_event = threading.Event() - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def check_wifi_status(self, data): - if data.find("+JAP:DISCONNECTED") != -1: - self.exit_event.set() - NativeLog.add_trace_critical("[Wifi] Disconnected") - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - # target role - target_role = self.target_role - # enable tcp send/recv - tcp_enable = self.tcp_enable - # enable udp send/recv - udp_enable = self.udp_enable - # enable ping - ping_enable = self.ping_enable - # delay range - delay_range = self.delay_range - # test time in hours - test_time = self.test_time * 3600 - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - if target_role == "AP": - pc_ip = "" - target_ip = "" - elif target_role == "STA": - pc_ip = "" - target_ip = "" - else: - raise StandardError("target role only support AP or STA") - - # step 1, create UDP socket and TCP server - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t UDP -p "] - fail_string = "Fail, Fail to create UDP socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t TCP -p "] - fail_string = "Fail, Fail to create tcp server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -L -s "] - fail_string = "Fail, Fail to listen" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 2, PC connect to 8266 tcp server, PC create UDP socket - checker_stings = ["R SOC_COM C OK"] - test_action_string = ["SOC SOC1 BIND %s" % pc_ip] - fail_string = "Fail, Fail to create udp socket on PC" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["P SSC1 A :ACCEPT:(\d+),\d+", "P SOC_COM C OK"] - test_action_string = ["SOC SOC2 CONNECT %s 0 %s" % (target_ip, pc_ip)] - fail_string = "Fail, Fail to create tcp socket on PC" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - total_test_count = ping_fail_count = tcp_fail_count = udp_fail_count = 0 - - # step 3, start do tcp/udp/ping - while time.time() - start_time < test_time and self.exit_event.isSet() is False: - total_test_count += 1 - if ping_enable is True: - # do ping - checker_stings = ["P PC_COM RE \+PING:\d+ms"] - test_action_string = ["PING %s -n 1 -w 1000" % target_ip] - fail_string = "Fail, Fail to ping target" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - ping_fail_count += 1 - NativeLog.add_prompt_trace("[ping fail] fail/total = %s/%s" - % (ping_fail_count, total_test_count)) - pass - - data_len = random.randint(1, 1460) - - if tcp_enable is True: - # do tcp send/recv - checker_stings = ["P SSC1 SL +%s" % data_len, "P SOC2 RL %s" % data_len] - test_action_string = ["SSC SSC1 soc -S -s -l %s" % data_len, - "SOC SOC2 SEND %s" % data_len] - fail_string = "Fail, Fail to send/recv tcp" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - tcp_fail_count += 1 - NativeLog.add_prompt_trace("[tcp fail] fail/total = %s/%s" - % (tcp_fail_count, total_test_count)) - # tcp fail, break - self.exit_event.set() - pass - - if udp_enable is True: - # do udp send/recv - checker_stings = ["P SSC1 SL +%s" % data_len, "P SOC1 RL %s" % data_len] - test_action_string = ["SSC SSC1 soc -S -s " - "-i %s -p -l %s" % (pc_ip, data_len), - "SOC SOC1 SENDTO %s %s" % (data_len, target_ip)] - fail_string = "Fail, Fail to sendto/recvfrom udp" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=20) is False: - udp_fail_count += 1 - NativeLog.add_prompt_trace("[udp fail] fail/total = %s/%s" - % (udp_fail_count, total_test_count)) - pass - - # sleep - time.sleep(random.randint(delay_range[0], delay_range[1])) - pass - - # finally, execute done - if self.exit_event.isSet() is False: - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - self.result_cntx.append_data(port_name, data) - if port_name != "SOC1" and port_name != "SOC2": - # socket received data do not need to be logged - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - if port_name == "SSC1": - self.check_wifi_status(data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/StableTest/__init__.py b/components/test/TestCaseScript/StableTest/__init__.py deleted file mode 100755 index be905f816..000000000 --- a/components/test/TestCaseScript/StableTest/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["StableCase1"] diff --git a/components/test/TestCaseScript/TCPIPStress/ARPStress.py b/components/test/TestCaseScript/TCPIPStress/ARPStress.py deleted file mode 100755 index 38dcb8fd8..000000000 --- a/components/test/TestCaseScript/TCPIPStress/ARPStress.py +++ /dev/null @@ -1,121 +0,0 @@ -import time - -from NativeLog import NativeLog -from TCAction import TCActionBase -from comm.NIC import Adapter - -WARNING_COUNT = 5 - - -class ARPStress(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.adapter = None - self.target_mode = "STA" - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - self.adapter.close() - del self.adapter - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - test_time = self.test_time * 60 - # test frequency min should be 0.1s, otherwise reply could be missed - test_freq = self.test_freq if self.test_freq > 0.1 else 0.1 - # test softAP or sta - target_mode = self.target_mode - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for ARPStress script, error is %s" % e) - raise StandardError("Error configuration") - - # get parameters - if target_mode == "STA": - target_ip = self.get_parameter("target_ip") - target_mac = self.get_parameter("target_mac") - pc_mac = self.get_parameter("pc_nic_mac") - pc_nic_name = self.get_parameter("pc_nic") - elif target_mode == "SoftAP": - target_ip = self.get_parameter("target_ap_ip") - target_mac = self.get_parameter("target_ap_mac") - pc_mac = self.get_parameter("pc_wifi_nic_mac") - pc_nic_name = self.get_parameter("pc_wifi_nic") - else: - raise StandardError("Unsupported target mode: %s" % target_mode) - - time_start = time.time() - - # open device - self.adapter = Adapter.Adapter(pc_nic_name, "capture+send") - ret = self.adapter.set_filter("arp and ether src %s and ether dst %s" % (target_mac, pc_mac)) - if ret != "LIBPCAP_SUCCEED": - NativeLog.add_trace_critical("ARP Stress test error: %s" % ret) - return - - ret = self.adapter.start_capture() - if ret != "LIBPCAP_SUCCEED": - NativeLog.add_trace_critical("ARP Stress test error: %s" % ret) - return - - arp_pdu = self.adapter.create_pdu("ARP", self.adapter.create_payload(), - arp_op_code="request", arp_target_proto_addr=target_ip, - ethernet_dst_addr="ff:ff:ff:ff:ff:ff") - - data = arp_pdu.to_bytes() - - total_test_count = total_fail_count = successive_fail_count = most_successive_fail_count = 0 - - while (time.time() - time_start) < test_time: - # send arp req - ret = self.adapter.ether_send(data) - if ret != "LIBNET_SUCCEED": - NativeLog.add_prompt_trace("libnet send fail, %s" % ret) - continue - total_test_count += 1 - # wait for reply - time.sleep(test_freq) - # should get one arp reply - pdu_list = self.adapter.get_packets() - - if len(pdu_list) == 0: - # failed to get arp reply - total_fail_count += 1 - successive_fail_count += 1 - if successive_fail_count > WARNING_COUNT: - NativeLog.add_trace_critical("ARP Fail: successive fail %u times, total tested %u times" - % (successive_fail_count, total_test_count)) - else: - most_successive_fail_count = most_successive_fail_count \ - if most_successive_fail_count > successive_fail_count \ - else successive_fail_count - successive_fail_count = 0 - pass - NativeLog.add_trace_critical("ARP stress test, total %s times, failed %s times, most successive fail count %s" - % (total_test_count, total_fail_count, most_successive_fail_count)) - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPIPStress/PingStress.py b/components/test/TestCaseScript/TCPIPStress/PingStress.py deleted file mode 100755 index 71ab91ce5..000000000 --- a/components/test/TestCaseScript/TCPIPStress/PingStress.py +++ /dev/null @@ -1,122 +0,0 @@ -import time - -from NativeLog import NativeLog -from TCAction import TCActionBase -from comm.NIC import Adapter - -WARNING_COUNT = 2 - - -class PingStress(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.adapter = None - self.target_mode = "STA" - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - self.adapter.close() - del self.adapter - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - test_time = self.test_time * 60 - # ping data len - ping_len = self.ping_len - # test frequency min should be 0.1s, otherwise reply could be missed - test_freq = self.test_freq if self.test_freq > 0.1 else 0.1 - # target mode - target_mode = self.target_mode - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for PingStress script, error is %s" % e) - raise StandardError("Error configuration") - - if target_mode == "STA": - target_ip = self.get_parameter("target_ip") - target_mac = self.get_parameter("target_mac") - pc_mac = self.get_parameter("pc_nic_mac") - pc_nic_name = self.get_parameter("pc_nic") - elif target_mode == "SoftAP": - target_ip = self.get_parameter("target_ap_ip") - target_mac = self.get_parameter("target_ap_mac") - pc_mac = self.get_parameter("pc_wifi_nic_mac") - pc_nic_name = self.get_parameter("pc_wifi_nic") - else: - raise StandardError("Unsupported target mode: %s" % target_mode) - - time_start = time.time() - # open device - self.adapter = Adapter.Adapter(pc_nic_name, "capture+send") - - ret = self.adapter.set_filter("icmp[icmpcode]=icmp-echoreply and ether src %s and ether dst %s" - % (target_mac, pc_mac)) - if ret != "LIBPCAP_SUCCEED": - NativeLog.add_trace_critical("PING Stress test error: %s" % ret) - return - - ret = self.adapter.start_capture() - if ret != "LIBPCAP_SUCCEED": - NativeLog.add_trace_critical("PING Stress test error: %s" % ret) - return - - total_test_count = total_fail_count = successive_fail_count = most_successive_fail_count = 0 - - while (time.time() - time_start) < test_time: - - ping_pdu = self.adapter.create_pdu("ICMP", self.adapter.create_payload("A" * ping_len), - icmp_type="echo-request", ipv4_protocol="ICMP", - ipv4_dst_ip=target_ip, ethernet_dst_addr=target_mac) - # send ping req - ret = self.adapter.ether_send(ping_pdu.to_bytes()) - if ret != "LIBNET_SUCCEED": - NativeLog.add_prompt_trace("libnet send fail, %s" % ret) - continue - total_test_count += 1 - # wait for reply - time.sleep(test_freq) - # should get one ping reply - pdu_list = self.adapter.get_packets() - - if len(pdu_list) == 0: - # failed to get ping reply - total_fail_count += 1 - successive_fail_count += 1 - if successive_fail_count > WARNING_COUNT: - NativeLog.add_trace_critical("Ping Fail: successive fail %u times, total tested %u times" - % (successive_fail_count, total_test_count)) - pass - else: - most_successive_fail_count = most_successive_fail_count \ - if most_successive_fail_count > successive_fail_count \ - else successive_fail_count - successive_fail_count = 0 - pass - pass - NativeLog.add_trace_critical("Ping stress test, total %s times, failed %s times, most successive fail count %s" - % (total_test_count, total_fail_count, most_successive_fail_count)) - self.result_cntx.set_result("Succeed") - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPIPStress/__init__.py b/components/test/TestCaseScript/TCPIPStress/__init__.py deleted file mode 100755 index 25ae68917..000000000 --- a/components/test/TestCaseScript/TCPIPStress/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["ARPStress", "PingStress"] diff --git a/components/test/TestCaseScript/TCPStress/TCPAP4STA.py b/components/test/TestCaseScript/TCPStress/TCPAP4STA.py deleted file mode 100755 index 95be6fbe4..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPAP4STA.py +++ /dev/null @@ -1,168 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import copy -import time -import random -import string - - -class TCPAP4STAResultCheckCntx(TCActionBase.ResultCheckContext): - - def __init__(self, test_action, test_env, name): - TCActionBase.ResultCheckContext.__init__(self, test_action, test_env, name) - self.failed_port = [] - pass - - def run(self): - - while True: - exit_flag = self.wait_exit_event(1) - # force exit - if exit_flag is True: - break - try: - self.lock_data() - temp_cache = copy.deepcopy(self.data_cache) - self.data_cache = [] - finally: - self.unlock_data() - - for _cache in temp_cache: - _data = _cache[1] - if _data.find("user_test_tcpclient_recon_cb") != -1 or _data.find("discon") != -1 \ - or _data.find("No heap available") != -1: - self.failed_port.append(_cache[0]) - NativeLog.add_trace_critical("TCPAP4STA failed, failed on %s" % _cache[0]) - pass - if len(self.failed_port) != 0: - # disconnect happen - break - - def get_test_results(self): - return self.failed_port - - -class TCPAP4STA(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len = self.send_len - # test count - test_count = self.test_count - # server port - server_port = self.server_port - # ap ip - ap_ip = self.ap_ip - # server echo - server_echo = self.server_echo - # station number - sta_number = self.sta_number - # pass standard - pass_standard = self.pass_standard - # send delay - send_delay = self.send_delay - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step0 reboot - checker_stings = [] - test_action_string = [] - - for i in range(sta_number+1): - checker_stings.append("P SSC%d C !!!ready!!!" % (i+1)) - test_action_string.append("SSCC SSC%d reboot" % (i+1)) - - fail_string = "Fail, Fail to reboot" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step1 set ap on SSC1, create server - ssid = "".join([random.choice(string.lowercase) for m in range(10)]) - password = "".join([random.choice(string.lowercase) for m in range(10)]) - checker_stings = ["R SSC1 C dhcp%20server%20start"] - test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] - fail_string = "Fail, Fail set ap" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 C server%20starts%20at%20port"] - if server_echo is True: - test_action_string = ["SSCC SSC1 tcp -S -p %s -b 1" % server_port] - else: - test_action_string = ["SSCC SSC1 tcp -S -p %s" % server_port] - fail_string = "Fail, Fail create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 2, 4 SSC target(SSC2 - SSC5) join SSC1 soft AP - checker_stings = [] - test_action_string = [] - - for i in range(sta_number): - checker_stings.append("P SSC%d C ip C mask C gw C get%%20ip%%20of" % (i+2)) - test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i+2, ssid, password)) - - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - - # step 3, create client on SSC2 - SSC5 - checker_stings = [] - test_action_string = [] - - for i in range(sta_number): - checker_stings.append("P SSC%d C tcp%%20client%%20connect%%20with%%20server" % (i+2)) - test_action_string.append("SSCC SSC%d tcp -W -i %s -p %s -c %s -n 1 -l %s -d %d" - % ((i+2), ap_ip, server_port, test_count, send_len, send_delay)) - - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # switch to new result context - self.result_cntx.stop_thread() - self.result_cntx.join() - self.result_cntx = TCPAP4STAResultCheckCntx(self, self.test_env, self.tc_name) - self.result_cntx.start() - - self.result_cntx.join() - - failed_port = self.result_cntx.get_test_results() - if (time.time() - start_time) > pass_standard: - self.result_cntx.set_result("Succeed") - else: - self.result_cntx.set_result("Failed") - NativeLog.add_trace_critical("Failed port: %s" % failed_port) - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py b/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py deleted file mode 100755 index 6c160a9a0..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPAPNSTA.py +++ /dev/null @@ -1,209 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import time -import random -import string - - -TEST_COUNT_ONE_ROUND = 500 - - -class TCPAPNSTA(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len = self.send_len - # test count - test_count = self.test_count - # server port - server_port = self.server_port - # ap ip - ap_ip = self.ap_ip - # server echo - server_echo = self.server_echo - # station number - sta_number = self.sta_number - # pass standard - pass_standard = self.pass_standard - # send delay - send_delay = self.send_delay - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step0 reboot - checker_stings = [] - test_action_string = [] - - for i in range(sta_number+1): - checker_stings.append("P SSC%d C !!!ready!!!" % (i+1)) - test_action_string.append("SSCC SSC%d reboot" % (i+1)) - - fail_string = "Fail, Fail to reboot" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step1 set ap on SSC1, create server - checker_stings = ["R SSC1 C +MODE:OK"] - test_action_string = ["SSCC SSC1 op -S -o 2"] - fail_string = "Fail, Fail set mode" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - ssid = "".join([random.choice(string.lowercase) for m in range(10)]) - password = "".join([random.choice(string.lowercase) for m in range(10)]) - checker_stings = ["R SSC1 C +SAP:OK"] - test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] - fail_string = "Fail, Fail set ap" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] - fail_string = "Fail, Fail create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -L -s "] - fail_string = "Fail, Fail create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 2, 8 SSC target(SSC2 - SSC9) join SSC1 soft AP - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d C +MODE:OK" % (i+2)) - test_action_string.append("SSCC SSC%d op -S -o 1" % (i+2)) - fail_string = "Fail, Fail set mode" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i+2, ssid)) - test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i+2, ssid, password)) - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - - # step 3, create client on SSC2 - SSC9 - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i+2, i+2)) - test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i+2)) - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for i in range(sta_number): - checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i+2), - "P SSC1 A :ACCEPT:(\d+),.+" % (i+2)] - test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % - (i+2, i+2, ap_ip, server_port)] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 4, do send/recv - while test_count > 0: - _tmp_count = TEST_COUNT_ONE_ROUND if test_count - TEST_COUNT_ONE_ROUND > 0 else test_count - test_count -= TEST_COUNT_ONE_ROUND - - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i+2)) - test_action_string.append("SSC SSC%d soc -S -s -l %d -n %d -j %d" % - (i+2, i+2, send_len, _tmp_count, send_delay)) - if server_echo is True: - test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % - (i+2, send_len, _tmp_count, send_delay)) - checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%() NC CLOSED)" % - (i+2)) - - fail_string = "Fail, Failed to send/recv data" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=300) is False: - break - pass - - if (time.time() - start_time) > pass_standard: - self.result_cntx.set_result("Succeed") - else: - checker_stings = [] - test_action_string = [] - for i in range(sta_number + 1): - checker_stings.append("P SSC%d C CLOSEALL" % (i + 1)) - test_action_string.append("SSCC SSC%d soc -T" % (i + 1)) - fail_string = "Fail, Fail to close socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - server_port = random.randint(20000, 30000) - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] - fail_string = "Fail, Fail to bind socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -L -s "] - fail_string = "Fail, Fail to listen" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 2, i + 2)) - test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 2)) - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for i in range(sta_number): - checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 2), - "P SSC1 A :ACCEPT:(\d+),.+" % (i + 2)] - test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % - (i + 2, i + 2, ap_ip, server_port)] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - self.result_cntx.set_result("Failed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py b/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py deleted file mode 100755 index b04ede6ac..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPConnStressTC.py +++ /dev/null @@ -1,363 +0,0 @@ -import random -import re -import sys -import threading -import time - -import TCPConnUtility -from NativeLog import NativeLog -from TCAction import TCActionBase - -reload(sys) -sys.setdefaultencoding('iso-8859-1') # # use encoding that with 1 Byte length and contain 256 chars - - -DEFAULT_MAX_CONN_ALLOWED = 5 - - -# complicated design because I want to make this script applied for all TCP connect/close test scenarios -# basic flow: try to create max connections, send/recv data if possible, close all connections -# connect: -# 1. find available (target_link_id, socket_id) list, -# notice that target_link_id maybe not correct if PC is client -# (during that time, some link may timeout and got disconnected from FIN_WAIT or other state) -# 2. choose one method from method set, try to connect -# 3. update state table: a)check result and destination state, b)find real target_link_id, c)update -# send/recv data: -# 1. find channels that are possible to send data on all connections -# 2. send data on possible channels -# disconnect: -# 1. find available connections -# 2. choose one method from disconnect set, try to disconnect -# 3. update state table (phase 1) -# async process: -# listen on AT UART port, record all "x,CONNECT" and "x,CLOSE" command -# for "x,CONNECT", append them to self.target_link_id_list, used when need to find real target_link_id -# for "x,CLOSE", update state table (phase 2), if matching connection is pending on wait state, -# close them and remove from state table -class TCPConnStressTC(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.__at1_buff = "" - self.max_conn_allowed = test_env.get_variable_by_name("max_conn") - self.enable_log = True - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - # connection_state_dict: {target_link_id: [socket_id, target_state, socket_state, is_closed]} - # is_closed: found "x,CLOSE" in AT UART port - self.connection_state_dict = dict(zip(range(self.max_conn_allowed), [None] * self.max_conn_allowed)) - self.created_link_id_list = [] - - self.__available_soc_id = range(2, 2+self.max_conn_allowed) - self.__available_link_id = range(self.max_conn_allowed) - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - self.utility = TCPConnUtility.TCPConnUtility(self) - self.state_lock = threading.Lock() - self.link_id_lock = threading.Lock() - self.available_id_lock = threading.Lock() - pass - - def __add_log(self, log_str): - if self.enable_log is True: - NativeLog.add_trace_info(log_str) - - def __get_created_target_link_id(self): - self.link_id_lock.acquire() - try: - link_id = self.created_link_id_list[-1] - self.created_link_id_list = [] - finally: - self.link_id_lock.release() - return link_id - pass - - def __set_created_target_link_id(self, link_id): - self.link_id_lock.acquire() - try: - self.created_link_id_list.append(link_id) - finally: - self.link_id_lock.release() - pass - - def __find_channel_list(self): - channel_list = [] # # [(socket_id, able_to_send, link_id, able_to_send), ] - self.state_lock.acquire() - try: - for link_id in self.connection_state_dict: - state = self.connection_state_dict[link_id] - if state is not None: - channel_list.append([state[0], self.utility.is_able_to_send_data(state[2]), - link_id, self.utility.is_able_to_send_data(state[1])]) - finally: - self.state_lock.release() - return channel_list - pass - - def __established_connection_list(self): - conn_list = [] # # [(socket_id, link_id), ] - self.state_lock.acquire() - try: - for link_id in self.connection_state_dict: - state = self.connection_state_dict[link_id] - if state is not None: - if self.utility.is_established_connection([state[1], state[2]]) is True: - conn_list.append([state[0], link_id]) - finally: - self.state_lock.release() - return conn_list - pass - - # find free socket_id, target_link_id pair - def __get_available_id_list(self): - self.available_id_lock.acquire() - try: - id_list = zip(self.__available_soc_id, self.__available_link_id) - finally: - self.available_id_lock.release() - return id_list - pass - - def __update_available_id_list(self, soc_id, link_id, action="ADD"): - self.available_id_lock.acquire() - try: - if action == "ADD": - self.__available_link_id.append(link_id) - self.__available_soc_id.append(soc_id) - self.__add_log("[AVAILABLE ID]soc %d link %d is available" % (soc_id, link_id)) - elif action == "REMOVE": - self.__available_link_id.remove(link_id) - self.__available_soc_id.remove(soc_id) - self.__add_log("[AVAILABLE ID]soc %d link %d is used" % (soc_id, link_id)) - finally: - self.available_id_lock.release() - - def __update_connection_state_item(self, target_link_id, socket_id=None, - target_state=None, socket_state=None, is_closed=None): - self.state_lock.acquire() - try: - state = self.connection_state_dict[target_link_id] - if state is None: - state = [None] * 4 - if socket_id is not None: - state[0] = socket_id - if target_state is not None: - state[1] = target_state - if socket_state is not None: - state[2] = socket_state - if is_closed is not None: - state[3] = is_closed - - # remove closed connections - closed = self.utility.is_closed_state(state[1]) and (state[3] is True) - if closed is True: - self.__update_available_id_list(state[0], target_link_id) - state = None - # if new connection created - if self.connection_state_dict[target_link_id] is None: - created = self.utility.is_created_state(state[1]) - if created is True: - self.__update_available_id_list(state[0], target_link_id, "REMOVE") - else: - # connection did not created, do not add them to connection state table - state = None - - # set new connection_state - self.connection_state_dict[target_link_id] = state - self.__add_log("[STATE] link id is %d, state is %s" % (target_link_id, state)) - except StandardError, e: - pass - finally: - self.state_lock.release() - pass - - # update state table: if result is false, return, if result is true: - # for connect, find real link id, update table according to destination state - # for disconnect, if target in SOC_CLOSE_STATE && catch "x,CLOSE" from AT, remove the item - def update_connection_state_table(self, conn_id, destination_state=None): - if isinstance(conn_id, list) is True or isinstance(conn_id, tuple) is True: - socket_id = conn_id[0] - try: - target_link_id = self.__get_created_target_link_id() - except IndexError: - target_link_id = conn_id[1] - self.__add_log("[STATE]fail to get link id, state is %s, %s" - % (destination_state[0], destination_state[1])) - self.__update_connection_state_item(target_link_id, socket_id, - destination_state[0], destination_state[1]) - pass - else: # # called when recv CLOSED - target_link_id = conn_id - self.__update_connection_state_item(target_link_id, is_closed=True) - pass - pass - - def process_at_data(self, data): - pos1 = 0 - pos2 = 0 - connect = re.compile("\d,CONNECT\r\n") - close = re.compile("\d,CLOSED\r\n") - connect_match = connect.findall(data) - close_match = close.findall(data) - close = re.compile("\d,CONNECT FAIL\r\n") - close_match += close.findall(data) - if len(connect_match) != 0: - pos1 = data.find(connect_match[-1]) + 9 - # append last connected link id - self.__set_created_target_link_id(int(connect_match[-1][:1])) - pass - if len(close_match) != 0: - pos2 = data.find(close_match[-1]) + 7 - # update for all closed links - for close_str in close_match: - self.update_connection_state_table(int(close_str[:1])) - pass - pos = pos1 if pos1 > pos2 else pos2 - - return data[pos:] - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # configurable params - # mandatory params - try: - connect_method_set = self.connect_method_set - test_count = self.test_count - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPConnSingleMode script, error is %s" % e) - raise StandardError("Error configuration") - # optional params - try: - disconn_method_set = self.disconn_method_set - except StandardError: - disconn_method_set = ["D_05"] - pass - try: - delay = self.delay - except StandardError: - delay = 0 - pass - try: - check_data_len = self.check_data_len - except StandardError: - check_data_len = [0, 0] - pass - if isinstance(check_data_len, list) is False: - check_data_len = [check_data_len] * 2 - # configurable params - - # step1 use to create server on both PC and target side - checker_stings = ["SOCP SOC_COM L OK", "ATP AT1 L OK"] - test_action_string = ["SOC SOC1 LISTEN ", "ATC AT1 CIPSERVER 1 "] - fail_string = "Fail, Fail on create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for tested_count in xrange(test_count): - # step2 do connect - available_id_list = self.__get_available_id_list() - - for conn_id in available_id_list: - connect_method = random.choice(connect_method_set) - # ret, destination_state = self.utility.execute_tcp_method(connect_method, conn_id) - try: - self.__add_log("[ACTION]connect method is %s, connect id is %s" - % (connect_method, conn_id)) - ret, destination_state = self.utility.execute_tcp_method(connect_method, conn_id) - except StandardError, e: - NativeLog.add_trace_critical("Error in connect, error is %s" % e) - raise StandardError("Exception happen when connect") - if ret is False: - # connect fail, should terminate TC and mark as fail - return - else: - # succeed, append to table - self.update_connection_state_table(conn_id, destination_state) - if delay != 0: - time.sleep(delay) - - # step 3 send/recv test data - # # [(socket_id, able_to_send, link_id, able_to_send)] - self.__add_log("[ACTION]SEND/RECV data") - channel_list = self.__find_channel_list() - for channel in channel_list: - _check_data_len = [0, 0] - if channel[1] is True: - _check_data_len[0] = check_data_len[0] - if channel[3] is True: - _check_data_len[1] = check_data_len[1] - ret = self.utility.send_test_data(channel[0], - channel[2], - _check_data_len) - if ret is False: - # send/recv fail, should terminate TC and mark as fail - return - if delay != 0: - time.sleep(delay) - - # step 4 close all established connections - # (socket_id, link_id) - conn_list = self.__established_connection_list() - for conn_id in conn_list: - disconn_method = random.choice(disconn_method_set) - try: - self.__add_log("[ACTION]disconnect method is %s, connect id is %s" - % (disconn_method, conn_id)) - ret, destination_state = self.utility.execute_tcp_method(disconn_method, conn_id) - except StandardError, e: - NativeLog.add_trace_critical("Error in disconnect, error is %s" % e) - raise StandardError("Exception happen when disconnect") - if ret is False: - # connect fail, should terminate TC and mark as fail - return - else: - # succeed, append to table - self.update_connection_state_table(conn_id, destination_state) - if delay != 0: - time.sleep(delay) - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - # find "x,CONNECT" and "x,CLOSE" - if port_name.find("AT") != -1: - self.__at1_buff += data - self.__at1_buff = self.process_at_data(self.__at1_buff) - - -def main(): - at1_buff = "" - pos1 = 0 - pos2 = 0 - data = "dafgajglajdfg0,CLOSEjdalghalksdg1,CONNECT\r\n\r\n3,CONNECT4,CLOSEadfaasdf" - at1_buff += data - connect = re.compile("\d,CONNECT") - close = re.compile("\d,CLOSE") - connect_match = connect.findall(at1_buff) - close_match = close.findall(at1_buff) - if len(connect_match) != 0: - pos1 = at1_buff.find(connect_match[-1]) + 9 - pass - if len(close_match) != 0: - pos2 = at1_buff.find(close_match[-1]) + 7 - pass - pos = pos1 if pos1 > pos2 else pos2 - - at1_buff = at1_buff[pos:] - - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/TCPStress/TCPConnUtility.py b/components/test/TestCaseScript/TCPStress/TCPConnUtility.py deleted file mode 100755 index 305936901..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPConnUtility.py +++ /dev/null @@ -1,273 +0,0 @@ -from NativeLog import NativeLog - -# make sure target do not listen on this port -ERROR_PORT = 23333 - - -def unused_param(param): - return param - - -class TCPUtilError(StandardError): - pass - - -class TCPConnUtility(object): - METHOD_RESULT = {"C_01": ("ESTABLISHED", "ESTABLISHED"), # target TCP peer state, PC TCP peer state - "C_02": ("SYNC_SENT", "CLOSED"), - "C_03": ("CLOSED", "CLOSED"), - "C_04": ("SYN_RCVD", "ESTABLISHED"), - "C_05": ("ESTABLISHED", "ESTABLISHED"), - "C_06": ("CLOSED", "CLOSED"), - "C_07": ("CLOSED", "CLOSED"), - "C_08": ("CLOSED", "CLOSED"), - "D_01": ("TIME_WAIT", "CLOSED"), - "D_02": ("TIME_WAIT", "TIME_WAIT"), - "D_03": ("FIN_WAIT_2", "CLOSE_WAIT"), - "D_04": ("FIN_WAIT_1", "CLOSE_WAIT"), - "D_05": ("CLOSED", "TIME_WAIT"), - "D_06": ("CLOSED", "CLOSED"), - "D_07": ("CLOSE_WAIT", "FIN_WAIT2"), - "D_08": ("TIME_WAIT", "CLOSED"), } - - SOC_CLOSED_STATE = ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT", "LAST_ACK", "CLOSED") - SOC_CREATED_STATE = ("SYNC_RCVD", "SYNC_SENT", "ESTABLISHED") - SOC_SEND_DATA_STATE = ("ESTABLISHED", "CLOSE_WAIT") - SOC_ESTABLISHED_STATE = ("ESTABLISHED", ) - - def __init__(self, tc_action): - self.tc_action = tc_action - self.pc_server_port = "" - self.target_server_port = "" - self.pc_ip = "" - self.target_ip = "" - pass - - def config_parameters(self, pc_server_port=None, target_server_port=None, pc_ip=None, target_ip=None): - if pc_ip is not None: - self.pc_ip = pc_ip - if target_ip is not None: - self.target_ip = target_ip - if pc_server_port is not None: - self.pc_server_port = pc_server_port - if target_server_port is not None: - self.target_server_port = target_server_port - pass - - def __connect_c_01(self, conn_id): - checker_stings = ["SOCR SOC1 C +ACCEPT", "ATR AT1 NC CLOSE L OK"] - test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" %s %s" % - (conn_id[1], self.pc_ip, self.pc_server_port)] - fail_string = "Fail, Target failed on connect to PC server" - ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) - if ret is False: - return ret - - checker_stings = ["SOCR SOC_COM L OK"] - test_action_strings = ["SOC SOC1 ACCEPT SOC%d" % conn_id[0]] - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) - pass - - def __connect_c_02(self, conn_id): - checker_stings = ["ATR AT1 C ERROR"] - test_action_strings = ["ATC AT1 CIPSTART %d \"TCP\" %s %s" % - (conn_id[1], self.pc_ip, ERROR_PORT)] - fail_string = "Fail, Target fail on connect to port not listened" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, fail_string) - pass - - def __connect_c_03(self, conn_id): - pass - - def __connect_c_04(self, conn_id): - pass - - def __connect_c_05(self, conn_id): - checker_stings = ["SOCP SOC_COM OK", "ATP AT1 C CONNECT"] - test_action_strings = ["SOC SOC%d CONNECT %s %s" % - (conn_id[0], self.target_server_port, self.target_ip)] - fail_string = "Fail, PC fail on connect to target server" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - pass - - def __connect_c_06(self, conn_id): - pass - - def __connect_c_07(self, conn_id): - # no checker strings, only try to create - # while connect is a blocking function, will return till target reply RST - checker_stings = ["SOCR SOC_COM C CLOSE"] - test_action_strings = ["SOC SOC%d CONNECT %s %s" % - (conn_id[0], ERROR_PORT, self.target_ip)] - fail_string = "Fail, PC fail on connect to target server" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=2000, check_freq=0.01) - pass - - def __connect_c_08(self, conn_id): - pass - - def __close_d_01(self, conn_id): - checker_stings = ["ATP AT1 C %d,CLOSED" % conn_id[1], "SOCP SOC_COM C CLOSE"] - test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_FIN" % conn_id[0], - "ATS AT1 AT+CIPCLOSE=%d" % conn_id[1]] - fail_string = "Fail, Fail to close socket using D_01" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - pass - - def __close_d_02(self, conn_id): - pass - - def __close_d_03(self, conn_id): - checker_stings = [] - test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT WAIT_TO" % conn_id[0], - "ATS AT1 AT+CIPCLOSE=%d" % conn_id[1]] - fail_string = "Fail, Fail to close socket using D_01" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=500, check_freq=0.01) - pass - - def __close_d_04(self, conn_id): - pass - - def __close_d_05(self, conn_id): - checker_stings = ["ATP AT1 C %d,CLOSED" % conn_id[1]] - test_action_strings = ["SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_FIN" % conn_id[0], - "SOC SOC%d CLOSE" % conn_id[0]] - fail_string = "Fail, Fail to close socket using D_05" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - pass - - def __close_d_06(self, conn_id): - # 1. set PC socket close option, stop calling recv; send in target - checker_stings = ["ATP AT1 C >"] - test_action_strings = ["SOC SOC%d STOPRECV" % conn_id[0], - "SOC SOC%d SETOPT CLOSE_OPT IMM_SEND_RST" % conn_id[0], - "ATS AT1 AT+CIPSEND=%d,5" % conn_id[1]] - fail_string = "Fail, Fail to close socket using D_06" - ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - if ret is False: - return ret - - # 2. send 5 bytes to socket - checker_stings = ["ATP AT1 C OK"] - test_action_strings = ["ATSN AT1 5"] - fail_string = "Fail, Fail to close socket using D_06" - ret = self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - if ret is False: - return ret - - # 3. close socket - checker_stings = ["ATP AT1 OR 2 C %d,CONNECT C %d,CLOSED" % (conn_id[1], conn_id[1])] - test_action_strings = ["SOC SOC%d CLOSE" % conn_id[0]] - fail_string = "Fail, Fail to close socket using D_06" - return self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=200, check_freq=0.01) - pass - - def __close_d_07(self, conn_id): - pass - - def __close_d_08(self, conn_id): - pass - - def send_test_data(self, socket_id, target_link_id, check_data_len): - # check_data_len[0] for socket data len, check_data_len[1] for target link data len - fail_string = "Fail, Fail on send and recv data" - - ret = True - - for i in range(1): - if check_data_len[1] != 0: - checker_stings = ["ATP AT1 C >"] - test_action_strings = ["ATS AT1 AT+CIPSEND=%d,%d" % (target_link_id, check_data_len[1])] - if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail on target send command for link %d" % target_link_id) - ret = False - break - checker_stings = ["SOCP SOC%d RL %d" % (socket_id, check_data_len[1]), "ATP AT1 C OK"] - test_action_strings = ["ATSN AT1 %d" % check_data_len[1]] - if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail on target send for link %d, send or recv error" % target_link_id) - ret = False - break - - if check_data_len[0] != 0: - checker_stings = ["ATP AT1 DL %d+%d" % (target_link_id, check_data_len[0])] - test_action_strings = ["SOC SOC%d SEND %d" % (socket_id, check_data_len[0])] - - if self.tc_action.load_and_exe_one_step(checker_stings, test_action_strings, - fail_string, check_time=20) is False: - NativeLog.add_trace_critical("Fail to receive PC SOC%d sent data" % socket_id) - ret = False - break - - # return ret - # for now do not validate data - return True - - TCP_ACTION_DICT = {"C_01": __connect_c_01, - "C_02": __connect_c_02, - "C_03": __connect_c_03, - "C_04": __connect_c_04, - "C_05": __connect_c_05, - "C_06": __connect_c_06, - "C_07": __connect_c_07, - "C_08": __connect_c_08, - "D_01": __close_d_01, - "D_02": __close_d_02, - "D_03": __close_d_03, - "D_04": __close_d_04, - "D_05": __close_d_05, - "D_06": __close_d_06, - "D_07": __close_d_07, - "D_08": __close_d_08, - } - - def get_method_destination_state(self, method): - return self.METHOD_RESULT[method] - - def execute_tcp_method(self, method, conn_id): - if method in self.METHOD_RESULT: - return self.TCP_ACTION_DICT[method](self, conn_id), self.get_method_destination_state(method) - else: - raise TCPUtilError("Not TCP connection method") - pass - - def is_created_state(self, state): - if state in self.SOC_CREATED_STATE: - return True - else: - return False - - def is_closed_state(self, state): - if state in self.SOC_CLOSED_STATE: - return True - else: - return False - - def is_able_to_send_data(self, state): - if state in self.SOC_SEND_DATA_STATE: - return True - else: - return False - - def is_established_connection(self, state): - if state[0] in self.SOC_ESTABLISHED_STATE and state[1] in self.SOC_ESTABLISHED_STATE: - return True - else: - return False - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPConnection.py b/components/test/TestCaseScript/TCPStress/TCPConnection.py deleted file mode 100755 index 8b481c7df..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPConnection.py +++ /dev/null @@ -1,321 +0,0 @@ -import random -import re -import socket -import threading -import time - -import TCPConnectionUtility -from NativeLog import NativeLog -from TCAction import PerformanceTCBase - -DELAY_RANGE = [10, 3000] -CONNECTION_STRUCTURE = ("Connection handler", "PC socket", "Target socket id", - "Target port", "PC port", "PC state", "Target state") - - -class CheckerBase(threading.Thread): - - CHECK_ITEM = ("CONDITION", "NOTIFIER", "ID", "DATA") - SLEEP_TIME = 0.1 # sleep 100ms between each check action - - def __init__(self): - threading.Thread.__init__(self) - self.setDaemon(True) - self.exit_event = threading.Event() - self.sync_lock = threading.Lock() - self.check_item_list = [] - self.check_item_id = 0 - - def run(self): - while self.exit_event.isSet() is False: - self.process() - pass - - def process(self): - pass - - def add_check_item(self, condition, notifier): - with self.sync_lock: - check_item_id = self.check_item_id - self.check_item_id += 1 - self.check_item_list.append(dict(zip(self.CHECK_ITEM, (condition, notifier, check_item_id, str())))) - return check_item_id - - def remove_check_item(self, check_item_id): - ret = None - with self.sync_lock: - check_items = filter(lambda x: x["ID"] == check_item_id, self.check_item_list) - if len(check_items) > 0: - self.check_item_list.remove(check_items[0]) - ret = check_items[0]["DATA"] - return ret - - def exit(self): - self.exit_event.set() - pass - - -# check on serial port -class SerialPortChecker(CheckerBase): - def __init__(self, serial_reader): - CheckerBase.__init__(self) - self.serial_reader = serial_reader - pass - - # check condition for serial is compiled regular expression pattern - @staticmethod - def do_check(check_item, data): - match = check_item["CONDITION"].search(data) - if match is not None: - pos = data.find(match.group()) + len(match.group()) - # notify user - check_item["NOTIFIER"]("serial", match) - else: - pos = -1 - return pos - - def process(self): - # do check - with self.sync_lock: - # read data - new_data = self.serial_reader() - # NativeLog.add_trace_info("[debug][read data] %s" % new_data) - # do check each item - for check_item in self.check_item_list: - # NativeLog.add_trace_info("[debug][read data][ID][%s]" % check_item["ID"]) - check_item["DATA"] += new_data - self.do_check(check_item, check_item["DATA"]) - time.sleep(self.SLEEP_TIME) - - -# handle PC TCP server accept and notify user -class TCPServerChecker(CheckerBase): - def __init__(self, server_sock): - CheckerBase.__init__(self) - self.server_sock = server_sock - server_sock.settimeout(self.SLEEP_TIME) - self.accepted_socket_list = [] - - # check condition for tcp accepted sock is tcp source port - @staticmethod - def do_check(check_item, data): - for sock_addr_pair in data: - addr = sock_addr_pair[1] - if addr[1] == check_item["CONDITION"]: - # same port, so this is the socket that matched, notify and remove it from list - check_item["NOTIFIER"]("tcp", sock_addr_pair[0]) - data.remove(sock_addr_pair) - - def process(self): - # do accept - try: - client_sock, addr = self.server_sock.accept() - self.accepted_socket_list.append((client_sock, addr)) - except socket.error: - pass - # do check - with self.sync_lock: - check_item_list = self.check_item_list - for check_item in check_item_list: - self.do_check(check_item, self.accepted_socket_list) - pass - - -# this thread handles one tcp connection. -class ConnectionHandler(threading.Thread): - CHECK_FREQ = CheckerBase.SLEEP_TIME/2 - - def __init__(self, utility, serial_checker, tcp_checker, connect_method, disconnect_method): - threading.Thread.__init__(self) - self.setDaemon(True) - self.utility = utility - self.connect_method = connect_method - self.disconnect_method = disconnect_method - self.exit_event = threading.Event() - # following members are used in communication with checker threads - self.serial_checker = serial_checker - self.tcp_checker = tcp_checker - self.serial_notify_event = threading.Event() - self.tcp_notify_event = threading.Event() - self.serial_result = None - self.tcp_result = None - self.serial_check_item_id = None - self.tcp_check_item_id = None - self.data_cache = None - pass - - def new_connection_structure(self): - connection = dict.fromkeys(CONNECTION_STRUCTURE, None) - connection["Connection handler"] = self - return connection - - def run(self): - while self.exit_event.isSet() is False: - connection = self.new_connection_structure() - # do connect - connect_method_choice = random.choice(self.connect_method) - self.utility.execute_tcp_method(connect_method_choice, connection) - # check if established - if self.utility.is_established_state(connection) is True: - time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000) - # do disconnect if established - disconnect_method_choice = random.choice(self.disconnect_method) - self.utility.execute_tcp_method(disconnect_method_choice, connection) - # make sure target socket closed - self.utility.close_connection(connection) - time.sleep(float(random.randint(DELAY_RANGE[0], DELAY_RANGE[1]))/1000) - pass - - # serial_condition: re string - # tcp_condition: target local port - def add_checkers(self, serial_condition=None, tcp_condition=None): - # cleanup - self.serial_result = None - self.tcp_result = None - self.serial_notify_event.clear() - self.tcp_notify_event.clear() - # serial_checker - if serial_condition is not None: - pattern = re.compile(serial_condition) - self.serial_check_item_id = self.serial_checker.add_check_item(pattern, self.notifier) - else: - # set event so that serial check always pass - self.serial_notify_event.set() - if tcp_condition is not None: - self.tcp_check_item_id = self.tcp_checker.add_check_item(tcp_condition, self.notifier) - else: - # set event so that tcp check always pass - self.tcp_notify_event.set() - # NativeLog.add_trace_info("[Debug] add check item %s, connection is %s" % (self.serial_check_item_id, self)) - pass - - def get_checker_results(self, timeout=5): - time1 = time.time() - while time.time() - time1 < timeout: - # if one type of checker is not set, its event will be set in add_checkers - if self.serial_notify_event.isSet() is True and self.tcp_notify_event.isSet() is True: - break - time.sleep(self.CHECK_FREQ) - # do cleanup - # NativeLog.add_trace_info("[Debug] remove check item %s, connection is %s" % (self.serial_check_item_id, self)) - self.data_cache = self.serial_checker.remove_check_item(self.serial_check_item_id) - self.tcp_checker.remove_check_item(self.tcp_check_item_id) - # self.serial_check_item_id = None - # self.tcp_check_item_id = None - return self.serial_result, self.tcp_result - - def notifier(self, typ, result): - if typ == "serial": - self.serial_notify_event.set() - self.serial_result = result - elif typ == "tcp": - self.tcp_notify_event.set() - self.tcp_result = result - - def exit(self): - self.exit_event.set() - pass - - -class TCPConnection(PerformanceTCBase.PerformanceTCBase): - def __init__(self, name, test_env, cmd_set, timeout=120, log_path=None): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.max_connection = 5 - self.execute_time = 120 # execute time default 120 minutes - self.pc_ip = "pc_ip" - self.target_ip = "target_ip" - self.connect_method = ["C_01"] - self.disconnect_method = ["D_05"] - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - self.error_event = threading.Event() - self.serial_lock = threading.Lock() - pass - - def serial_reader(self): - return self.serial_read_data("SSC1") - - def send_ssc_command(self, data): - with self.serial_lock: - time.sleep(0.05) - self.serial_write_line("SSC1", data) - - def error_detected(self): - self.error_event.set() - - def process(self): - # parameters - max_connection = self.max_connection - execute_time = self.execute_time * 60 - pc_ip = self.get_parameter(self.pc_ip) - target_ip = self.get_parameter(self.target_ip) - connect_method = self.connect_method - disconnect_method = self.disconnect_method - server_port = random.randint(30000, 50000) - - # step 1, create TCP server on target and PC - # create TCP server on target - self.serial_write_line("SSC1", "soc -B -t TCP -p %s" % server_port) - match = self.check_regular_expression("SSC1", re.compile("BIND:(\d+),OK")) - if match is None: - NativeLog.add_prompt_trace("Failed to create TCP server on target") - return - target_sock_id = match.group(1) - - self.serial_write_line("SSC1", "soc -L -s %s" % target_sock_id) - if self.check_response("SSC1", "+LISTEN:%s,OK" % target_sock_id) is False: - NativeLog.add_prompt_trace("Failed to create TCP server on target") - return - - # create TCP server on PC - try: - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, server_port)) - server_sock.listen(5) - except StandardError: - NativeLog.add_prompt_trace("Failed to create TCP server on PC") - return - - # step 2, create checker - serial_port_checker = SerialPortChecker(self.serial_reader) - tcp_server_checker = TCPServerChecker(server_sock) - serial_port_checker.start() - tcp_server_checker.start() - - # step 3, create 5 thread and do connection - utility = TCPConnectionUtility.Utility(self, server_port, server_port, pc_ip, target_ip) - work_thread = [] - for i in range(max_connection): - t = ConnectionHandler(utility, serial_port_checker, tcp_server_checker, - connect_method, disconnect_method) - work_thread.append(t) - t.start() - - # step 4, wait and exit - self.error_event.wait(execute_time) - # close all threads - for t in work_thread: - t.exit() - t.join() - serial_port_checker.exit() - tcp_server_checker.exit() - serial_port_checker.join() - tcp_server_checker.join() - - if self.error_event.isSet() is False: - # no error detected - self.set_result("Succeed") - pass - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py b/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py deleted file mode 100755 index f28218af0..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPConnectionUtility.py +++ /dev/null @@ -1,251 +0,0 @@ -import random -import socket -import threading - -from NativeLog import NativeLog - -# from NativeLog import NativeLog - -# make sure target do not listen on this port -ERROR_PORT = 62685 - - -class Utility(object): - METHOD_RESULT = {"C_01": ("ESTABLISHED", "ESTABLISHED"), # target TCP peer state, PC TCP peer state - "C_02": ("SYNC_SENT", "CLOSED"), - "C_03": ("CLOSED", "CLOSED"), - "C_04": ("SYN_RCVD", "ESTABLISHED"), - "C_05": ("ESTABLISHED", "ESTABLISHED"), - "C_06": ("CLOSED", "CLOSED"), - "C_07": ("CLOSED", "CLOSED"), - "C_08": ("CLOSED", "CLOSED"), - "D_01": ("TIME_WAIT", "CLOSED"), - "D_02": ("TIME_WAIT", "TIME_WAIT"), - "D_03": ("FIN_WAIT_2", "CLOSE_WAIT"), - "D_04": ("FIN_WAIT_1", "CLOSE_WAIT"), - "D_05": ("CLOSED", "TIME_WAIT"), - "D_06": ("CLOSED", "CLOSED"), - "D_07": ("CLOSE_WAIT", "FIN_WAIT2"), - "D_08": ("TIME_WAIT", "CLOSED"), } - - SOC_CLOSED_STATE = ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT", "LAST_ACK", "CLOSED") - SOC_CREATED_STATE = ("SYNC_RCVD", "ESTABLISHED") - SOC_SEND_DATA_STATE = ("ESTABLISHED", "CLOSE_WAIT") - SOC_ESTABLISHED_STATE = ("ESTABLISHED", ) - - def __init__(self, tc_action, pc_server_port, target_server_port, pc_ip, target_ip): - self.tc_action = tc_action - self.pc_server_port = pc_server_port - self.target_server_port = target_server_port - self.pc_ip = pc_ip - self.target_ip = target_ip - self.pc_close_wait_socket_list = [] - self.sync_lock = threading.Lock() - pass - - # create a tcp socket, return True or False - def __create_tcp_socket(self, connection): - connection_handler = connection["Connection handler"] - connection["Target port"] = random.randint(10000, 60000) - connection_handler.add_checkers("BIND:(\d+),OK,%s,%s" - % (self.target_ip, connection["Target port"])) - self.tc_action.send_ssc_command("soc -B -t TCP -i %s -p %s" % (self.target_ip, connection["Target port"])) - serial_result, tcp_result = connection_handler.get_checker_results() - if serial_result is not None: - connection["Target socket id"] = serial_result.group(1) - return True - else: - return False - - # target do connect, return True or False - def __target_do_connect(self, connection, dest_ip, dest_port, timeout=20): - connection_handler = connection["Connection handler"] - connection_handler.add_checkers("CONNECT:%s,OK" % connection["Target socket id"], - connection["Target port"]) - self.tc_action.send_ssc_command("soc -C -s %s -i %s -p %s" - % (connection["Target socket id"], dest_ip, dest_port)) - serial_result, tcp_result = connection_handler.get_checker_results(timeout) - if serial_result is not None and tcp_result is not None: - connection["PC socket"] = tcp_result - return True - else: - return False - pass - - # pc do connect, return True or False - def __pc_do_connect(self, connection, dest_ip, dest_port, timeout=20): - connection_handler = connection["Connection handler"] - sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - while True: - connection["PC port"] = random.randint(10000, 60000) - try: - sock.bind((self.pc_ip, connection["PC port"])) - break - except socket.error, e: - if e.errno == 10048: # socket port reuse - continue - sock.settimeout(timeout) - connection["PC socket"] = sock - connection_handler.add_checkers("ACCEPT:(\d+),\d+,%s,%s" - % (self.pc_ip, connection["PC port"])) - try: - sock.connect((dest_ip, dest_port)) - except socket.error: - pass - serial_result, tcp_result = connection_handler.get_checker_results() - if serial_result is not None: - connection["Target socket id"] = serial_result.group(1) - return True - else: - return False - pass - - def connect_c_01(self, connection): - if self.__create_tcp_socket(connection) is True: - return self.__target_do_connect(connection, self.pc_ip, self.pc_server_port) - else: - return False - - def connect_c_02(self, connection): - if self.__create_tcp_socket(connection) is True: - return not self.__target_do_connect(connection, self.pc_ip, ERROR_PORT, timeout=5) - else: - return False - - def connect_c_03(self, connection): - return False - - def connect_c_04(self, connection): - return False - - def connect_c_05(self, connection): - return self.__pc_do_connect(connection, self.target_ip, self.target_server_port) - - def connect_c_06(self, connection): - return False - - def connect_c_07(self, connection): - return not self.__pc_do_connect(connection, self.target_ip, ERROR_PORT) - - def connect_c_08(self, connection): - return False - - def __target_socket_close(self, connection): - connection_handler = connection["Connection handler"] - if connection["Target socket id"] is not None: - connection_handler.add_checkers("CLOSE:%s" % connection["Target socket id"]) - self.tc_action.send_ssc_command("soc -T -s %s" % connection["Target socket id"]) - serial_result, tcp_result = connection_handler.get_checker_results() - connection["Target socket id"] = None - else: - serial_result = None - return True if serial_result is not None else False - - @staticmethod - def __pc_socket_close(connection): - connection_handler = connection["Connection handler"] - if connection["PC socket"] is not None: - connection_handler.add_checkers("CLOSED:%s" % connection["Target socket id"]) - connection["PC socket"].close() - serial_result, tcp_result = connection_handler.get_checker_results() - connection["PC socket"] = None - else: - serial_result = None - return True if serial_result is not None else False - - def close_d_01(self, connection): - connection["PC socket"] = None - return self.__target_socket_close(connection) - - def close_d_02(self, connection): - pass - - def close_d_03(self, connection): - with self.sync_lock: - self.pc_close_wait_socket_list.append(connection["PC socket"]) - return self.__target_socket_close(connection) - pass - - def close_d_04(self, connection): - pass - - def close_d_05(self, connection): - return self.__pc_socket_close(connection) - - def close_d_06(self, connection): - # target send data to PC, PC don't recv and close socket - connection_handler = connection["Connection handler"] - connection_handler.add_checkers("SEND:%s,OK" % connection["Target socket id"]) - self.tc_action.send_ssc_command("soc -S -s %s -l 100" % connection["Target socket id"]) - serial_result, tcp_result = connection_handler.get_checker_results() - if serial_result is None: - return False - return self.__pc_socket_close(connection) - - def close_d_07(self, connection): - # PC shutdown WR - result = False - try: - connection["PC socket"].shutdown(socket.SHUT_WR) - result = True - except StandardError: - pass - return result - - def close_d_08(self, connection): - pass - - def close_connection(self, connection): - self.__target_socket_close(connection) - pass - - TCP_ACTION_DICT = {"C_01": connect_c_01, - "C_02": connect_c_02, - "C_03": connect_c_03, - "C_04": connect_c_04, - "C_05": connect_c_05, - "C_06": connect_c_06, - "C_07": connect_c_07, - "C_08": connect_c_08, - "D_01": close_d_01, - "D_02": close_d_02, - "D_03": close_d_03, - "D_04": close_d_04, - "D_05": close_d_05, - "D_06": close_d_06, - "D_07": close_d_07, - "D_08": close_d_08, - } - - def get_method_destination_state(self, method): - return self.METHOD_RESULT[method] - - def execute_tcp_method(self, method, connection): - if method in self.METHOD_RESULT: - result = self.TCP_ACTION_DICT[method](self, connection) - if result is True: - state = self.get_method_destination_state(method) - connection["Target state"] = state[0] - connection["PC state"] = state[1] - else: - NativeLog.add_prompt_trace("[TCPConnection] tcp method %s fail, connection is %s" - % (method, connection)) - NativeLog.add_trace_info("[TCPConnection][data cache][check item %s] %s" - % (connection["Connection handler"].serial_check_item_id, - connection["Connection handler"].data_cache)) - else: - raise StandardError("Not TCP connection method") - return result - - def is_established_state(self, connection): - return True if connection["Target state"] in self.SOC_CREATED_STATE else False - - def is_closed_state(self, connection): - return True if connection["Target state"] in self.SOC_CLOSED_STATE else False - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPDataValidation.py b/components/test/TestCaseScript/TCPStress/TCPDataValidation.py deleted file mode 100755 index b056af38f..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPDataValidation.py +++ /dev/null @@ -1,244 +0,0 @@ -import os -import random -import threading -import socket -import time -import re - -from TCAction import TCActionBase -from TCAction import PerformanceTCBase -from NativeLog import NativeLog - - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") - - -AP_PROP_KEY = ("ssid", "password", "apc") - - -def calc_hash(index): - return (index & 0xffffffff) % 83 + (index & 0xffffffff) % 167 - - -def verify_data(data, start_index): - for i, c in enumerate(data): - if ord(c) != calc_hash(start_index + i): - NativeLog.add_trace_critical("[Data Validation Error] target sent data index %u is error." - " Sent data is %x, should be %x" - % (start_index + i, ord(c), calc_hash(start_index + i))) - return False - return True - - -def make_validation_data(length, start_index): - return bytes().join([chr(calc_hash(start_index + i)) for i in range(length)]) - - -class SendThread(threading.Thread): - def __init__(self, sock, send_len): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.send_len = send_len - self.exit_event = threading.Event() - pass - - def exit(self): - self.exit_event.set() - - def run(self): - index = 0 - while self.exit_event.isSet() is False: - data = make_validation_data(self.send_len, index) - try: - self.sock.send(data) - index += self.send_len - except StandardError: - # pass but not exit thread - time.sleep(1) - continue - pass - - -class RecvThread(threading.Thread): - def __init__(self, sock): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.exit_event = threading.Event() - - def exit(self): - self.exit_event.set() - - def run(self): - index = 0 - while self.exit_event.isSet() is False: - if self.sock is not None: - try: - data = self.sock.recv(8*1024) - except StandardError, e: - NativeLog.add_exception_log(e) - NativeLog.add_trace_critical("recv error, connection closed") - break - if verify_data(data, index) is not True: - break - index += len(data) - else: - time.sleep(1) - pass - - -class ValidationThread(threading.Thread): - def __init__(self, tc_action): - threading.Thread.__init__(self) - self.setDaemon(True) - self.tc_action = tc_action - self.exit_event = threading.Event() - - def exit(self): - self.exit_event.set() - - def run(self): - while self.exit_event.isSet() is False: - if self.tc_action.check_response("SSC1", "DATA_ERROR", 5) is True: - NativeLog.add_trace_critical("[Data Validation Error] target recv data error") - break - pass - - -class TCPDataValidation(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.send_len = 1460 - self.tx_enable = True - self.rx_enable = True - self.conn_num = 1 - self.test_time = 300 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - - try: - # configurable params - send_len = self.send_len - tx_enable = self.tx_enable - rx_enable = self.rx_enable - conn_num = self.conn_num - test_time = self.test_time * 60 # convert minutes to seconds - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) - raise StandardError("Error configuration") - - # init throughput result data - test_item = "" - if tx_enable is True: - test_item += "Tx" - if rx_enable is True: - test_item += "Rx" - if test_item == "": - raise StandardError("no throughput test item") - - pc_ip = self.get_parameter("pc_ip") - tcp_port = random.randint(10000, 50000) - - # disable recv print during throughput test - self.serial_write_line("SSC1", "soc -R -o 0") - if self.check_response("SSC1", "+RECVPRINT", 2) is False: - NativeLog.add_trace_critical("Fail, Fail to disable recv print") - - # create server - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, tcp_port)) - server_sock.settimeout(5) - server_sock.listen(5) - - sock_id_list = [] - send_thread_list = [] - recv_thread_list = [] - - # step 4 create tcp connection - for i in range(conn_num): - self.serial_write_line("SSC1", "soc -B -t TCP") - match = self.check_regular_expression("SSC1", re.compile("\+BIND:(\d+),OK"), 2) - if match is None: - NativeLog.add_trace_critical("Fail, Fail to bind") - return - else: - sock_id_list.append(int(match.group(1))) - - self.serial_write_line("SSC1", "soc -V -s %s -o 3" % sock_id_list[-1]) - if self.check_regular_expression("SSC1", re.compile("\+DATA_VALIDATION:\d+,OK"), 2) is None: - NativeLog.add_trace_critical("Fail, Failed to enable validation") - return - - self.serial_write_line("SSC1", "soc -C -s %s -i %s -p %s" % (sock_id_list[-1], pc_ip, tcp_port)) - try: - sock, addr = server_sock.accept() - except socket.error, e: - NativeLog.add_trace_critical("%s" % e) - raise e - - if self.check_regular_expression("SSC1", re.compile("\+CONNECT:\d+,OK"), 5) is None: - NativeLog.add_trace_critical("Fail, Failed to connect") - return - - sock.settimeout(10) - - send_thread_list.append(SendThread(sock if rx_enable is True else None, send_len)) - recv_thread_list.append(RecvThread(sock if tx_enable is True else None)) - recv_thread_list[-1].start() - - # step 5 do test - validation_thread = ValidationThread(self) - validation_thread.start() - - for send_thread in send_thread_list: - send_thread.start() - - if tx_enable is True: - # do send from target - for sock_id in sock_id_list: - self.serial_write_line("SSC1", "soc -S -s %s -l %s -n 10000000" % (sock_id, send_len)) - - time1 = time.time() - exit_flag = False - - while time.time() - time1 < test_time and exit_flag is False: - for i in sock_id_list: - send_thread_list[i].join(0.5) - recv_thread_list[i].join(0.5) - validation_thread.join(0.5) - if send_thread_list[i].isAlive() is False \ - or recv_thread_list[i].isAlive() is False \ - or validation_thread.isAlive() is False: - NativeLog.add_trace_critical("validation error found") - exit_flag = True - break - else: - self.set_result("Succeed") - - # exit all thread - for i in sock_id_list: - send_thread_list[i].exit() - recv_thread_list[i].exit() - send_thread_list[i].join() - send_thread_list[i].join() - - validation_thread.exit() - validation_thread.join() - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPRandomSend.py b/components/test/TestCaseScript/TCPStress/TCPRandomSend.py deleted file mode 100755 index 5a07a2d96..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPRandomSend.py +++ /dev/null @@ -1,103 +0,0 @@ -import os -import time -import random -import threading -import socket -from TCAction import TCActionBase -from NativeLog import NativeLog -from NativeLog import ThroughputResult - - -class TCPRandomSend(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.send_len_config = range(1460) - self.delay_config = [0, 0.01, 0.1, 0.5, 1] - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len_config = self.send_len_config - delay_config = self.delay_config - send_count = self.send_count - test_time = self.test_time * 60 - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) - raise StandardError("Error configuration") - - # disable recv print during random send test - checker_stings = ["R SSC1 C +RECVPRINT"] - test_action_string = ["SSC SSC1 soc -R -o 0"] - fail_string = "Fail, Fail to disable recv print" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - pc_ip = self.test_env.get_variable_by_name("pc_ip")[1] - tcp_port = random.randint(50000, 60000) - - # step 0 create tcp connection - - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, tcp_port)) - server_sock.settimeout(1) - server_sock.listen(5) - - checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t TCP"] - fail_string = "Fail, Fail bind" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"] - test_action_string = ["SSC SSC1 soc -C -s -i %s -p %s" % (pc_ip, tcp_port)] - fail_string = "Fail, Fail to connect" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - sock, addr = server_sock.accept() - sock.settimeout(10) - # set no delay so that tcp segment will be send as soon as send called - sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - - # step 1 start send - start_time = time.time() - while time.time() - start_time < test_time: - for delay in delay_config: - for i in xrange(send_count): - send_len = random.choice(send_len_config) - data = "A" * (send_len+1) - try: - sock.send(data) - except socket.error, e: - NativeLog.add_exception_log(e) - return - pass - time.sleep(delay) - - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPSendRecv.py b/components/test/TestCaseScript/TCPStress/TCPSendRecv.py deleted file mode 100755 index e14d7f04d..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPSendRecv.py +++ /dev/null @@ -1,143 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import time -import random -import string - -TEST_COUNT_ONE_ROUND = 1000 - - -class TCPSendRecv(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - # step 0 turn on recv print - checker_stings = ["R SSC1 C +RECVPRINT:1"] - test_action_string = ["SSC SSC1 soc -R -o 1"] - fail_string = "Fail, Fail to turn on recv print" - self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len = self.send_len - test_time = self.test_time * 60 - duplex = self.duplex - conn_num = self.conn_num - send_delay = self.send_delay - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPSendRecv script, error is %s" % e) - raise StandardError("Error configuration") - - ssid = "".join([random.choice(string.lowercase) for m in range(10)]) - password = "".join([random.choice(string.lowercase) for m in range(10)]) - - # step 0 set ap - checker_stings = ["R SSC1 C +SAP:OK"] - test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)] - fail_string = "Fail, Fail to set ap" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 1 connect to ap and turn off recv print - checker_stings = ["R SSC2 C +JAP:CONNECTED"] - test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: - return - - checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"] - test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"] - fail_string = "Fail, Fail to turn off recv print" - self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: - return - - # step 2 create server on AP - checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t TCP -p "] - fail_string = "Fail, Fail to create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 A :\+LISTEN:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -L -s "] - fail_string = "Fail, Fail to create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 3 create conn_num tcp connections - for i in range(conn_num): - checker_stings = ["R SSC2 A :\+BIND:(\d+),OK" % i] - test_action_string = ["SSC SSC2 soc -B -t TCP"] - fail_string = "Fail, Fail to bind" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["P SSC1 A :\+ACCEPT:(\d+),\d+" % i, - "P SSC2 RE \+CONNECT:\d+,OK"] - test_action_string = ["SSC SSC2 soc -C -s -i -p " % i] - fail_string = "Fail, Fail to connect" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - # step 4, do send/recv - while time.time()-start_time < test_time: - - checker_stings = ["P SSC1 NC ERROR NC CLOSE"] - for i in range(conn_num): - test_action_string = ["SSC SSC2 soc -S -s -l %d -n %d -j %d" % - (i, send_len, TEST_COUNT_ONE_ROUND, send_delay)] - checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%() NC ERROR NC CLOSE" % i) - - if duplex is True: - checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%()" % i) - test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % - (i, send_len, TEST_COUNT_ONE_ROUND, send_delay)) - - fail_string = "Fail, Failed on send command" - if self.load_and_exe_one_step([], test_action_string, fail_string) is False: - break - # if self.load_and_exe_one_step([], ["SSC SSC1 ram -H", "SSC SSC2 ram -H"], fail_string) is False: - # break - # time.sleep(0.1) - - fail_string = "Fail, Failed to send/recv data" - if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string, - check_freq=1, check_time=300) is False: - break - pass - - NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time)) - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - - diff --git a/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py b/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py deleted file mode 100644 index de31bacc1..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPSoftAPSTASendRecv.py +++ /dev/null @@ -1,318 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import time -import random -import string - -TEST_COUNT_ONE_ROUND = 500 - - -class TCPSoftAPSTASendRecv(TCActionBase.CommonTCActionBase): - def __init__(self, name, test_env, cmd_set, timeout=45, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len = self.send_len - # test count - test_count = self.test_count - # server port - server_port = self.server_port - server_port_t = self.server_port_2 - # ap ip - # ap_ip = self.ap_ip - # server echo - server_echo = self.server_echo - # station number - sta_number = self.sta_number - # pass standard - pass_standard = self.pass_standard - # send delay - send_delay = self.send_delay - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPTransparent script, error is %s" % e) - raise StandardError("Error configuration") - - # step0 reboot - checker_stings = [] - test_action_string = [] - - for i in range(sta_number + 2): - checker_stings.append("P SSC%d C !!!ready!!!" % (i + 1)) - test_action_string.append("SSCC SSC%d reboot" % (i + 1)) - - fail_string = "Fail, Fail to reboot" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step1, set ap/STA mode on all target - for i in range(sta_number + 2): - checker_stings = ["R SSC%d C +MODE:OK" % (i + 1)] - test_action_string = ["SSCC SSC%d op -S -o 3" % (i + 1)] - fail_string = "Fail, Fail to set mode on SSC%d" % (i + 1) - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # set different getway for SSC1 softAP - checker_stings = ["R SSC1 C +DHCP:AP,OK"] - test_action_string = ["SSCC SSC1 dhcp -E -o 2"] - fail_string = "Fail, SSC1 Fail to disable DHCP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 C +IP:OK"] - test_action_string = ["SSCC SSC1 ip -S -o 2 -i 192.168.6.1"] - fail_string = "Fail, SSC1 Fail to set IP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 C +DHCP:AP,OK"] - test_action_string = ["SSCC SSC1 dhcp -S -o 2"] - fail_string = "Fail, SSC1 Fail to enable DHCP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # set different getway for SSC2 softAP - checker_stings = ["R SSC2 C +DHCP:AP,OK"] - test_action_string = ["SSCC SSC2 dhcp -E -o 2"] - fail_string = "Fail, SSC2 Fail to disable DHCP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC2 C +IP:OK"] - test_action_string = ["SSCC SSC2 ip -S -o 2 -i 192.168.5.1"] - fail_string = "Fail, SSC2 Fail to set IP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC2 C +DHCP:AP,OK"] - test_action_string = ["SSCC SSC2 dhcp -S -o 2"] - fail_string = "Fail, SSC2 Fail to enable DHCP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step2, set ssid/password on SSC1 - ssid = "".join([random.choice(string.lowercase) for m in range(10)]) - password = "".join([random.choice(string.lowercase) for m in range(10)]) - checker_stings = ["R SSC1 C +SAP:OK"] - test_action_string = ["SSCC SSC1 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid, password)] - fail_string = "Fail, Fail to set ssid/password on SSC1" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step3, set ssid/password on SSC2 - ssid_1 = "".join([random.choice(string.lowercase) for m in range(10)]) - password_1 = "".join([random.choice(string.lowercase) for m in range(10)]) - checker_stings = ["R SSC2 C +SAP:OK"] - test_action_string = ["SSCC SSC2 ap -S -s %s -p %s -n 10 -t 0 -m 8" % (ssid_1, password_1)] - fail_string = "Fail, Fail to set ap ssid/password on SSC2" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step4, SSC2 join SSC1(soft AP) - checker_stings = [] - test_action_string = [] - checker_stings.append("P SSC2 C +JAP:CONNECTED,%s" % ssid) - test_action_string.append("SSCC SSC2 ap -C -s %s -p %s" % (ssid, password)) - fail_string = "Fail, Fail to connect to SSC1 SoftAP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - # step5, create server on SSC1 - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] - fail_string = "Fail, Fail to create server on SSC1 while binding" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -L -s "] - fail_string = "Fail, Fail to create server on SSC1 while listening" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step6, create client on SSC2 - checker_stings = [] - test_action_string = [] - checker_stings.append("P SSC2 A :BIND:(\d+),OK") - test_action_string.append("SSCC SSC2 soc -B -t TCP") - fail_string = "Fail, SSC2 Fail to connect to server while binding" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A :ACCEPT:(\d+),.+"] - test_action_string = ["SSCC SSC2 soc -C -s -i %s -p %s" % ("192.168.6.1", server_port)] - fail_string = "Fail, SSC2 Fail to connect to server while connecting" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step7, SSC3 - SSC5 join SSC2 - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d C +JAP:CONNECTED,%s" % (i + 3, ssid_1)) - test_action_string.append("SSCC SSC%d ap -C -s %s -p %s" % (i + 3, ssid_1, password_1)) - fail_string = "Fail, SSC%d Fail to connect to SSC2" % (i + 3) - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=450) is False: - return - - # step8, create server on SSC2 - checker_stings = ["R SSC2 A :BIND:(\d+),OK"] - test_action_string = ["SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t] - fail_string = "Fail, Fail to create server one SSC2 while binding" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC2 soc -L -s "] - fail_string = "Fail, Fail to create server one SSC2 while listening" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step9, create client on SSC3 - SSC5 - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 3, i + 3)) - test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3)) - fail_string = "Fail, Fail to connect to SSC2 server while binding" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for i in range(sta_number): - checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3), - "P SSC2 A :ACCEPT:(\d+),.+" % (i + 3)] - test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % - (i + 3, i + 3, "192.168.5.1", server_port_t)] - fail_string = "Fail, Fail to connect to SSC2 server while connecting" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - # step 10, do send/recv - while test_count > 0: - _tmp_count = TEST_COUNT_ONE_ROUND if test_count - TEST_COUNT_ONE_ROUND > 0 else test_count - test_count -= TEST_COUNT_ONE_ROUND - - checker_stings = [] - test_action_string = [] - if server_echo is True: - test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" % - (send_len, _tmp_count, send_delay)) - checker_stings.append("P SSC1 RE \+SEND:\d+,OK NC CLOSED") - test_action_string.append("SSC SSC2 soc -S -s -l %d -n %d -j %d" % - (send_len, _tmp_count, send_delay)) - checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED") - - for i in range(sta_number): - checker_stings.append("P SSC%d RE \+SEND:\d+,OK NC CLOSED" % (i + 3)) - test_action_string.append("SSC SSC%d soc -S -s -l %d -n %d -j %d" % - (i + 3, i + 3, send_len, _tmp_count, send_delay)) - for i in range(sta_number): - test_action_string.append("SSC SSC2 soc -S -s -l %d -n %d -j %d" % - (i + 3, send_len, _tmp_count, send_delay)) - checker_stings.append("P SSC2 RE \+SEND:\d+,OK NC CLOSED") - - fail_string = "Fail, Failed to send/recv data" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=300) is False: - break - pass - - if (time.time() - start_time) > pass_standard: - self.result_cntx.set_result("Succeed") - else: - checker_stings = [] - test_action_string = [] - for i in range(sta_number + 2): - checker_stings.append("P SSC%d C CLOSEALL" % (i + 1)) - test_action_string.append("SSCC SSC%d soc -T" % (i + 1)) - fail_string = "Fail, Fail to close socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - # re-set server on SSC1 - server_port = random.randint(20000, 30000) - checker_stings = ["R SSC1 A :BIND:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -B -t TCP -p %s" % server_port] - fail_string = "Fail, Fail to bind socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["R SSC1 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC1 soc -L -s "] - fail_string = "Fail, Fail to listen" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - # SSC2 connnect SSC1 - checker_stings = [] - test_action_string = [] - checker_stings.append("P SSC2 A :BIND:(\d+),OK") - test_action_string.append("SSCC SSC2 soc -B -t TCP") - fail_string = "Fail, SSC2 Fail to bind sock" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - checker_stings = ["P SSC2 RE CONNECT:(\d+),OK", "P SSC1 A :ACCEPT:(\d+),.+"] - test_action_string = ["SSCC SSC2 soc -C -s -i %s -p %s" % ("192.168.6.1", server_port)] - fail_string = "Fail, SSC2 Fail to connect to SSC1 server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - #create server on SSC2 - checker_stings = [] - test_action_string = [] - checker_stings.append("P SSC2 A :BIND:(\d+),OK") - test_action_string.append("SSCC SSC2 soc -B -t TCP -p %s -i 192.168.5.1" % server_port_t) - fail_string = "Fail, SSC2 Fail to bind" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - checker_stings = ["R SSC2 RE LISTEN:(\d+),OK"] - test_action_string = ["SSCC SSC2 soc -L -s "] - fail_string = "Fail, SSC2 Fail to listen" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - #create client on SSC3-SSC5 - checker_stings = [] - test_action_string = [] - for i in range(sta_number): - checker_stings.append("P SSC%d A :BIND:(\d+),OK" % (i + 3, i + 3)) - test_action_string.append("SSCC SSC%d soc -B -t TCP" % (i + 3)) - fail_string = "Fail, Fail to connect to SSC2 server while binding" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for i in range(sta_number): - checker_stings = ["P SSC%d RE CONNECT:(\d+),OK" % (i + 3), - "P SSC2 A :ACCEPT:(\d+),.+" % (i + 3)] - test_action_string = ["SSCC SSC%d soc -C -s -i %s -p %s" % - (i + 3, i + 3, "192.168.5.1", server_port_t)] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - self.result_cntx.set_result("Failed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/TCPThroughput.py b/components/test/TestCaseScript/TCPStress/TCPThroughput.py deleted file mode 100755 index 0c40603e3..000000000 --- a/components/test/TestCaseScript/TCPStress/TCPThroughput.py +++ /dev/null @@ -1,315 +0,0 @@ -import os -import time -import random -import threading -import socket - -from TCAction import TCActionBase -from NativeLog import NativeLog -from NativeLog import ThroughputResult -from Utility import RSSICalibrator -from Utility import MakeFolder - - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") - - -AP_PROP_KEY = ("ssid", "password", "apc") - - -class SendThread(threading.Thread): - def __init__(self, sock, send_len): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.send_len = send_len - self.exit_event = threading.Event() - self.calc_event = threading.Event() - self.bytes_sent = 0 - pass - - def start_calc(self): - self.calc_event.set() - - def stop_calc(self): - self.calc_event.clear() - self.exit_event.set() - - def run(self): - data = "A" * self.send_len - if self.sock is None: - return - while True: - if self.exit_event.isSet() is True: - break - try: - self.sock.send(data) - except StandardError: - break - if self.calc_event.isSet() is True: - self.bytes_sent += self.send_len - - def get_bytes_sent(self): - return self.bytes_sent - pass - - -class RecvThread(threading.Thread): - def __init__(self, sock): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.exit_event = threading.Event() - self.calc_event = threading.Event() - self.bytes_recv = 0 - - def start_calc(self): - self.calc_event.set() - - def stop_calc(self): - self.calc_event.clear() - self.exit_event.set() - - def run(self): - if self.sock is None: - return - while True: - if self.exit_event.isSet() is True: - break - try: - data = self.sock.recv(8*1024) - except StandardError: - break - if self.calc_event.isSet() is True: - self.bytes_recv += len(data) - - def get_bytes_recv(self): - return self.bytes_recv - pass - - -class TCPThroughput(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.att_test_list = range(60) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # read AP list - self.ap_list = [] - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - ap_list = self.ap_list - send_len = self.send_len - att_test_list = self.att_test_list - tx_enable = self.tx_enable - rx_enable = self.rx_enable - measure_period = self.measure_period - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) - raise StandardError("Error configuration") - - # find local ip and generate local port - local_ip_list = socket.gethostbyname_ex(socket.gethostname())[2] - for local_ip in local_ip_list: - if local_ip.find("192.168.1.") != -1: - pc_ip = local_ip - break - else: - raise StandardError("Can't find local IP.") - - tcp_port = random.randint(40000, 50000) - - # init throughput result data - test_item = "" - if tx_enable is True: - test_item += "Tx" - if rx_enable is True: - test_item += "Rx" - if test_item == "": - raise StandardError("no throughput test item") - - folder_path = MakeFolder.make_folder(LOG_FOLDER) - file_name = os.path.join(folder_path, - "TCPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime()))) - - result = ThroughputResult.ThroughputResult(file_name, standard_required=True) - - # restart before executing throughput - checker_stings = ["R SSC1 C !!!ready!!!"] - test_action_string = ["SSC SSC1 reboot"] - fail_string = "Fail, Fail to reboot" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # disable recv print during throughput test - checker_stings = ["R SSC1 C +RECVPRINT"] - test_action_string = ["SSC SSC1 soc -R -o 0"] - fail_string = "Fail, Fail to disable recv print" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for ap_prop in ap_list: - if ap_prop["password"] == "": - # set a default string for open ap - ap_prop["password"] = "1" - - # switch off all outlet, switch on AP outlet - outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") - outlet_config_dict[ap_prop["apc"]] = "ON" - apc_cmd = "APC " - for outlet in outlet_config_dict: - apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) - checker_stings = ["P PC_COM L OK"] - fail_string = "Fail, Fail to switch apc" - if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: - return - - # wait AP ready - time.sleep(20) - - # create server - server_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) - server_sock.bind((pc_ip, tcp_port)) - server_sock.settimeout(5) - server_sock.listen(5) - - if tx_enable is True: - result.add_test_item(ap_prop["ssid"] + "_tx") - if rx_enable is True: - result.add_test_item(ap_prop["ssid"] + "_rx") - - # create RSSI Calibrator - calibrator = RSSICalibrator.Calibrator() - - for att_value in att_test_list: - # step 0 set att value - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT %s" % att_value] - fail_string = "Fail, Fail to set att value" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - # step 1 connect to AP - checker_stings = ["R SSC1 C +JAP:CONNECTED"] - test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] - fail_string = "Fail, Fail to JAP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=30) is False: - continue - # step 2 get AP RSSI - checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ap_prop["ssid"]] - test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] - fail_string = "Fail, Fail to scan" - rssi = scan_count = 0 - for i in range(3): - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - rssi += int(self.test_env.get_variable_by_name("rssi")[1]) - scan_count += 1 - - rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) - - # step 3 close all connections - checker_stings = ["R SSC1 C +CLOSEALL"] - test_action_string = ["SSC SSC1 soc -T"] - fail_string = "Fail, Fail to create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - # step 4 create tcp connection - - checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t TCP"] - fail_string = "Fail, Fail bind" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - checker_stings = ["P SSC1 RE \+CONNECT:\d+,OK"] - test_action_string = ["SSC SSC1 soc -C -s -i %s -p %s" % (pc_ip, tcp_port)] - fail_string = "Fail, Fail to connect" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - try: - sock, addr = server_sock.accept() - except socket.error, e: - NativeLog.add_trace_critical("%s" % e) - continue - sock.settimeout(measure_period) - - # step 5 do throughput test - send_thread = SendThread(sock if rx_enable is True else None, send_len) - send_thread.start() - - recv_thread = RecvThread(sock if tx_enable is True else None) - recv_thread.start() - - if tx_enable is True: - # do send from target - test_action_string = ["SSC SSC1 soc -S -s -l %s -n 10000000" % send_len] - fail_string = "Fail, Fail to send" - if self.load_and_exe_one_step([], test_action_string, fail_string) is False: - pass - - # start throughput calculate - send_thread.start_calc() - recv_thread.start_calc() - - # sleep for measure period - time.sleep(measure_period) - - # stop throughput calculate - send_thread.stop_calc() - recv_thread.stop_calc() - - send_thread.join() - recv_thread.join() - - sock.close() - - # output throughput result - # in Mbps - if send_thread.get_bytes_sent() > 0: - result.log_throughput(ap_prop["ssid"] + "_rx", rssi, att_value, - float(send_thread.get_bytes_sent() * 8) / (measure_period * 1000000)) - - if recv_thread.get_bytes_recv() > 0: - result.log_throughput(ap_prop["ssid"] + "_tx", rssi, att_value, - float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000)) - - result.output_to_file() - pass - - server_sock.close() - - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/TCPStress/__init__.py b/components/test/TestCaseScript/TCPStress/__init__.py deleted file mode 100755 index 049c1b961..000000000 --- a/components/test/TestCaseScript/TCPStress/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["TCPConnUtility", "TCPConnSingleMode", "TCPConnMixedMode"] \ No newline at end of file diff --git a/components/test/TestCaseScript/UDPStress/UDPSendRecv.py b/components/test/TestCaseScript/UDPStress/UDPSendRecv.py deleted file mode 100755 index 3a528c6ba..000000000 --- a/components/test/TestCaseScript/UDPStress/UDPSendRecv.py +++ /dev/null @@ -1,130 +0,0 @@ -from TCAction import TCActionBase -from NativeLog import NativeLog -import time -import random -import string - -TEST_COUNT_ONE_ROUND = 1000 - - -class UDPSendRecv(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def cleanup(self): - # step 0 turn on recv print - checker_stings = ["R SSC1 C +RECVPRINT:1"] - test_action_string = ["SSC SSC1 soc -R -o 1"] - fail_string = "Fail, Fail to turn on recv print" - self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - send_len = self.send_len - test_time = self.test_time * 60 - duplex = self.duplex - conn_num = self.conn_num - send_delay = self.send_delay - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for UDPSendRecv script, error is %s" % e) - raise StandardError("Error configuration") - - ssid = "".join([random.choice(string.lowercase) for m in range(10)]) - password = "".join([random.choice(string.lowercase) for m in range(10)]) - - # step 0 set ap - checker_stings = ["R SSC1 C +SAP:OK"] - test_action_string = ["SSC SSC1 ap -S -s %s -p %s -t 3" % (ssid, password)] - fail_string = "Fail, Fail to set ap" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # step 1 connect to ap and turn off recv print - checker_stings = ["R SSC2 C +JAP:CONNECTED"] - test_action_string = ["SSC SSC2 sta -C -s %s -p %s" % (ssid, password)] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: - return - - checker_stings = ["R SSC2 A :\+STAIP:(\d+\.\d+\.\d+\.\d+)\r"] - test_action_string = ["SSC SSC2 ip -Q -o 1"] - fail_string = "Fail, Fail to connect to server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: - return - - checker_stings = ["P SSC1 C +RECVPRINT:0", "P SSC2 C +RECVPRINT:0"] - test_action_string = ["SSC SSC1 soc -R -o 0", "SSC SSC2 soc -R -o 0"] - fail_string = "Fail, Fail to turn off recv print" - self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, check_time=200) is False: - return - - # step 2 create conn_num udp socket - for i in range(1, conn_num+1): - checker_stings = ["R SSC1 A :\+BIND:(\d+),OK" % i, - "R SSC2 A :\+BIND:(\d+),OK" % i] - test_action_string = ["SSC SSC1 soc -B -t UDP -p " % i, - "SSC SSC2 soc -B -t UDP -p " % i] - fail_string = "Fail, Fail to create socket" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - start_time = time.time() - # step 3, do send/recv - while time.time()-start_time < test_time: - - checker_stings = ["P SSC1 NC ERROR NC CLOSE"] - for i in range(1, conn_num+1): - test_action_string = ["SSC SSC2 soc -S -s -l %d -n %d -j %d " - "-i -p " % - (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i)] - checker_stings.append("P SSC2 RE \"\+SEND:%%%%s,OK\"%%%%() NC ERROR NC CLOSE" % i) - if duplex is True: - test_action_string.append("SSC SSC1 soc -S -s -l %d -n %d -j %d" - " -i -p " % - (i, send_len, TEST_COUNT_ONE_ROUND, send_delay, i)) - checker_stings.append("P SSC1 RE \"\+SEND:%%%%s,OK\"%%%%()" % i) - - fail_string = "Fail, Failed on send command" - if self.load_and_exe_one_step([], test_action_string, fail_string) is False: - break - time.sleep(1) - - fail_string = "Fail, Failed to send/recv data" - if self.load_and_exe_one_step(checker_stings, ["DELAY 0.1"], fail_string, - check_freq=1, check_time=300) is False: - break - pass - - NativeLog.add_prompt_trace("time escape: %s" % (time.time() - start_time)) - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() - - diff --git a/components/test/TestCaseScript/UDPStress/UDPThroughput.py b/components/test/TestCaseScript/UDPStress/UDPThroughput.py deleted file mode 100755 index dac7c2206..000000000 --- a/components/test/TestCaseScript/UDPStress/UDPThroughput.py +++ /dev/null @@ -1,305 +0,0 @@ -import os -import time -import random -import threading -import socket - -from TCAction import TCActionBase -from NativeLog import NativeLog -from NativeLog import ThroughputResult -from Utility import RSSICalibrator -from Utility import MakeFolder - - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "Throughput") - - -AP_PROP_KEY = ("ssid", "password", "apc") - - -class SendThread(threading.Thread): - def __init__(self, sock, send_len, target_addr): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.send_len = send_len - self.target_addr = target_addr - self.exit_event = threading.Event() - pass - - def exit(self): - self.exit_event.set() - - def run(self): - data = "A" * self.send_len - if self.sock is None: - return - while True: - if self.exit_event.isSet() is True: - break - try: - self.sock.sendto(data, self.target_addr) - except StandardError: - break - pass - - -class RecvThread(threading.Thread): - def __init__(self, sock): - threading.Thread.__init__(self) - self.setDaemon(True) - self.sock = sock - self.exit_event = threading.Event() - self.calc_event = threading.Event() - self.bytes_recv = 0 - - def start_calc(self): - self.calc_event.set() - - def stop_calc(self): - self.calc_event.clear() - self.exit_event.set() - - def run(self): - if self.sock is None: - return - while True: - if self.exit_event.isSet() is True: - break - try: - data, addr = self.sock.recvfrom(65535) - except StandardError: - break - if self.calc_event.isSet() is True: - self.bytes_recv += len(data) - - def get_bytes_recv(self): - return self.bytes_recv - pass - - -class UDPThroughput(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.att_test_list = range(60) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # read AP list - self.ap_list = [] - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" - exec cmd_string - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - ap_list = self.ap_list - send_len = self.send_len - att_test_list = self.att_test_list - tx_enable = self.tx_enable - rx_enable = self.rx_enable - measure_period = self.measure_period - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for TCPThroughput script, error is %s" % e) - raise StandardError("Error configuration") - - # find local ip and generate local port - local_ip_list = socket.gethostbyname_ex(socket.gethostname())[2] - for local_ip in local_ip_list: - if local_ip.find("192.168.1.") != -1: - pc_ip = local_ip - break - else: - raise StandardError("Can't find local IP.") - - udp_port = random.randint(40000, 50000) - - # init throughput result data - test_item = "" - if tx_enable is True: - test_item += "Tx" - if rx_enable is True: - test_item += "Rx" - if test_item == "": - raise StandardError("no throughput test item") - - folder_path = MakeFolder.make_folder(LOG_FOLDER) - file_name = os.path.join(folder_path, - "UDPThroughput_%s_%s" % (test_item, time.strftime("%d%H%M%S", time.localtime()))) - - result = ThroughputResult.ThroughputResult(file_name) - - # restart before executing throughput - checker_stings = ["R SSC1 C !!!ready!!!"] - test_action_string = ["SSC SSC1 reboot"] - fail_string = "Fail, Fail to reboot" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - # disable recv print during throughput test - checker_stings = ["R SSC1 C +RECVPRINT"] - test_action_string = ["SSC SSC1 soc -R -o 0"] - fail_string = "Fail, Fail to disable recv print" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - return - - for ap_prop in ap_list: - if ap_prop["password"] == "": - # set a default string for open ap - ap_prop["password"] = "1" - - # switch off all outlet, switch on AP outlet - outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") - outlet_config_dict[ap_prop["apc"]] = "ON" - apc_cmd = "APC " - for outlet in outlet_config_dict: - apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) - checker_stings = ["P PC_COM L OK"] - fail_string = "Fail, Fail to switch apc" - if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: - return - - # wait AP ready - time.sleep(20) - - # create server - udp_sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) - udp_sock.bind((pc_ip, udp_port)) - udp_sock.settimeout(1) - - if tx_enable is True: - result.add_test_item(ap_prop["ssid"] + "_tx") - if rx_enable is True: - result.add_test_item(ap_prop["ssid"] + "_rx") - - # create RSSI Calibrator - calibrator = RSSICalibrator.Calibrator() - - for att_value in att_test_list: - # step 0 set att value - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT %s" % att_value] - fail_string = "Fail, Fail to set att value" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - # step 1 connect to AP - checker_stings = ["R SSC1 C +JAP:CONNECTED"] - test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] - fail_string = "Fail, Fail to JAP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=30) is False: - continue - checker_stings = ["R SSC1 A :STAIP:(\d+\.\d+\.\d+\.\d+)"] - test_action_string = ["SSC SSC1 ip -Q"] - fail_string = "Fail, Fail to get ip" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=30) is False: - continue - target_ip = self.get_parameter("target_ip") - # step 2 get AP RSSI - checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)\r" % ap_prop["ssid"]] - test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] - fail_string = "Fail, Fail to scan" - rssi = scan_count = 0 - for i in range(3): - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - rssi += int(self.test_env.get_variable_by_name("rssi")[1]) - scan_count += 1 - - rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) - - # step 3 close all connections - checker_stings = ["R SSC1 C +CLOSEALL"] - test_action_string = ["SSC SSC1 soc -T"] - fail_string = "Fail, Fail to create server" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - # step 4 create UDP socket - checker_stings = ["R SSC1 A :\+BIND:(\d+),OK"] - test_action_string = ["SSC SSC1 soc -B -t UDP -i %s -p %s" % (target_ip, udp_port)] - fail_string = "Fail, Fail bind" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - # step 5 do throughput test - send_thread = SendThread(udp_sock if rx_enable is True else None, - send_len, (target_ip, udp_port)) - send_thread.start() - - recv_thread = RecvThread(udp_sock if tx_enable is True else None) - recv_thread.start() - - if tx_enable is True: - # do send from target - test_action_string = ["SSC SSC1 soc -S -s -l %s -n 10000000 -i %s -p %s" - % (send_len, pc_ip, udp_port)] - fail_string = "Fail, Fail to send" - if self.load_and_exe_one_step([], test_action_string, fail_string) is False: - pass - - # start throughput calculate - recv_thread.start_calc() - - # sleep for measure period - time.sleep(measure_period) - - # stop throughput calculate - recv_thread.stop_calc() - send_thread.exit() - - send_thread.join() - recv_thread.join() - - # output throughput result - # in Mbps - if rx_enable is True: - # get received data len from PC - self.load_and_exe_one_step(["R SSC1 A :RECVLEN:(\d+)"], - ["SSC SSC1 soc -Q -s -o 1"], - "Fail, Fail to get recv data len") - try: - rx_data_len = int(self.get_parameter("recv_len")) - except StandardError: - rx_data_len = 0 - - result.log_throughput(ap_prop["ssid"] + "_rx", rssi, att_value, - float(rx_data_len * 8) / (measure_period * 1000000)) - - if recv_thread.get_bytes_recv() > 0: - result.log_throughput(ap_prop["ssid"] + "_tx", rssi, att_value, - float(recv_thread.get_bytes_recv() * 8) / (measure_period * 1000000)) - - result.output_to_file() - pass - - udp_sock.close() - - self.result_cntx.set_result("Succeed") - - # finally, execute done - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/UDPStress/__init__.py b/components/test/TestCaseScript/UDPStress/__init__.py deleted file mode 100755 index d29ee405a..000000000 --- a/components/test/TestCaseScript/UDPStress/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["UDPSendRecv", ] diff --git a/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py b/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py deleted file mode 100755 index 70a1169f2..000000000 --- a/components/test/TestCaseScript/WiFiStress/SoftAPNSTA.py +++ /dev/null @@ -1,178 +0,0 @@ -import random -import time -import string -import threading - -from TCAction import TCActionBase -from NativeLog import NativeLog -from TCAction import PerformanceTCBase -from Utility import Encoding - - -class STAJAPThread(threading.Thread): - def __init__(self, test_action, port_name, ssid, password, delay1, delay2, change_mac): - threading.Thread.__init__(self) - self.setDaemon(True) - self.test_action = test_action - self.port_name = port_name - self.ssid = ssid - self.password = password - self.delay1 = delay1 - self.delay2 = delay2 - self.change_mac = change_mac - self.exit_flag = threading.Event() - pass - - def exit(self): - self.exit_flag.set() - pass - - def run(self): - total_test_count = 0 - fail_count = 0 - while self.exit_flag.isSet() is False: - # change mac - if self.change_mac is True: - mac = Encoding.generate_random_mac() - self.test_action.serial_write_line(self.port_name, "mac -S -o 1 -m %s" % mac) - self.test_action.check_response(self.port_name, "+MAC:STA,OK") - - time.sleep(1) - - # JAP - total_test_count += 1 - # flush current port data - self.test_action.flush_data(self.port_name) - self.test_action.serial_write_line(self.port_name, "sta -C -s %s -p %s" % (self.ssid, self.password)) - if self.test_action.check_response(self.port_name, "+JAP:CONNECTED", 45) is False: - fail_count += 1 - NativeLog.add_trace_critical("[%s] Failed to JAP, Failed/Total : %d/%d" - % (self.port_name, fail_count, total_test_count)) - continue - time.sleep(random.randint(self.delay1[0], self.delay1[1])) - - # QAP - self.test_action.serial_write_line(self.port_name, "sta -D") - if self.test_action.check_response(self.port_name, "+QAP:OK", 5) is False: - NativeLog.add_trace_critical("[%s] Failed to QAP" % self.port_name) - time.sleep(random.randint(self.delay2[0], self.delay2[1])) - - # make sure quit AP - self.test_action.serial_write_line(self.port_name, "sta -D") - pass - pass - - -class SoftAPNSTA(PerformanceTCBase.PerformanceTCBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - PerformanceTCBase.PerformanceTCBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.sta_num = 0 - self.max_sta = 4 - self.test_time = 60 - self.delay1 = [5, 30] - self.delay2 = [5, 10] - self.change_mac = True - self.channel = 11 - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - pass - - def process(self): - # configurable parameters - try: - sta_num = self.sta_num - max_sta = self.max_sta - test_time = self.test_time - # delay between JAP succeed and QAP - delay1 = self.delay1 - # delay between QAP and JAP - delay2 = self.delay2 - # if change mac each time before JAP - change_mac = self.change_mac - # channel - channel = self.channel - except StandardError, e: - raise StandardError("miss mandatory parameters") - - # step 0, set op mode and enable dhcp - self.serial_write_line("SSC1", "op -S -o 2") - if self.check_response("SSC1", "+MODE:OK", 2) is False: - NativeLog.add_trace_critical("Failed to set ap mode") - return - self.serial_write_line("SSC1", "dhcp -E -o 2") - if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False: - NativeLog.add_trace_critical("Failed to enable ap dhcp") - return - self.serial_write_line("SSC1", "dhcp -L -s 192.168.4.2 -e 192.168.4.100 -t 1") - if self.check_response("SSC1", "+DHCP:LEASE,OK", 2) is False: - NativeLog.add_trace_critical("Failed to enable ap dhcp") - return - self.serial_write_line("SSC1", "dhcp -S -o 2") - if self.check_response("SSC1", "+DHCP:AP,OK", 2) is False: - NativeLog.add_trace_critical("Failed to enable ap dhcp") - return - - for i in range(sta_num): - self.serial_write_line("SSC%d" % (i+2), "op -S -o 1") - if self.check_response("SSC%d" % (i+2), "+MODE:OK", 2) is False: - NativeLog.add_trace_critical("Failed to set sta mode") - return - self.serial_write_line("SSC%d" % (i+2), "dhcp -S -o 1") - if self.check_response("SSC%d" % (i+2), "+DHCP:STA,OK", 2) is False: - NativeLog.add_trace_critical("Failed to enable sta dhcp") - - # step 1, set ap config and load - ap_ssid = "".join([random.choice(string.uppercase) for m in range(15)]) - ap_password = "".join([random.choice(string.lowercase) for m in range(15)]) - - self.serial_write_line("SSC1", "ap -S -s %s -p %s -t 3 -m %s -n %s" - % (ap_ssid, ap_password, max_sta, channel)) - if self.check_response("SSC1", "+SAP:OK", 2) is False: - NativeLog.add_trace_critical("Failed to set AP") - return - - # step 2, start thread to let STA JAP - sta_thread_list = [] - for i in range(sta_num): - sta_thread_list.append(STAJAPThread(self, "SSC%d" % (i+2), - ap_ssid, ap_password, delay1, delay2, change_mac)) - for sta_thread in sta_thread_list: - sta_thread.start() - - # step 3, sleep for test time - for i in range(test_time): - self.flush_data("SSC1") - time.sleep(60) - - # step 4, close all thread, will disconnect when exit thread - for sta_thread in sta_thread_list: - sta_thread.exit() - for sta_thread in sta_thread_list: - sta_thread.join() - # wait and make sure disconnect done - time.sleep(1) - - # step 5, join AP and check - sta_num_temp = max_sta if sta_num > max_sta else sta_num - - for i in range(sta_num_temp): - self.serial_write_line("SSC%d" % (i+2), "sta -C -s %s -p %s" % (ap_ssid, ap_password)) - if self.check_response("SSC%d" % (i+2), "+JAP:CONNECTED", 45) is False: - self.set_result("Fail") - break - pass - else: - self.set_result("Succeed") - - -def main(): - pass - -if __name__ == '__main__': - main() - diff --git a/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py b/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py deleted file mode 100755 index 24702bfc8..000000000 --- a/components/test/TestCaseScript/WiFiStress/WifiConnUtility.py +++ /dev/null @@ -1,240 +0,0 @@ -from NativeLog import NativeLog -import time -import random - - -ERROR_AP_PROP = {"ssid": "123456789012345678901234567890", - "ssid_len": 30, - "pwd": "12345678901234567890", - "pwd_len": 20, - "channel": 10, - "enc": 3, - "apc": 9, # invalid apc count - } - - -class WifiConnUtilError(StandardError): - pass - - -class WifiConnUtility(object): - - def __init__(self, tc_action): - self.tc_action = tc_action - self.target_type = tc_action.target_type - pass - - def set_mode(self, mode): - ret = True - fail_string = "set mode fail" - cmd = [] - checker_stings = [] - for i in range(2): - if self.target_type[0] == "SSC": - cmd.append("SSCC SSC%d op -S -o %d" % (i+1, mode[i])) - checker_stings.append("SSCP SSC%d C +MODE:OK" % (i+1)) - pass - else: - cmd.append("ATC AT%d CWMODE %d" % (i+1, mode[i])) - checker_stings.append("ATP AT%d L OK" % (i+1)) - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Failed to set mode") - ret = False - return ret - pass - - def _apc_switch(self, outlet_list, action_list): - checker_stings = ["R PC_COM C OK"] - switch_cmd = "APC " - fail_string = "Error when switching APC" - ret = True - - for [_outlet, _action] in zip(action_list, outlet_list): - switch_cmd += " %s %d" % (_action, _outlet) - - if self.tc_action.load_and_exe_one_step(checker_stings, [switch_cmd], - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("Error when switching APC") - ret = False - return ret - pass - - def _set_target_ap(self, ap_prop): - ret = True - fail_string = "set target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - if self.target_type[1] == "SSC": - if ap_prop["pwd"] == "": - cmd = ["SSCC SSC2 ap -S -s %s -t %d" % (ap_prop["ssid"], - ap_prop["enc"]) - ] - else: - cmd = ["SSCC SSC2 ap -S -s %s -p %s -t %d" % (ap_prop["ssid"], - ap_prop["pwd"], - ap_prop["enc"]) - ] - checker_stings = ["SSCP SSC2 C +SAP:OK"] - pass - else: - cmd = ["ATC AT2 CWSAP \"%s\" \"%s\" %d %d" % (ap_prop["ssid"], - ap_prop["pwd"], - ap_prop["channel"], - ap_prop["enc"]) - ] - checker_stings = ["ATR AT2 L OK"] - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical("set target ap fail") - ret = False - return ret - pass - - def setup_ap(self, ap_type, ap_prop): - if ap_type == "target": - ret = self._set_target_ap(ap_prop) - pass - else: - ret = self._apc_switch(["ON"], [ap_prop["apc"]]) - # delay for 5 seconds, wait AP ready - time.sleep(5) - pass - return ret - - def do_scan(self, ap_prop): - fail_string = "Scan fail" - ret = True - # do not check if the set AP can be scanned - if self.target_type[1] == "SSC": - cmd = ["SSCC SSC1 sta -S"] - checker_stings = ["SSCR SSC1 C +SCANDONE"] - pass - else: - cmd = ["ATS AT1 AT+CWLAP"] - checker_stings = ["ATR AT1 L OK"] - pass - if self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=100) is False: - NativeLog.add_trace_critical("Scan fail") - ret = False - return ret - pass - - def _switch_off_target_ap(self, delay): - time.sleep(delay) - self._set_target_ap(ERROR_AP_PROP) - pass - - def _switch_on_target_ap(self, ap_prop, delay): - time.sleep(delay) - self._set_target_ap(ap_prop) - pass - - def _switch_off_ap(self, ap_type, ap_prop, delay_range): - delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 - if ap_type == "target": - self._switch_off_target_ap(delay) - else: - delay -= 1.5 - time.sleep(delay if delay > 0 else 0) - self._apc_switch(["OFF"], [ap_prop["apc"]]) - pass - - def _switch_on_ap(self, ap_type, ap_prop, delay_range): - delay = random.randint(delay_range[0]*10, delay_range[1]*10)/10 - if ap_type == "target": - self._switch_on_target_ap(ap_prop, delay) - else: - delay -= 1.5 - time.sleep(delay if delay > 0 else 0) - self._apc_switch(["ON"], [ap_prop["apc"]]) - pass - - def _join_ap(self, ap_prop, test_method): - fail_string = "join target ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - if self.target_type[1] == "SSC": - cmd = ["SSCC SSC1 ap -C -s %s -p %s" % (ap_prop["ssid"], - ap_prop["pwd"],) - ] - checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"] - pass - else: - cmd = ["ATC AT1 CWJAP \"%s\" \"%s\"" % (ap_prop["ssid"], - ap_prop["pwd"]) - ] - checker_stings = ["ATR AT1 NC ERROR NC FAIL L OK"] - pass - if test_method == "Normal": - ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_freq=0.1, check_time=350) - if ret is not False: - ret *= 0.1 - else: - ret = self.tc_action.load_and_exe_one_step([], cmd, fail_string) - return ret - pass - - def _check_join_ap_result(self, ap_prop): - ret = False - fail_string = "join ap fail, %s, %s" % (ap_prop["ssid"], ap_prop["pwd"]) - - if self.target_type[1] == "SSC": - checker_stings = ["SSCR SSC1 C +JAP:CONNECTED"] - ret = self.tc_action.load_and_exe_one_step(checker_stings, ["DELAY 0"], - fail_string, check_freq=1, check_time=120) - pass - else: - cmd = ["ATS AT1 AT+CWJAP?"] - checker_stings = ["ATR AT1 NC busy NC No%20AP C +CWJAP"] - for i in range(3): - ret = self.tc_action.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_freq=1, check_time=2) - if ret is not False: - break - time.sleep(15) - - return ret - pass - - def join_ap(self, join_test_method, ap_type, ap_prop, delay): - - if join_test_method == "WRONG_PROP": - _prop = ERROR_AP_PROP - else: - _prop = ap_prop - - ret = self._join_ap(_prop, join_test_method) - - if join_test_method == "OFF_ON": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - self._switch_on_ap(ap_type, ap_prop, delay[1]) - ret = self._check_join_ap_result(_prop) - pass - elif join_test_method == "OFF": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - time.sleep(25) - pass - - return ret - pass - - def do_reconnect(self, reconnect_test_method, ap_type, ap_prop, delay): - ret = True - if reconnect_test_method == "OFF_ON": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - self._switch_on_ap(ap_type, ap_prop, delay[1]) - ret = self._check_join_ap_result(ap_prop) - pass - elif reconnect_test_method == "OFF": - self._switch_off_ap(ap_type, ap_prop, delay[0]) - pass - return ret - pass - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiJAP.py b/components/test/TestCaseScript/WiFiStress/WifiJAP.py deleted file mode 100755 index 20dd28041..000000000 --- a/components/test/TestCaseScript/WiFiStress/WifiJAP.py +++ /dev/null @@ -1,218 +0,0 @@ -import os -import random -import time - -import WifiConnUtility -from NativeLog import NativeLog -from TCAction import TCActionBase -from Utility import Encoding -from Utility import MakeFolder - -STEPS = {"SCAN1": 0x01, "JAP": 0x02, "SCAN2": 0x04, "RECONNECT": 0x08} - -AP_PROP = ("ssid", "ssid_len", "pwd", - "pwd_len", "channel", "enc", "apc") - -JAP_TEST_METHOD = ("Normal", "OFF_ON", "OFF", "WRONG_PROP") - -RECONNECT_TEST_METHOD = ("OFF_ON", "OFF") - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") - - -SSID_LEN_RANGE = (1, 32) # in bytes -ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP -PWD_RANGE = {0: [0, 0], - 1: [5, 5], - 2: [8, 63], - 3: [8, 63], - 4: [8, 63], - } - - -class WifiJAP(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # default value for optional configurable params - self.pwd_len = [8, 64] - self.step_config = [0x03, 0x01, 0x02, 0x0B, 0x0F] - self.join_test_method = ["Normal"] - self.join_delay = [[1.5, 5], [1.5, 5]] - self.reconnect_test_method = ["OFF_ON"] - self.reconnect_delay = [[1.5, 5], [1.5, 6]] - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # read AP list - self.ap_list = [] - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROP, " + cmd_set[i][1][j] + ")))" - exec cmd_string - - folder_path = MakeFolder.make_folder(LOG_FOLDER) - file_name = "JAP_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) - self._performance_log_file = os.path.join(folder_path, file_name) - - # test statistics - self._succeed_count = self._fail_count = self._time_cost_count = 0 - self._total_time = self._longest_time = 0 - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - # get target type "SSC" or "AT" - self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] - self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT") - self._utility = WifiConnUtility.WifiConnUtility(self) - pass - - def _generate_random_ap_prop(self): - ap_prop = dict.fromkeys(AP_PROP) - # generate target ap_value - ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) - ap_prop["channel"] = random.choice(range(1, 14)) - ap_prop["enc"] = random.choice(ENC_TYPE) - ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) - # generate string - if self.target_type[0] == self.target_type[1] == "AT": - ap_prop["ssid"] = Encoding.generate_random_utf8_str(ap_prop["ssid_len"]) - ap_prop["pwd"] = Encoding.generate_random_utf8_str(ap_prop["pwd_len"]) - # NativeLog.add_trace_info("ssid hex is : %x" % ap_prop["ssid"]) - # NativeLog.add_trace_info("pwd hex is : %x" % ap_prop["pwd"]) - else: - ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) - ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) - - return ap_prop - - def _logging_performance(self, ssid, join_method="Normal", time_cost=0): - # log performance to performance log file - with open(self._performance_log_file, "ab+") as f: - # log time and ssid - f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % - (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) - if join_method == "Normal" or join_method == "OFF_ON": - if time_cost is not False: - self._succeed_count += 1 - if join_method == "Normal": - f.write("[Succeed][%f]\r\n" % time_cost) - self._longest_time = (time_cost > self._longest_time and - [time_cost] or [self._longest_time])[0] - self._time_cost_count += 1 - self._total_time += time_cost - else: - f.write("[Succeed][%s]\r\n" % join_method) - else: - self._fail_count += 1 - f.write("[Fail][%s]\r\n" % join_method) - pass - - def _logging_fail_step(self, ssid, step): - with open(self._performance_log_file, "ab+") as f: - f.write("\r\n[%s]:\r\n[AP name] %s\r\n" % - (time.strftime("%m-%d %H:%M:%S", time.localtime()), ssid)) - f.write("[Fail][%s]\r\n" % step) - pass - - def _generate_performance_report(self): - with open(self._performance_log_file, "ab+") as f: - f.write("[Test report] Succeed: %d\r\n" % self._succeed_count) - f.write("[Test report] Failed: %d\r\n" % self._fail_count) - if self._succeed_count > 0 or self._fail_count > 0: - f.write("[Test report] Pass Rate: %f\r\n" % - (self._succeed_count/(self._fail_count+self._succeed_count))) - if self._time_cost_count > 0: - f.write("[Test report] Average time: %f\r\n" % (self._total_time/self._time_cost_count)) - f.write("[Test report] Longest time: %f\r\n" % self._longest_time) - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # mandatory configurable params - try: - target_ap_num = self.target_ap_num - test_count = self.test_count - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) - raise StandardError("Error configuration") - - # prepare ap list - _ap_list = [["target", None]] * target_ap_num - for _ap_prop in self.ap_list: - _ap_list.append(["AP", _ap_prop]) - - # set to correct mode first - self._utility.set_mode([1, 2]) - - for i in xrange(test_count): - _ap = random.choice(_ap_list) - # arrange ap - _ap_type = _ap[0] - _ap_prop = _ap[1] - if _ap_type == "target": - _ap_prop = self._generate_random_ap_prop() - pass - - # step 1 : mandatory step, set up AP - if self._utility.setup_ap(_ap_type, _ap_prop) is False: - self._logging_fail_step(_ap_prop["ssid"], "Set AP") - NativeLog.add_prompt_trace("[Step1] setup AP Fail") - continue - step_config = random.choice(self.step_config) - NativeLog.add_prompt_trace("[Step1] setup AP succeed") - - # step 2 : optional step, do scan before connect - if step_config & STEPS["SCAN1"] != 0: # check option - if self._utility.do_scan(_ap_prop) is False: - self._logging_fail_step(_ap_prop["ssid"], "Scan before JAP") - NativeLog.add_prompt_trace("[Step2] Scan Done") - - # step 3 : mandatory step, join AP - if step_config & STEPS["JAP"] != 0: # check option - _join_test_method = random.choice(self.join_test_method) - time_cost = self._utility.join_ap(_join_test_method, _ap_type, _ap_prop, self.join_delay) - # log performance to performance log file - self._logging_performance(_ap_prop["ssid"], _join_test_method, time_cost) - if time_cost is False: - # do scan once to check if AP exist - self._utility.do_scan(_ap_prop) - continue - NativeLog.add_prompt_trace("[Step3] Join AP done") - - # step 4 : optional step, scan after join AP - if step_config & STEPS["SCAN2"] != 0: # check option - if self._utility.do_scan(_ap_prop) is False: - self._logging_fail_step(_ap_prop["ssid"], "Scan after JAP") - NativeLog.add_prompt_trace("[Step4] Scan done") - - # step 5 : optional step, reconnect test - if step_config & STEPS["RECONNECT"] != 0: # check option - _reconnect_test_method = random.choice(self.reconnect_test_method) - if self._utility.do_reconnect(_reconnect_test_method, - _ap_type, _ap_prop, self.reconnect_delay) is False: - self._logging_fail_step(_ap_prop["ssid"], "Reconnect") - - NativeLog.add_prompt_trace("[Step5] Reconnect done") - # continue to next loop - NativeLog.add_prompt_trace("[WifiJAP] Test count %d done" % i) - - # generate report and cleanup - self._generate_performance_report() - - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py b/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py deleted file mode 100755 index 2c2eadc79..000000000 --- a/components/test/TestCaseScript/WiFiStress/WifiJAPAtt.py +++ /dev/null @@ -1,173 +0,0 @@ -import os -import time -from TCAction import TCActionBase -from NativeLog import NativeLog -from Utility import RSSICalibrator -from Utility import MakeFolder - -MAX_RSSI = 0 -MIN_RSSI = -110 -MAX_ATT = 60 -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "JAP") -AP_PROP_KEY = ("ssid", "password", "apc") - - -class Performance(object): - def __init__(self): - self.succeed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0) - self.failed_rssi = dict.fromkeys(range(MIN_RSSI, MAX_RSSI), 0) - self.failed_att = dict.fromkeys(range(MAX_ATT), 0) - pass - - def log_performance(self, result, att, rssi): - if result == "Succeed": - self.succeed_rssi[rssi] += 1 - else: - if rssi == 0: - self.failed_att[att] += 1 - else: - self.failed_rssi[rssi] += 1 - pass - - def __str__(self): - data = "Succeed:\r\n" - for rssi in self.succeed_rssi: - if self.succeed_rssi[rssi] > 0: - data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.succeed_rssi[rssi]) - - data += "Failed during scan:\r\n" - for att in self.failed_att: - if self.failed_att[att] > 0: - data += "\tATT%3d: %2d times\r\n" % (att, self.failed_att[att]) - - data += "Failed during JAP:\r\n" - for rssi in self.failed_rssi: - if self.failed_rssi[rssi] > 0: - data += "\tRSSI%4d: %2d times\r\n" % (rssi, self.failed_rssi[rssi]) - - return data - pass - - -class WifiJAPAtt(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - self.att_test_list = range(60) - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - # read AP list - self.ap_list = [] - for i in range(1, len(cmd_set)): - for j in range(len(cmd_set[i][1])): - if cmd_set[i][1][j] != "": - cmd_string = "self.ap_list.append(dict(zip(AP_PROP_KEY, " + cmd_set[i][1][j] + ")))" - exec cmd_string - - self.performance = dict([(ap_prop["ssid"], Performance()) for ap_prop in self.ap_list]) - # create log file - folder_path = MakeFolder.make_folder(LOG_FOLDER) - self.performance_log = os.path.join(folder_path, - "JAP_Att_%s.log" % time.strftime("%d%H%M%S", time.localtime())) - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def log_performance(self, att, rssi, ssid, result): - NativeLog.add_prompt_trace("[%s][ssid %s] [att %s] [rssi %s]" % (result, ssid, att, rssi)) - data = "" - self.performance[ssid].log_performance(result, att, rssi) - for _ssid in self.performance: - data += "[ssid] %s\r\n%s\r\n" % (_ssid, self.performance[_ssid]) - with open(self.performance_log, "wb+") as f: - f.write(data) - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - try: - # configurable params - ap_list = self.ap_list - att_test_list = self.att_test_list - test_count = self.test_count - # configurable params - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for JAPAtt script, error is %s" % e) - raise StandardError("Error configuration") - - for x in xrange(test_count): - for ap_prop in ap_list: - if ap_prop["password"] == "": - # set a default string for open ap - ap_prop["password"] = "1" - - # switch off all outlet, switch on AP outlet - outlet_config_dict = dict.fromkeys(range(1, 9), "OFF") - outlet_config_dict[ap_prop["apc"]] = "ON" - apc_cmd = "APC " - for outlet in outlet_config_dict: - apc_cmd += " %s %s" % (outlet_config_dict[outlet], outlet) - checker_stings = ["P PC_COM L OK"] - fail_string = "Fail, Fail to switch apc" - if self.load_and_exe_one_step(checker_stings, [apc_cmd], fail_string) is False: - return - - # wait AP ready - time.sleep(20) - - # create RSSI Calibrator - calibrator = RSSICalibrator.Calibrator() - - for att_value in att_test_list: - # step 0 set att value - checker_stings = ["R PC_COM L OK"] - test_action_string = ["ATT %s" % att_value] - fail_string = "Fail, Fail to set att value" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string) is False: - continue - - # step 1 get AP RSSI - checker_stings = ["R SSC1 A :\+SCAN:%s,[:\d\w]+,\d+,\d+,([-\d]+)" % ap_prop["ssid"]] - test_action_string = ["SSC SSC1 sta -S -s %s" % ap_prop["ssid"]] - fail_string = "Fail, Fail to scan" - rssi = scan_count = 0 - for i in range(3): - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=5) is False: - self.log_performance(att_value, 0, ap_prop["ssid"], "Failed to measure RSSI") - continue - rssi += int(self.test_env.get_variable_by_name("rssi")[1]) - scan_count += 1 - - rssi = calibrator.calibrate_rssi(float(rssi)/scan_count if scan_count > 0 else 0, att_value) - - # step 2 connect to AP - checker_stings = ["R SSC1 C +JAP:CONNECTED"] - test_action_string = ["SSC SSC1 sta -C -s %s -p %s" % (ap_prop["ssid"], ap_prop["password"])] - fail_string = "Fail, Fail to JAP" - if self.load_and_exe_one_step(checker_stings, test_action_string, fail_string, - check_freq=1, check_time=45) is False: - self.log_performance(att_value, rssi, ap_prop["ssid"], "Failed to JAP") - continue - - self.log_performance(att_value, rssi, ap_prop["ssid"], "Succeed") - - # finally, execute done - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py b/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py deleted file mode 100755 index 3a95a920f..000000000 --- a/components/test/TestCaseScript/WiFiStress/WifiSmartConfig.py +++ /dev/null @@ -1,273 +0,0 @@ -import random -import os -import time -import copy - -from TCAction import TCActionBase -from NativeLog import NativeLog -from Utility import Encoding -from Utility import MakeFolder - -AP_PROP = ("ssid", "ssid_len", "pwd", - "pwd_len", "channel", "enc", "apc") - -SMART_TYPE = ("esp-touch", "airkiss") - -TEST_METHOD = ("ssid_broadcast", "ssid_hidden") - -HT = ("ht20", "ht40") - -TEST_STAT = ("total count", "fail count", "total time", "longest time") - -_TEST_STAT_INIT_DICT = {"total count": 0, - "fail count": 0, - "total time": 0, - "longest time": 0, - } - -LOG_FOLDER = os.path.join("AT_LOG", "Performance", "SmartConfig") - - -SSID_LEN_RANGE = (1, 32) # in bytes -ENC_TYPE = (0, 2, 3, 4) # do not support WEP for 8266 soft AP -PWD_RANGE = {0: [0, 0], - 1: [5, 5], - 2: [8, 32], - 3: [8, 32], - 4: [8, 32], - } - - -class WifiSmartConfig(TCActionBase.CommonTCActionBase): - - def __init__(self, name, test_env, cmd_set, timeout=30, log_path=TCActionBase.LOG_PATH): - TCActionBase.CommonTCActionBase.__init__(self, name, test_env, cmd_set=cmd_set, - timeout=timeout, log_path=log_path) - # default value for optional configurable params - self.test_method = ["ssid_hidden", "ssid_broadcast"] - self.bssid = "ff:ff:ff:ff:ff:ff" - self.ht_ap = dict(zip(HT, [("", ""), - ("", "")])) - self.ap_channel = {"ht20": 1, "ht40": 1} - self.delay_time = 3 # default 3s, wait for scan done - # load param from excel - for i in range(1, len(cmd_set)): - if cmd_set[i][0] != "dummy" and cmd_set[i][0] != "": - cmd_string = "self." + cmd_set[i][0] - exec cmd_string - - folder_path = MakeFolder.make_folder(LOG_FOLDER) - file_name = "SmartConfig_log_%s.log" % (time.strftime("%m%d%H%M%S", time.localtime())) - self._performance_log_file = os.path.join(folder_path, file_name) - - # type - self.target_type = ["SSC" if test_env.get_port_by_name("AT1") is None else "AT"] - self.target_type.append("SSC" if test_env.get_port_by_name("AT2") is None else "AT") - - # test statistics - # better ways to create? - _test_stat = dict.fromkeys(TEST_STAT, 0) - _test_method = dict.fromkeys(TEST_METHOD) - _test_ht = dict.fromkeys(HT) - self.test_stat = dict.fromkeys(SMART_TYPE) - for i in SMART_TYPE: - self.test_stat[i] = copy.deepcopy(_test_ht) - for j in HT: - self.test_stat[i][j] = copy.deepcopy(_test_method) - for k in TEST_METHOD: - self.test_stat[i][j][k] = copy.deepcopy(_test_stat) - - self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name) - pass - - def _generate_random_ap_prop(self, ht_type): - ap_prop = dict.fromkeys(AP_PROP) - # generate target ap_value - ap_prop["ssid_len"] = random.randint(SSID_LEN_RANGE[0], SSID_LEN_RANGE[1]) - ap_prop["channel"] = self.ap_channel[ht_type] - ap_prop["enc"] = random.choice(ENC_TYPE) - ap_prop["pwd_len"] = random.randint(PWD_RANGE[ap_prop["enc"]][0], PWD_RANGE[ap_prop["enc"]][1]) - ap_prop["ssid"] = Encoding.generate_random_printable_str(ap_prop["ssid_len"]) - ap_prop["pwd"] = Encoding.generate_random_printable_str(ap_prop["pwd_len"]) - - return ap_prop - - def _logging_performance(self, time_cost, ssid, password, smart_type, test_method, ht_type): - # update test statistics - stat = self.test_stat[smart_type][ht_type][test_method] - stat["total count"] += 1 - # log performance to performance log file - with open(self._performance_log_file, "ab+") as f: - # log time and ssid - if time_cost is not False: - time_tmp = float(time_cost)/10 - f.write("\r\n[%s]:\r\n[Succeed] [%.2f]\r\n" % - (time.strftime("%m-%d %H:%M:%S", time.localtime()), time_tmp)) - stat["total time"] += time_tmp - stat["longest time"] = time_tmp if time_tmp > stat["longest time"] else stat["longest time"] - else: - f.write("\r\n[%s]:\r\n[Fail]\r\n" % - time.strftime("%m-%d %H:%M:%S", time.localtime())) - stat["fail count"] += 1 - - f.write("[%s] [%s] [%s]\r\n" % - (smart_type, test_method, ht_type)) - f.write("[ssid] %s \r\n[password] %s\r\n" % - (ssid, password)) - pass - - def _generate_performance_report(self): - with open(self._performance_log_file, "ab+") as f: - for i in SMART_TYPE: - for j in HT: - for k in TEST_METHOD: - stat = self.test_stat[i][j][k] - f.write("\r\n[Test report] [%s] [%s] [%s]\r\n" % (i, j, k)) - if stat["total count"] > 0: - f.write("[Total]: %d\r\n" % stat["total count"]) - f.write("[Failed]: %d\r\n" % stat["fail count"]) - f.write("[Fail ratio]: %.2f%%\r\n" % - (float(stat["fail count"])/stat["total count"] * 100)) - f.write("[Longest time cost]: %.2f\r\n" % stat["longest time"]) - if (stat["total count"] - stat["fail count"]) > 0: - f.write("[Average time cost]: %.2f\r\n" % - (stat["total time"]/(stat["total count"]-stat["fail count"]))) - - @staticmethod - def cmd_exception_catcher(e): - raise e - pass - - def execute(self): - TCActionBase.TCActionBase.execute(self) - self.result_cntx.start() - - # mandatory configurable params - try: - test_count = self.test_count - delay_time = self.delay_time - except StandardError, e: - NativeLog.add_trace_critical("Error configuration for WifiJAP script, error is %s" % e) - raise StandardError("Error configuration") - - # step 0 : set AT1 mode - fail_string = "Fail to restore init condition" - if self.target_type[0] == "AT": - cmd = ["ATS AT1 AT+CWMODE=1"] - checker_stings = ["R AT1 L OK"] - else: - cmd = ["SSC SSC1 op -S -o 1"] - checker_stings = ["R SSC1 C +MODE:OK"] - if self.target_type[1] == "AT": - cmd.append("ATS AT2 AT+CWMODE=2") - checker_stings.append("R AT2 L OK") - else: - cmd.append("SSC SSC2 op -S -o 2") - checker_stings.append("R SSC2 C +MODE:OK") - - if self.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=150) is False: - NativeLog.add_trace_critical(fail_string) - return - - for i in xrange(test_count): - _method = random.choice(self.test_method) - _ht = random.choice(self.ht) - _ap_prop = self._generate_random_ap_prop(_ht) - _smart_type = random.choice(self.smart_type) - _ht_ap = self.ht_ap[_ht] - is_hidden = 0 if _method == "ssid_broadcast" else 1 - # get ip and - - # step 1 : restore init condition - fail_string = "Fail to restore init condition" - if self.target_type[0] == "AT": - cmd = ["ATS AT1 AT+CWSTOPSMART", "WIFI CONN %s %s " % (_ht_ap[0], _ht_ap[1])] - checker_stings = ["P AT1 L OK", "P PC_COM L OK"] - else: - cmd = ["SSC SSC1 smart -E", "WIFI CONN %s %s " % (_ht_ap[0], _ht_ap[1])] - checker_stings = ["P SSC1 C +SC:OK", "P PC_COM L OK"] - - if self.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=200) is False: - NativeLog.add_trace_critical(fail_string) - continue - NativeLog.add_prompt_trace("Step1 Done") - - # step 2 : test method is ssid_broadcast, then set AP on target 2 - if _method == "ssid_broadcast": - fail_string = "Fail to set AP" - if self.target_type[1] == "AT": - cmd = ["ATS AT2 AT+CWSAP=\"%s\",\"%s\",%d,%d" % (_ap_prop["ssid"], _ap_prop["pwd"], - _ap_prop["channel"], _ap_prop["enc"])] - checker_stings = ["R AT2 L OK"] - else: - cmd = ["SSC SSC2 ap -S -s %s -p %s -n %d -t %d" % (_ap_prop["ssid"], _ap_prop["pwd"], - _ap_prop["channel"], _ap_prop["enc"])] - checker_stings = ["R SSC2 C +SAP:OK"] - - if self.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical(fail_string) - continue - NativeLog.add_prompt_trace("Step2 Done") - - # step 3 : start SMART - fail_string = "Fail to start smart config" - if self.target_type[0] == "AT": - cmd = ["ATS AT1 AT+CWSTARTSMART"] - checker_stings = ["R AT1 L OK"] - else: - cmd = ["SSC SSC1 smart -S -a 0"] - checker_stings = ["R SSC1 C +SC:OK"] - - if self.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=50) is False: - NativeLog.add_trace_critical(fail_string) - continue - # sleep for delay_time seconds to wait scan done or simulate delay config situation - time.sleep(delay_time) - NativeLog.add_prompt_trace("Step3 Done") - - # step 4 : do smart config - fail_string = "Fail in smart config" - cmd = ["SMART %s %s %s %s %d" - % (_smart_type, _ap_prop["ssid"], _ap_prop["pwd"], self.bssid, is_hidden)] - if self.target_type[0] == "AT": - checker_stings = ["P AT1 C Smart%20get%20wifi%20info", - "P LOG1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])] - else: - checker_stings = ["P SSC1 C %s C %s" % (_ap_prop["ssid"], _ap_prop["pwd"])] - - try: - time_cost = self.load_and_exe_one_step(checker_stings, cmd, - fail_string, check_time=400, - cmd_exception_catcher=self.cmd_exception_catcher) - except StandardError: - NativeLog.add_prompt_trace("Exception occurred during executing cmd") - continue - pass - self._logging_performance(time_cost, _ap_prop["ssid"], _ap_prop["pwd"], - _smart_type, _method, _ht) - if time_cost is False: - NativeLog.add_prompt_trace(fail_string) - continue - - # continue to next loop - NativeLog.add_prompt_trace("[WifiSmartConfig] Test count %d done" % i) - - # generate report and cleanup - self._generate_performance_report() - - self.result_cntx.set_result("Succeed") - - def result_check(self, port_name, data): - TCActionBase.CommonTCActionBase.result_check(self, port_name, data) - self.result_cntx.append_data(port_name, data) - - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/components/test/TestCaseScript/WiFiStress/__init__.py b/components/test/TestCaseScript/WiFiStress/__init__.py deleted file mode 100755 index 7960a3ce8..000000000 --- a/components/test/TestCaseScript/WiFiStress/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["WifiJAP", ] \ No newline at end of file diff --git a/components/test/TestCaseScript/__init__.py b/components/test/TestCaseScript/__init__.py deleted file mode 100755 index 0cc319da7..000000000 --- a/components/test/TestCaseScript/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -__all__ = ['ATFunc', "ATStress", "IOT", "MeshStress", "StableTest", "TCPIPStress" - "TCPStress", "UDPStress", "WiFiStress"] From e9199a0320c1930274757d3f6759f7851dc8b81c Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 12 Oct 2016 11:44:54 +0800 Subject: [PATCH 35/36] should set TEST_CASE_FILE_PATH before CONFIG_FILE use it --- .gitlab-ci.yml | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 42dc78e9e..8b7b25dd9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -223,8 +223,8 @@ IT_Function_SYS_01: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_SYS_01.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_SYS_01.yml IT_Function_WIFI_01: <<: *test_template @@ -233,8 +233,8 @@ IT_Function_WIFI_01: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_01.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_01.yml IT_Function_WIFI_02: <<: *test_template @@ -243,8 +243,8 @@ IT_Function_WIFI_02: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_02.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_02.yml IT_Function_TCPIP_01: <<: *test_template @@ -253,8 +253,8 @@ IT_Function_TCPIP_01: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_01.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_01.yml IT_Function_TCPIP_02: <<: *test_template @@ -263,8 +263,8 @@ IT_Function_TCPIP_02: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_02.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_02.yml IT_Function_TCPIP_03: <<: *test_template @@ -273,8 +273,8 @@ IT_Function_TCPIP_03: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_03.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_03.yml IT_Function_TCPIP_04: <<: *test_template @@ -283,8 +283,8 @@ IT_Function_TCPIP_04: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_04.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_04.yml IT_Function_TCPIP_05: <<: *test_template @@ -293,8 +293,8 @@ IT_Function_TCPIP_05: - SSC_T1_1 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_05.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_05.yml IT_Function_TCPIP_06: <<: *test_template_night @@ -302,8 +302,8 @@ IT_Function_TCPIP_06: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_06.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_06.yml IT_Function_WIFI_03: <<: *test_template @@ -311,8 +311,8 @@ IT_Function_WIFI_03: - ESP32_IDF - SSC_T3_PhyMode before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_03.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_03.yml IT_Function_WIFI_04: <<: *test_template @@ -320,8 +320,8 @@ IT_Function_WIFI_04: - ESP32_IDF - SSC_T1_APC before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_04.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_04.yml IT_Function_WIFI_05: <<: *test_template @@ -329,8 +329,8 @@ IT_Function_WIFI_05: - ESP32_IDF - SSC_T1_WEP before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_05.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_05.yml IT_Function_WIFI_06: <<: *test_template @@ -338,8 +338,8 @@ IT_Function_WIFI_06: - ESP32_IDF - SSC_T2_PhyMode before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_06.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_06.yml IT_Function_TCPIP_07: <<: *test_template @@ -349,8 +349,8 @@ IT_Function_TCPIP_07: - SSC_T1_2 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_07.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_07.yml IT_Function_TCPIP_08: <<: *test_template @@ -358,8 +358,8 @@ IT_Function_TCPIP_08: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_08.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_08.yml IT_Function_TCPIP_09: <<: *test_template @@ -367,8 +367,8 @@ IT_Function_TCPIP_09: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_09.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_09.yml IT_Function_TCPIP_10: <<: *test_template @@ -378,8 +378,8 @@ IT_Function_TCPIP_10: - SSC_T1_2 - SSC_T2_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_10.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_10.yml IT_Function_TCPIP_11: <<: *test_template @@ -387,8 +387,8 @@ IT_Function_TCPIP_11: - ESP32_IDF - SSC_T1_1 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_11.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_11.yml IT_Function_TCPIP_12: <<: *test_template @@ -397,5 +397,5 @@ IT_Function_TCPIP_12: - SSC_T1_1 - SSC_T1_2 before_script: - - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_12.yml - TEST_CASE_FILE_PATH=$TEST_CASE_FILE_PATH/integration_test + - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_12.yml From 5e0a9bfcf20a7da71fbb2c13f4133d29da15363a Mon Sep 17 00:00:00 2001 From: Yinling Date: Wed, 12 Oct 2016 11:48:24 +0800 Subject: [PATCH 36/36] remove debug command "ls" in test report job --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8b7b25dd9..dd4049358 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,7 +123,6 @@ test_report: - $REPORT_PATH expire_in: 6 mos script: - - ls $LOG_PATH # clone test bench - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git - cd auto_test_script