/* Copyright (c) 2022 Intel Corporation * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_TESTS_INTEL_ADSP_TESTS_H #define ZEPHYR_TESTS_INTEL_ADSP_TESTS_H #include #include /* Helper to escape from infinite polling loops with a test failure * instead of a hang. Spins with a relaxation loop so that it works * in interrupt context and doesn't stress shared resources like SRAM */ #define AWAIT(expr) do { \ int i; \ for (i = 0; !(expr) && i < 10000; i++) { \ for (volatile int j = 0; j < 1000; j++) { \ } \ } \ zassert_true(i < 10000, "timeout waiting for %s", #expr); \ } while (0) /* Cached copy of the ipm_cavs_host driver's handler. We save it at * the start of the test because we want to do unit testing on the * underlying adsp_ipc device, then recover it later. */ extern intel_adsp_ipc_handler_t ipm_handler; #endif /* ZEPHYR_TESTS_INTEL_ADSP_TESTS_H */