Skip to content

Commit 48e2ccd

Browse files
author
Antti Kauppila
committed
equeue_stub updated and code fixed accordingly
1 parent a54c271 commit 48e2ccd

File tree

3 files changed

+33
-27
lines changed

3 files changed

+33
-27
lines changed

UNITTESTS/features/lorawan/lorawanstack/Test_LoRaWANStack.cpp

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,9 @@ TEST_F(Test_LoRaWANStack, connect)
201201
my_LoRaPHY phy;
202202
object->bind_phy_and_radio_driver(radio, phy);
203203

204-
// struct equeue_event ptr;
205-
// equeue_stub.void_ptr = &ptr;
206-
// equeue_stub.call_cb_immediately = true;
204+
struct equeue_event ptr;
205+
equeue_stub.void_ptr = &ptr;
206+
equeue_stub.call_cb_immediately = true;
207207
loramac_mcps_confirm_t conf;
208208
LoRaMac_stub::mcps_conf_ptr = &conf;
209209
radio._ev->tx_done();
@@ -410,16 +410,15 @@ TEST_F(Test_LoRaWANStack, handle_rx)
410410
my_LoRaPHY phy;
411411
object->bind_phy_and_radio_driver(radio, phy);
412412

413-
// struct equeue_event ptr;
414-
// equeue_stub.void_ptr = &ptr;
415-
// equeue_stub.call_cb_immediately = true;
413+
struct equeue_event ptr;
414+
equeue_stub.void_ptr = &ptr;
415+
equeue_stub.call_cb_immediately = true;
416416
loramac_mcps_confirm_t conf;
417417
LoRaMac_stub::mcps_conf_ptr = &conf;
418418
radio._ev->tx_done();
419419

420420
loramac_mcps_indication_t ind;
421421
LoRaMac_stub::mcps_ind_ptr = &ind;
422-
ind.status = LORAMAC_EVENT_INFO_STATUS_OK;
423422

424423
loramac_mlme_confirm_t mlme;
425424
LoRaMac_stub::mlme_conf_ptr = &mlme;
@@ -443,7 +442,6 @@ TEST_F(Test_LoRaWANStack, handle_rx)
443442
ind.buffer = ind_buf;
444443
ind.buffer_size = 150;
445444
ind.type = MCPS_UNCONFIRMED;
446-
ind.is_data_recvd = true;
447445
radio._ev->rx_done(NULL, 0, 0, 0);
448446

449447
//data == NULL || LENGTH == 0 (2 cases)
@@ -572,9 +570,9 @@ TEST_F(Test_LoRaWANStack, acquire_tx_metadata)
572570
my_LoRaPHY phy;
573571
object->bind_phy_and_radio_driver(radio, phy);
574572

575-
// struct equeue_event ptr;
576-
// equeue_stub.void_ptr = &ptr;
577-
// equeue_stub.call_cb_immediately = true;
573+
struct equeue_event ptr;
574+
equeue_stub.void_ptr = &ptr;
575+
equeue_stub.call_cb_immediately = true;
578576
loramac_mcps_confirm_t conf;
579577
LoRaMac_stub::mcps_conf_ptr = &conf;
580578
radio._ev->tx_done();
@@ -599,9 +597,9 @@ TEST_F(Test_LoRaWANStack, acquire_rx_metadata)
599597
my_LoRaPHY phy;
600598
object->bind_phy_and_radio_driver(radio, phy);
601599

602-
// struct equeue_event ptr;
603-
// equeue_stub.void_ptr = &ptr;
604-
// equeue_stub.call_cb_immediately = true;
600+
struct equeue_event ptr;
601+
equeue_stub.void_ptr = &ptr;
602+
equeue_stub.call_cb_immediately = true;
605603
loramac_mcps_confirm_t conf;
606604
LoRaMac_stub::mcps_conf_ptr = &conf;
607605
radio._ev->tx_done();
@@ -687,9 +685,9 @@ TEST_F(Test_LoRaWANStack, interrupt_functions)
687685
my_LoRaPHY phy;
688686
object->bind_phy_and_radio_driver(radio, phy);
689687

