UT for led device

This commit is contained in:
swateeshrivastava
2019-02-11 11:05:24 +05:30
parent efdfb00113
commit 0c2403c6f5
6 changed files with 714 additions and 26 deletions

View File

@@ -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_ */

View File

@@ -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], &regValue);

View File

@@ -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)

View 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,
};

View 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

View 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));
}