]> granicus.if.org Git - esp-idf/commitdiff
test: add test case to receive ds2ds packet
authorHe Yin Ling <heyinling@espressif.com>
Wed, 28 Nov 2018 13:53:06 +0000 (21:53 +0800)
committerbot <bot@espressif.com>
Fri, 7 Dec 2018 02:04:55 +0000 (02:04 +0000)
.gitlab-ci.yml
components/esp32/test/test_wifi.c

index 22466d71296eb9fcca1ca9027195a94617247621..75e21659877a433b0fba6f944edc5638e27fd6e1 100644 (file)
@@ -1542,6 +1542,38 @@ UT_012_03:
     - UT_T1_1
     - 8Mpsram
 
+UT_017_01:
+  <<: *unit_test_template
+  tags:
+    - ESP32_IDF
+    - UT_T2_1
+
+UT_017_02:
+  <<: *unit_test_template
+  tags:
+    - ESP32_IDF
+    - UT_T2_1
+
+UT_017_03:
+  <<: *unit_test_template
+  tags:
+    - ESP32_IDF
+    - UT_T2_1
+
+UT_017_04:
+  <<: *unit_test_template
+  tags:
+    - ESP32_IDF
+    - UT_T2_1
+    - psram
+
+UT_017_05:
+  <<: *unit_test_template
+  tags:
+    - ESP32_IDF
+    - UT_T2_1
+    - 8Mpsram
+
 UT_601_01:
   <<: *unit_test_template
   tags:
index ec35ce5ad663ecbd52e66e5787bc4675f5e9789d..833d5bbcaf0a4cb3616a3cb4c5fb039c7664abd0 100644 (file)
@@ -10,6 +10,7 @@
 #include "esp_log.h"
 #include "nvs_flash.h"
 #include "test_utils.h"
+#include "freertos/task.h"
 
 static const char* TAG = "test_wifi";
 
@@ -121,3 +122,68 @@ TEST_CASE("wifi stop and deinit","[wifi]")
 
     TEST_IGNORE_MESSAGE("this test case is ignored due to the critical memory leak of tcpip_adapter and event_loop.");
 }
+
+static void start_wifi_as_softap(void)
+{
+    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
+    cfg.nvs_enable = false;
+
+    wifi_config_t w_config = {
+        .ap.ssid = "default_ssid",
+        .ap.password = "default_password",
+        .ap.ssid_len = 0,
+        .ap.channel = 1,
+        .ap.authmode = WIFI_AUTH_WPA2_PSK,
+        .ap.ssid_hidden = false,
+        .ap.max_connection = 4,
+        .ap.beacon_interval = 100,
+    };
+
+    TEST_ESP_OK(esp_wifi_init(&cfg));
+    TEST_ESP_OK(esp_wifi_set_mode(WIFI_MODE_AP));
+    TEST_ESP_OK(esp_wifi_set_config(WIFI_IF_AP, &w_config));
+    TEST_ESP_OK(esp_wifi_start());
+
+}
+
+static void stop_wifi(void)
+{
+    TEST_ESP_OK(esp_wifi_stop());
+    TEST_ESP_OK(esp_wifi_deinit());
+}
+
+static void receive_ds2ds_packet(void)
+{
+    start_wifi_as_softap();
+    unity_wait_for_signal("sender ready");
+    unity_send_signal("receiver ready");
+
+    // wait for sender to send packets
+    vTaskDelay(1000/portTICK_PERIOD_MS);
+    stop_wifi();
+
+}
+
+static const char ds2ds_pdu[] = {
+    0x48, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xE8, 0x65, 0xD4, 0xCB, 0x74, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x60, 0x94, 0xE8, 0x65, 0xD4, 0xCB, 0x74, 0x1C, 0x26, 0xB9,
+    0x0D, 0x02, 0x7D, 0x13, 0x00, 0x00, 0x01, 0xE8, 0x65, 0xD4, 0xCB, 0x74,
+    0x1C, 0x00, 0x00, 0x26, 0xB9, 0x00, 0x00, 0x00, 0x00
+};
+
+static void send_ds2ds_packet(void)
+{
+    start_wifi_as_softap();
+    unity_send_signal("sender ready");
+    unity_wait_for_signal("receiver ready");
+
+    // send packet 20 times to make sure receiver will get this packet
+    for (uint16_t i = 0; i < 20; i++) {
+        esp_wifi_80211_tx(ESP_IF_WIFI_AP, ds2ds_pdu, sizeof(ds2ds_pdu), true);
+        vTaskDelay(50 / portTICK_PERIOD_MS);
+    }
+    stop_wifi();
+}
+
+TEST_CASE_MULTIPLE_DEVICES("receive ds2ds packet without exception", "[wifi][test_env=UT_T2_1]", receive_ds2ds_packet, send_ds2ds_packet);