mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-03 20:07:51 +00:00
UT for led device
This commit is contained in:
@@ -23,6 +23,8 @@
|
||||
* MACRO DEFINITIONS
|
||||
*****************************************************************************/
|
||||
#define LED_OFF 0xFF
|
||||
#define LED_RED 0xAA
|
||||
#define LED_GREEN 0x55
|
||||
|
||||
/* ClkX = fOSC/(2^(RegMisc[6:4]-1); 0x50-125kHz, 0x40-250KHz, 0x30-500KHz,
|
||||
* 0x20-1MHz, 0x10-2MHz; Fading - Linear */
|
||||
@@ -84,5 +86,8 @@ ReturnStatus hci_led_system_boot(const HciLedCfg *driver);
|
||||
ReturnStatus led_init(const HciLedCfg *driver);
|
||||
ePostCode led_probe(const HciLedCfg *driver, POSTData *postData);
|
||||
void led_configure(HciLedCfg *driver);
|
||||
|
||||
ReturnStatus hci_led_backhaul_failure(const HciLedCfg *driver);
|
||||
ReturnStatus hci_led_radio_failure(const HciLedCfg *driver);
|
||||
ReturnStatus hci_led_system_failure(const HciLedCfg *driver);
|
||||
ReturnStatus hci_led_system_running(const HciLedCfg *driver);
|
||||
#endif /* INA226_H_ */
|
||||
|
||||
@@ -189,15 +189,18 @@ static const hciLedData ledData[HCI_LED_TOTAL_NOS] =
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_turnon_green(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn On Left side Green LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT],
|
||||
SX1509_REG_AB, 0x55, 0x55);
|
||||
SX1509_REG_AB, LED_GREEN, LED_GREEN);
|
||||
if (status == RETURN_OK) {
|
||||
/* Turn On Right side Green LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT],
|
||||
SX1509_REG_AB, 0x55, 0x55);
|
||||
SX1509_REG_AB, LED_GREEN, 0x55);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@@ -214,15 +217,18 @@ ReturnStatus hci_led_turnon_green(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_turnon_red(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn On Left side Red LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT],
|
||||
SX1509_REG_AB, 0xAA, 0xAA);
|
||||
SX1509_REG_AB, LED_RED, LED_RED);
|
||||
if (status == RETURN_OK) {
|
||||
/* Turn On Right side Red LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT],
|
||||
SX1509_REG_AB, 0xAA, 0xAA);
|
||||
SX1509_REG_AB, LED_RED, LED_RED);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@@ -239,8 +245,11 @@ ReturnStatus hci_led_turnon_red(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_turnoff_all(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn Off Left side LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT],
|
||||
SX1509_REG_AB, LED_OFF, LED_OFF);
|
||||
@@ -264,9 +273,12 @@ ReturnStatus hci_led_turnoff_all(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
static ReturnStatus hci_led_configure_sx1509_onofftime(const I2C_Dev *ioexpDev)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
uint8_t index;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!ioexpDev) {
|
||||
return status;
|
||||
}
|
||||
for (index = 0; index < 14; index++) {
|
||||
/* Configure RegTOn time of LEDs */
|
||||
status = ioexp_led_set_on_time(ioexpDev, index, REG_T_ON_VALUE);
|
||||
@@ -282,7 +294,54 @@ static ReturnStatus hci_led_configure_sx1509_onofftime(const I2C_Dev *ioexpDev)
|
||||
}
|
||||
return status;
|
||||
}
|
||||
/*****************************************************************************
|
||||
** FUNCTION NAME : hci_led_configure_onofftime_left
|
||||
**
|
||||
** DESCRIPTION : Configure On and Off time of left LEDs on the LED
|
||||
*board.
|
||||
**
|
||||
** ARGUMENTS : None
|
||||
**
|
||||
** RETURN TYPE : Success or Failure
|
||||
**
|
||||
*****************************************************************************/
|
||||
static ReturnStatus hci_led_configure_onofftime_left(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Configure LED driver parameters(RegTOn, RegOff) for Left side LEDs */
|
||||
status = hci_led_configure_sx1509_onofftime(
|
||||
&driver->sx1509_dev[HCI_LED_DRIVER_LEFT]);
|
||||
|
||||
return status;
|
||||
}
|
||||
/*****************************************************************************
|
||||
** FUNCTION NAME : hci_led_configure_onofftime_right
|
||||
**
|
||||
** DESCRIPTION : Configure On and Off time of right LEDs on the LED
|
||||
*board.
|
||||
**
|
||||
** ARGUMENTS : None
|
||||
**
|
||||
** RETURN TYPE : Success or Failure
|
||||
**
|
||||
*****************************************************************************/
|
||||
static ReturnStatus hci_led_configure_onofftime_right(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Configure LED driver parameters(RegTOn, RegOff) for Left side LEDs */
|
||||
status = hci_led_configure_sx1509_onofftime(
|
||||
&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT]);
|
||||
|
||||
return status;
|
||||
}
|
||||
/*****************************************************************************
|
||||
** FUNCTION NAME : hci_led_configure_onofftime
|
||||
**
|
||||
@@ -295,16 +354,17 @@ static ReturnStatus hci_led_configure_sx1509_onofftime(const I2C_Dev *ioexpDev)
|
||||
*****************************************************************************/
|
||||
static ReturnStatus hci_led_configure_onofftime(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Configure LED driver parameters(RegTOn, RegOff) for Left side LEDs */
|
||||
status = hci_led_configure_sx1509_onofftime(
|
||||
&driver->sx1509_dev[HCI_LED_DRIVER_LEFT]);
|
||||
status = hci_led_configure_onofftime_left(driver);
|
||||
if (status == RETURN_OK) {
|
||||
/* Configure LED driver parameters(RegTOn, RegOff) for Right side LEDs
|
||||
*/
|
||||
hci_led_configure_sx1509_onofftime(
|
||||
&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT]);
|
||||
status = hci_led_configure_onofftime_right(driver);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@@ -322,10 +382,13 @@ static ReturnStatus hci_led_configure_onofftime(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_system_boot(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
uint8_t index = 0;
|
||||
uint8_t regValue = 0;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn off all LEDs */
|
||||
status = hci_led_turnoff_all(driver);
|
||||
if (status != RETURN_OK) {
|
||||
@@ -364,8 +427,11 @@ ReturnStatus hci_led_system_boot(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_system_running(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn off all LEDs */
|
||||
status = hci_led_turnoff_all(driver);
|
||||
if (status != RETURN_OK) {
|
||||
@@ -397,8 +463,11 @@ ReturnStatus hci_led_system_running(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_system_failure(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn off all LEDs */
|
||||
status = hci_led_turnoff_all(driver);
|
||||
if (status != RETURN_OK) {
|
||||
@@ -430,14 +499,21 @@ ReturnStatus hci_led_system_failure(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_radio_failure(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn off all LEDs */
|
||||
status = hci_led_turnoff_all(driver);
|
||||
/* Enable blink for the left LEDs */
|
||||
if (status == RETURN_OK) {
|
||||
status = hci_led_configure_onofftime_left(driver);
|
||||
}
|
||||
if (status == RETURN_OK) {
|
||||
/* Turn On Left side Red LEDs */
|
||||
status =
|
||||
ioexp_led_set_data(HCI_LED_DRIVER_LEFT, SX1509_REG_AB, 0xAA, 0xAA);
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT],
|
||||
SX1509_REG_AB, LED_RED, LED_RED);
|
||||
}
|
||||
|
||||
return status;
|
||||
@@ -456,14 +532,21 @@ ReturnStatus hci_led_radio_failure(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus hci_led_backhaul_failure(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Turn off all LEDs */
|
||||
status = hci_led_turnoff_all(driver);
|
||||
/* Enable blink for all Right LEDs */
|
||||
if (status == RETURN_OK) {
|
||||
status = hci_led_configure_onofftime_right(driver);
|
||||
}
|
||||
if (status == RETURN_OK) {
|
||||
/* Turn On Right side Red LEDs */
|
||||
status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT],
|
||||
SX1509_REG_AB, 0xAA, 0xAA);
|
||||
SX1509_REG_AB, LED_RED, LED_RED);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@@ -481,15 +564,18 @@ ReturnStatus hci_led_backhaul_failure(const HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ReturnStatus led_init(const HciLedCfg *driver)
|
||||
{
|
||||
ReturnStatus status = RETURN_OK;
|
||||
uint8_t index;
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
|
||||
if (!driver) {
|
||||
return status;
|
||||
}
|
||||
/* Steps required to use the LED driver
|
||||
- Disable input buffer (RegInputDisable)
|
||||
- Disable pull-up (RegPullUp)
|
||||
- Enable open drain (RegOpenDrain)
|
||||
- Set direction to output (RegDir) by default RegData is set high => LED
|
||||
OFF
|
||||
- Set direction to output (RegDir) \96 by default RegData is set high =>
|
||||
LED OFF
|
||||
- Enable oscillator (RegClock)
|
||||
- Configure LED driver clock and mode if relevant (RegMisc)
|
||||
- Enable LED driver operation (RegLEDDriverEnable)
|
||||
@@ -569,6 +655,9 @@ ReturnStatus led_init(const HciLedCfg *driver)
|
||||
void led_configure(HciLedCfg *driver)
|
||||
{
|
||||
/* Initialize IO pins */
|
||||
if (!driver) {
|
||||
return;
|
||||
}
|
||||
OcGpio_configure(&driver->pin_ec_gpio,
|
||||
OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH);
|
||||
}
|
||||
@@ -585,9 +674,12 @@ void led_configure(HciLedCfg *driver)
|
||||
*****************************************************************************/
|
||||
ePostCode led_probe(const HciLedCfg *driver, POSTData *postData)
|
||||
{
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
ReturnStatus status = POST_DEV_MISSING;
|
||||
uint8_t regValue = 0x00;
|
||||
|
||||
if (!(driver && postData)) {
|
||||
return status;
|
||||
}
|
||||
/* Read Test Register 1 of LED driver SX1509 of Left LED Module(RegTest1) */
|
||||
status = ioexp_led_read_testregister_1(
|
||||
&driver->sx1509_dev[HCI_LED_DRIVER_LEFT], ®Value);
|
||||
|
||||
@@ -196,6 +196,10 @@ $(PATHB)Test_ocmp_debugocgpio$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCMP_DEBUG
|
||||
TEST_OCMP_DATXXR5A_SRC=$(OCWARE_ROOT)/src/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.c $(OCWARE_ROOT)/src/drivers/PinGroup.c $(OCWARE_ROOT)/src/devices/i2cbus.c fake/fake_I2C.c fake/fake_ThreadedISR.c fake/fake_dat.c fake/fake_PCA9557.c $(OCWARE_ROOT)/src/helpers/memory.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/drivers/GpioPCA9557.c $(OCWARE_ROOT)/src/devices/pca9557.c $(OCWARE_ROOT)/platform/oc-sdr/cfg/OC_CONNECT_FE.c
|
||||
$(PATHB)Test_ocmp_dat-xxr5a$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCMP_DATXXR5A_SRC)
|
||||
|
||||
|
||||
TEST_LED_SRC=$(OCWARE_ROOT)/src/devices/led.c $(OCWARE_ROOT)/src/devices/sx1509.c $(OCWARE_ROOT)/src/devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c fake/fake_SX1509_register.c fake/fake_led.c stub/stub_GateMutex.c $(OCWARE_ROOT)/platform/oc-sdr/cfg/OC_CONNECT_LED.c
|
||||
$(PATHB)Test_led$(TARGET_EXTENSION): $(STD_FILES) $(TEST_LED_SRC)
|
||||
|
||||
$(PATHB)%$(TARGET_EXTENSION):
|
||||
$(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@
|
||||
$(COV_CMDS)
|
||||
|
||||
38
firmware/ec/test/fake/fake_led.c
Normal file
38
firmware/ec/test/fake/fake_led.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
#include "include/test_led.h"
|
||||
|
||||
const I2C_Dev s_sx1509_left_dev = {
|
||||
.bus = OC_CONNECT1_I2C8,
|
||||
.slave_addr = LED_SX1509_LEFT_ADDRESS,
|
||||
};
|
||||
|
||||
const I2C_Dev s_sx1509_right_dev = {
|
||||
.bus = OC_CONNECT1_I2C8,
|
||||
.slave_addr = LED_SX1509_RIGHT_ADDRESS,
|
||||
};
|
||||
|
||||
OcGpio_Port ec_io = {
|
||||
.fn_table = &FakeGpio_fnTable,
|
||||
.object_data = &(FakeGpio_Obj){},
|
||||
};
|
||||
|
||||
uint8_t SX1509_right_regs[] = {
|
||||
[SX1509_REG_TEST_2] = 0x00,
|
||||
};
|
||||
|
||||
uint8_t LED_GpioPins[] = {
|
||||
[INPUT_BUFFER_DISABLE] = 0x00,
|
||||
[OC_EC_HCI_LED_RESET] = 0x00,
|
||||
};
|
||||
|
||||
uint32_t LED_GpioConfig[] = {
|
||||
[INPUT_BUFFER_DISABLE] = 0x00,
|
||||
[OC_EC_HCI_LED_RESET] = 0x00,
|
||||
};
|
||||
37
firmware/ec/test/include/test_led.h
Normal file
37
firmware/ec/test/include/test_led.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
#ifndef _TEST_LED_H
|
||||
#define _TEST_LED_H
|
||||
|
||||
#include "fake/fake_GPIO.h"
|
||||
#include "fake/fake_I2C.h"
|
||||
#include "inc/devices/led.h"
|
||||
#include "inc/devices/sx1509.h"
|
||||
#include "include/test_sx1509.h"
|
||||
#include <string.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
#include "unity.h"
|
||||
|
||||
#define LED_CLOCK_VALUE 0x40
|
||||
#define LED_DEFAULT_VALUE 0x00
|
||||
#define LED_DRIVER_ENABLE_B_VALUE 0xFF
|
||||
#define LED_INVALID_PARAM 3
|
||||
#define LED_POST_DATA_NULL 0x00
|
||||
#define LED_POST_DEVID 0xFF
|
||||
#define LED_POST_MANID 0xFF
|
||||
#define LED_REG_INPUT_DISABLE_B_VALUE 0xFF
|
||||
#define LED_REG_OPEN_DRAIN_B_VALUE 0xFF
|
||||
#define LED_REG_PULL_UP_B_VALUE 0x00
|
||||
#define LED_SYSTEM_BOOT_DATAB 0xD5
|
||||
#define INPUT_BUFFER_DISABLE 0x01
|
||||
#define OC_CONNECT1_I2C8 7
|
||||
#define OC_EC_HCI_LED_RESET 89
|
||||
#define SX1509_SOFT_RESET_REG_VALUE_2 0x34
|
||||
#define REG_T_ON_14_15_VALUE 0x00
|
||||
#endif
|
||||
512
firmware/ec/test/suites/Test_led.c
Normal file
512
firmware/ec/test/suites/Test_led.c
Normal file
@@ -0,0 +1,512 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
#include "include/test_led.h"
|
||||
|
||||
extern const I2C_Dev s_sx1509_left_dev;
|
||||
extern const I2C_Dev s_sx1509_right_dev;
|
||||
extern HciLedCfg led_hci_ioexp;
|
||||
extern uint8_t LED_GpioPins[OC_EC_HCI_LED_RESET];
|
||||
extern uint8_t SX1509_regs[SX1509_REG_TEST_2];
|
||||
extern uint8_t SX1509_right_regs[SX1509_REG_TEST_2];
|
||||
extern uint32_t LED_GpioConfig[OC_EC_HCI_LED_RESET];
|
||||
HciLedCfg ledDriver;
|
||||
/* ============================= Boilerplate ================================ */
|
||||
unsigned int s_task_sleep_ticks;
|
||||
|
||||
xdc_Void ti_sysbios_knl_Task_sleep__E(xdc_UInt32 nticks)
|
||||
{
|
||||
s_task_sleep_ticks += nticks;
|
||||
}
|
||||
|
||||
void post_update_POSTData(POSTData *pData, uint8_t I2CBus, uint8_t devAddress,
|
||||
uint16_t manId, uint16_t devId)
|
||||
{
|
||||
pData->i2cBus = I2CBus;
|
||||
pData->devAddr = devAddress;
|
||||
pData->manId = manId;
|
||||
pData->devId = devId;
|
||||
}
|
||||
|
||||
void suite_setUp(void)
|
||||
{
|
||||
fake_I2C_init();
|
||||
fake_I2C_registerDevSimple(OC_CONNECT1_I2C8, LED_SX1509_LEFT_ADDRESS,
|
||||
SX1509_regs, sizeof(SX1509_regs),
|
||||
sizeof(SX1509_regs[0]), sizeof(uint8_t),
|
||||
FAKE_I2C_DEV_BIG_ENDIAN);
|
||||
fake_I2C_registerDevSimple(OC_CONNECT1_I2C8, LED_SX1509_RIGHT_ADDRESS,
|
||||
SX1509_right_regs, sizeof(SX1509_right_regs),
|
||||
sizeof(SX1509_right_regs[0]), sizeof(uint8_t),
|
||||
FAKE_I2C_DEV_BIG_ENDIAN);
|
||||
FakeGpio_registerDevSimple(LED_GpioPins, LED_GpioConfig);
|
||||
}
|
||||
|
||||
void setUp(void)
|
||||
{
|
||||
memset(SX1509_regs, 0, sizeof(SX1509_regs));
|
||||
memset(SX1509_right_regs, 0, sizeof(SX1509_right_regs));
|
||||
}
|
||||
|
||||
void tearDown(void)
|
||||
{
|
||||
}
|
||||
|
||||
void suite_tearDown(void)
|
||||
{
|
||||
fake_I2C_deinit(); /* This will automatically unregister devices */
|
||||
}
|
||||
|
||||
/* ================================ Tests =================================== */
|
||||
void test_hci_led_turnon_green(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_turnon_green(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_turnon_green(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_turnon_red(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_turnon_red(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_turnon_red(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_turnoff_all(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_RED;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_RED;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_RED;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_RED;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_turnoff_all(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_turnoff_all(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_system_boot(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_system_boot(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_SYSTEM_BOOT_DATAB,
|
||||
SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_SYSTEM_BOOT_DATAB,
|
||||
SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_system_boot(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_system_running(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
|
||||
SX1509_regs[SX1509_REG_T_ON_0] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[0] */
|
||||
SX1509_regs[SX1509_REG_T_ON_1] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[1] */
|
||||
SX1509_regs[SX1509_REG_T_ON_2] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[2] */
|
||||
SX1509_regs[SX1509_REG_T_ON_3] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[3] */
|
||||
SX1509_regs[SX1509_REG_T_ON_4] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[4] */
|
||||
SX1509_regs[SX1509_REG_T_ON_5] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[5] */
|
||||
SX1509_regs[SX1509_REG_T_ON_6] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[6] */
|
||||
SX1509_regs[SX1509_REG_T_ON_7] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[7] */
|
||||
SX1509_regs[SX1509_REG_T_ON_8] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[8] */
|
||||
SX1509_regs[SX1509_REG_T_ON_9] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[9] */
|
||||
SX1509_regs[SX1509_REG_T_ON_10] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[10] */
|
||||
SX1509_regs[SX1509_REG_T_ON_11] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[11] */
|
||||
SX1509_regs[SX1509_REG_T_ON_12] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[12] */
|
||||
SX1509_regs[SX1509_REG_T_ON_13] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[13] */
|
||||
SX1509_regs[SX1509_REG_T_ON_14] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[14] */
|
||||
SX1509_regs[SX1509_REG_T_ON_15] =
|
||||
LED_DEFAULT_VALUE, /* ON time register I/O[15] */
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_system_running(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_GREEN, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_10]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_system_running(invalidLedDriver));
|
||||
}
|
||||
void test_hci_led_system_failure(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_system_failure(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_system_failure(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_radio_failure(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_radio_failure(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE, SX1509_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_radio_failure(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_hci_led_backhaul_failure(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_GREEN;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_GREEN;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, hci_led_backhaul_failure(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_OFF, SX1509_regs[SX1509_REG_DATA_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_A]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_RED, SX1509_right_regs[SX1509_REG_DATA_B]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DEFAULT_VALUE, SX1509_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_0]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_1]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_2]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_3]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_4]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_5]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_6]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_7]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_8]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_9]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_11]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_12]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_13]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_14]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_T_ON_14_15_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_T_ON_15]);
|
||||
|
||||
/* Invalid config */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, hci_led_backhaul_failure(invalidLedDriver));
|
||||
}
|
||||
|
||||
void test_led_configure(void)
|
||||
{
|
||||
led_configure(&led_hci_ioexp);
|
||||
TEST_ASSERT_EQUAL(OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH,
|
||||
LED_GpioConfig[OC_EC_HCI_LED_RESET]);
|
||||
}
|
||||
|
||||
void test_led_probe(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
POSTData postData;
|
||||
POSTData *invalidPostData = NULL;
|
||||
|
||||
TEST_ASSERT_EQUAL(POST_DEV_FOUND, led_probe(&led_hci_ioexp, &postData));
|
||||
TEST_ASSERT_EQUAL(OC_CONNECT1_I2C8, postData.i2cBus);
|
||||
TEST_ASSERT_EQUAL(LED_SX1509_LEFT_ADDRESS, postData.devAddr);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_MANID, postData.manId);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DEVID, postData.devId);
|
||||
|
||||
postData.i2cBus = LED_POST_DATA_NULL;
|
||||
postData.devAddr = LED_POST_DATA_NULL;
|
||||
postData.manId = LED_POST_DATA_NULL;
|
||||
postData.devId = LED_POST_DATA_NULL;
|
||||
/* Invalid config test */
|
||||
TEST_ASSERT_EQUAL(POST_DEV_MISSING, led_probe(invalidLedDriver, &postData));
|
||||
TEST_ASSERT_EQUAL(LED_POST_DATA_NULL, postData.i2cBus);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.devAddr);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.manId);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.devId);
|
||||
|
||||
/* Invalid post data test */
|
||||
TEST_ASSERT_EQUAL(POST_DEV_MISSING,
|
||||
led_probe(&led_hci_ioexp, invalidPostData));
|
||||
TEST_ASSERT_EQUAL(LED_POST_DATA_NULL, postData.i2cBus);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.devAddr);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.manId);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_POST_DATA_NULL, postData.devId);
|
||||
}
|
||||
|
||||
void test_led_init(void)
|
||||
{
|
||||
HciLedCfg *invalidLedDriver = NULL;
|
||||
SX1509_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_A] = LED_DEFAULT_VALUE;
|
||||
SX1509_right_regs[SX1509_REG_DATA_B] = LED_DEFAULT_VALUE;
|
||||
|
||||
TEST_ASSERT_EQUAL(RETURN_OK, led_init(&led_hci_ioexp));
|
||||
TEST_ASSERT_EQUAL_HEX8(SX1509_SOFT_RESET_REG_VALUE_2,
|
||||
SX1509_regs[SX1509_REG_RESET]);
|
||||
TEST_ASSERT_EQUAL_HEX8(SX1509_SOFT_RESET_REG_VALUE_2,
|
||||
SX1509_right_regs[SX1509_REG_RESET]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_INPUT_DISABLE_B_VALUE,
|
||||
SX1509_regs[SX1509_REG_INPUT_DISABLE_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_INPUT_DISABLE_B_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_INPUT_DISABLE_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_PULL_UP_B_VALUE,
|
||||
SX1509_regs[SX1509_REG_PULL_UP_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_PULL_UP_B_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_PULL_UP_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_OPEN_DRAIN_B_VALUE,
|
||||
SX1509_regs[SX1509_REG_OPEN_DRAIN_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_REG_OPEN_DRAIN_B_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_OPEN_DRAIN_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_CLOCK_VALUE, SX1509_regs[SX1509_REG_CLOCK]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_CLOCK_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_CLOCK]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_MISC_VALUE, SX1509_regs[SX1509_REG_MISC]);
|
||||
TEST_ASSERT_EQUAL_HEX8(REG_MISC_VALUE, SX1509_right_regs[SX1509_REG_MISC]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DRIVER_ENABLE_B_VALUE,
|
||||
SX1509_regs[SX1509_REG_LED_DRIVER_ENABLE_B]);
|
||||
TEST_ASSERT_EQUAL_HEX8(LED_DRIVER_ENABLE_B_VALUE,
|
||||
SX1509_right_regs[SX1509_REG_LED_DRIVER_ENABLE_B]);
|
||||
|
||||
/* Invalid config test */
|
||||
TEST_ASSERT_EQUAL(RETURN_NOTOK, led_init(invalidLedDriver));
|
||||
}
|
||||
Reference in New Issue
Block a user