Skip to content

Commit 55b1bb9

Browse files
committed
[nrf fromtree] modem: cmux: Add testcases for power saving mode
Add testcases to verify that CMUX powersaving feature works. Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no> (cherry picked from commit 0a06a0f)
1 parent b84def7 commit 55b1bb9

3 files changed

Lines changed: 410 additions & 1 deletion

File tree

tests/subsys/modem/mock/modem_backend_mock.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,18 @@ static bool modem_backend_mock_update(struct modem_backend_mock *mock, const uin
2323
return false;
2424
}
2525

26+
if (mock->transaction->optional &&
27+
size > (mock->transaction->get_size - mock->transaction_match_cnt)) {
28+
modem_backend_mock_prime(mock, NULL);
29+
return false;
30+
}
31+
2632
for (size_t i = 0; i < size; i++) {
33+
if (mock->transaction->optional &&
34+
buf[i] != mock->transaction->get[mock->transaction_match_cnt]) {
35+
modem_backend_mock_prime(mock, NULL);
36+
return false;
37+
}
2738
__ASSERT(buf[i] == mock->transaction->get[mock->transaction_match_cnt],
2839
"Unexpected transmit data");
2940

@@ -52,6 +63,8 @@ static int modem_backend_mock_transmit(void *data, const uint8_t *buf, size_t si
5263
return ret;
5364
}
5465

66+
k_work_submit(&mock->transmit_idle_work);
67+
5568
if (modem_backend_mock_update(mock, buf, size)) {
5669
/* Skip ringbuffer if transaction consumes bytes */
5770
ret = size;
@@ -63,7 +76,6 @@ static int modem_backend_mock_transmit(void *data, const uint8_t *buf, size_t si
6376
ret = ring_buf_put(&mock->tx_rb, buf, size);
6477
}
6578

66-
k_work_submit(&mock->transmit_idle_work);
6779
return ret;
6880
}
6981

tests/subsys/modem/mock/modem_backend_mock.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ struct modem_backend_mock_transaction {
2222

2323
/* Next transaction in chain */
2424
const struct modem_backend_mock_transaction *next;
25+
26+
/* Allow breaking the chain by not matching the pattern */
27+
const bool optional;
2528
};
2629

2730
struct modem_backend_mock {

0 commit comments

Comments
 (0)