Commit 13220aa9 authored by Jordan Yates's avatar Jordan Yates Committed by Benjamin Cabé
Browse files

tests: rtio: rtio_api: test `cq_count` overflow



Add a test for the behaviour of `rtio_submit` with
`CONFIG_RTIO_SUBMIT_SEM=n` when the `cq_count` variable overflows.

Signed-off-by: default avatarJordan Yates <jordan@embeint.com>
parent 83e2ec3c
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -616,6 +616,25 @@ ZTEST(rtio_api, test_rtio_transaction)
	}
}

ZTEST(rtio_api, test_rtio_cqe_count_overflow)
{
	/* atomic_t is signed, but RTIO uses cq_count as `uintptr_t` */
	const atomic_t max_val = (1ULL << (ATOMIC_BITS)) - 1;

	TC_PRINT("initializing iodev test devices\n");

	for (int i = 0; i < 2; i++) {
		rtio_iodev_test_init(iodev_test_transaction[i]);
	}

	TC_PRINT("rtio transaction CQE overflow\n");
	atomic_set(&r_transaction.cq_count, max_val - 3);
	for (int i = 0; i < TEST_REPEATS; i++) {
		test_rtio_transaction_(&r_transaction);
	}
}


#define THROUGHPUT_ITERS 100000
RTIO_DEFINE(r_throughput, SQE_POOL_SIZE, CQE_POOL_SIZE);