| /* |
| * Copyright (c) 2016, The OpenThread Authors. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * 3. Neither the name of the copyright holder nor the |
| * names of its contributors may be used to endorse or promote products |
| * derived from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #ifndef TEST_PLATFORM_H |
| #define TEST_PLATFORM_H |
| |
| #if _WIN32 |
| #define _CRT_SECURE_NO_WARNINGS |
| #include <windows.h> |
| #include <time.h> |
| #endif |
| |
| #include <string.h> |
| |
| #include <openthread/config.h> |
| #include <openthread/openthread.h> |
| #include <openthread/platform/alarm.h> |
| #include <openthread/platform/logging.h> |
| #include <openthread/platform/misc.h> |
| #include <openthread/platform/radio.h> |
| #include <openthread/platform/random.h> |
| |
| #include "common/code_utils.hpp" |
| |
| #include "test_util.h" |
| |
| // |
| // Alarm Platform |
| // |
| |
| typedef void (*testPlatAlarmStop)(otInstance *); |
| typedef void (*testPlatAlarmStartAt)(otInstance *, uint32_t, uint32_t); |
| typedef uint32_t (*testPlatAlarmGetNow)(void); |
| |
| extern bool g_testPlatAlarmSet; |
| extern uint32_t g_testPlatAlarmNext; |
| extern testPlatAlarmStop g_testPlatAlarmStop; |
| extern testPlatAlarmStartAt g_testPlatAlarmStartAt; |
| extern testPlatAlarmGetNow g_testPlatAlarmGetNow; |
| |
| // |
| // Radio Platform |
| // |
| |
| typedef void (*testPlatRadioSetPanId)(otInstance *, uint16_t); |
| typedef void (*testPlatRadioSetExtendedAddress)(otInstance *, uint8_t *); |
| typedef void (*testPlatRadioSetShortAddress)(otInstance *, uint16_t); |
| |
| typedef bool(*testPlatRadioIsEnabled)(otInstance *); |
| typedef otError(*testPlatRadioEnable)(otInstance *); |
| typedef otError(*testPlatRadioDisable)(otInstance *); |
| typedef otError(*testPlatRadioReceive)(otInstance *, uint8_t); |
| typedef otError(*testPlatRadioTransmit)(otInstance *); |
| typedef otRadioFrame *(*testPlatRadioGetTransmitBuffer)(otInstance *); |
| |
| extern otRadioCaps g_testPlatRadioCaps; |
| extern testPlatRadioSetPanId g_testPlatRadioSetPanId; |
| extern testPlatRadioSetExtendedAddress g_testPlatRadioSetExtendedAddress; |
| extern testPlatRadioSetShortAddress g_testPlatRadioSetShortAddress; |
| extern testPlatRadioIsEnabled g_testPlatRadioIsEnabled; |
| extern testPlatRadioEnable g_testPlatRadioEnable; |
| extern testPlatRadioDisable g_testPlatRadioDisable; |
| extern testPlatRadioReceive g_testPlatRadioReceive; |
| extern testPlatRadioTransmit g_testPlatRadioTransmit; |
| extern testPlatRadioGetTransmitBuffer g_testPlatRadioGetTransmitBuffer; |
| |
| otInstance *testInitInstance(void); |
| void testFreeInstance(otInstance *aInstance); |
| |
| // Resets platform functions to defaults |
| void testPlatResetToDefaults(void); |
| |
| #endif // TEST_PLATFORM_H |