690-
// struct equeue_event ptr;
691-
// equeue_stub.void_ptr = &ptr;
692-
// equeue_stub.call_cb_immediately = true;
688+
struct equeue_event ptr;
689+
equeue_stub.void_ptr = &ptr;
690+
equeue_stub.call_cb_immediately = true;
693691
loramac_mcps_confirm_t conf;
694692
LoRaMac_stub::mcps_conf_ptr = &conf;
695693
radio._ev->tx_done();
@@ -750,9 +748,9 @@ TEST_F(Test_LoRaWANStack, process_transmission)
750748

751749
object->connect();
752750

753-
// struct equeue_event ptr;
754-
// equeue_stub.void_ptr = &ptr;
755-
// equeue_stub.call_cb_immediately = true;
751+
struct equeue_event ptr;
752+
equeue_stub.void_ptr = &ptr;
753+
equeue_stub.call_cb_immediately = true;
756754
loramac_mcps_confirm_t conf;
757755
LoRaMac_stub::mcps_conf_ptr = &conf;
758756
radio._ev->tx_done();
@@ -807,9 +805,9 @@ TEST_F(Test_LoRaWANStack, process_reception)
807805
my_LoRaPHY phy;
808806
object->bind_phy_and_radio_driver(radio, phy);
809807

810-
// struct equeue_event ptr;
811-
// equeue_stub.void_ptr = &ptr;
812-
// equeue_stub.call_cb_immediately = true;
808+
struct equeue_event ptr;
809+
equeue_stub.void_ptr = &ptr;
810+
equeue_stub.call_cb_immediately = true;
813811
loramac_mcps_confirm_t conf;
814812
LoRaMac_stub::mcps_conf_ptr = &conf;
815813
radio._ev->tx_done();

UNITTESTS/features/netsocket/NetworkStack/test_NetworkStack.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#include "events/EventQueue.h"
2222
#include <string>
2323

24+
#include "equeue_stub.h"
25+
2426
// Control nsapi stub return value. See stubs/nsapi_dns_stub.cpp
2527
extern nsapi_error_t nsapi_stub_return_value;
2628

@@ -186,6 +188,9 @@ TEST_F(TestNetworkStack, gethostbyname_async_delay)
186188
SocketAddress a;
187189
stack->ip_address = std::string("127.0.0.1");
188190
SetUpQueue();
191+
struct equeue_event ptr;
192+
equeue_stub.void_ptr = &ptr;
193+
equeue_stub.call_cb_immediately = true;
189194
EXPECT_EQ(stack->gethostbyname_async("localhost", mbed::callback(my_callback), NSAPI_UNSPEC), NSAPI_ERROR_DNS_FAILURE);
190195
EXPECT_EQ(callin_callback(1, mbed::callback(noarg_callback)), NSAPI_ERROR_OK);
191196
EXPECT_TRUE(noarg_callback_is_called);
@@ -197,6 +202,9 @@ TEST_F(TestNetworkStack, gethostbyname_async)
197202
SocketAddress a;
198203
stack->ip_address = std::string("127.0.0.1");
199204
SetUpQueue();
205+
struct equeue_event ptr;
206+
equeue_stub.void_ptr = &ptr;
207+
equeue_stub.call_cb_immediately = true;
200208
EXPECT_EQ(stack->gethostbyname_async("localhost", mbed::callback(my_callback), NSAPI_UNSPEC), NSAPI_ERROR_DNS_FAILURE);
201209
EXPECT_EQ(callin_callback(0, mbed::callback(noarg_callback)), NSAPI_ERROR_OK);
202210
EXPECT_TRUE(noarg_callback_is_called);

UNITTESTS/stubs/equeue_stub.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ int equeue_call_every(equeue_t *queue, int ms, void (*cb)(void *), void *data)
5959

6060
void *equeue_alloc(equeue_t *queue, size_t size)
6161
{
62-
return malloc(size);
62+
return equeue_stub.void_ptr;
6363
}
6464

6565
void equeue_dealloc(equeue_t *queue, void *event)
@@ -84,9 +84,9 @@ void equeue_event_dtor(void *event, void (*dtor)(void *))
8484

8585
int equeue_post(equeue_t *queue, void (*cb)(void *), void *event)
8686
{
87-
if (cb) {
88-
cb(event);
89-
free(event);
87+
struct equeue_event *e = (struct equeue_event*)event - 1;
88+
if (cb && equeue_stub.call_cb_immediately) {
89+
cb(e + 1);
9090
return 1;
9191
}
9292
return 0;

0 commit comments

Comments
 (0)