/** * @file tests/device_token.cpp * @brief brief * @date Mar 14, 2016 * @author jjacobs * @copyright 2016 Dual Inventive Technology Centre B.V. * * descr */ #include #include /** * Check if initial device state is set to DI_DEVICE_TOKEN_DEFAULT_VALUE (0) */ TEST(device_token, initial) { EXPECT_EQ(0U, DI_DEVICE_TOKEN_DEFAULT_VALUE); EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get()); } TEST(device_token, set) { /* Initial token, zero may not be written to zero */ EXPECT_EQ(DNE_FIRMWARE_MISMATCH_TOKEN, di_device_token_set(0)); EXPECT_EQ(DNE_FIRMWARE_MISMATCH_TOKEN, di_device_token_set(DI_DEVICE_TOKEN_DEFAULT_VALUE)); /* Normal operation */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(1234U, di_device_token_get()); /* Set token again */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(1234U, di_device_token_get()); /* Token is not reset/overwritten when already set */ EXPECT_EQ(DNE_FIRMWARE_MISMATCH_TOKEN, di_device_token_set(0)); EXPECT_EQ(1234U, di_device_token_get()); /* Token set operation denied in ACTIVE state */ EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(true, di_device_is_active()); EXPECT_EQ(DNE_FIRMWARE_DEVICE_ACTIVE, di_device_token_set(5678)); EXPECT_EQ(1234U, di_device_token_get()); /* Reset, ACTIVE -> ARMED -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DNOK, di_device_token_reset()); } /** * Test token reset, it is only valid when di_device_state is * set to DI_DEVICE_STATE_ARMED */ TEST(device_token, reset) { /* Initial token may not be reset (IDLE state) */ EXPECT_EQ(DNE_FIRMWARE_DEVICE_IDLE, di_device_token_reset()); /* Reset after set */ EXPECT_EQ(DNOK, di_device_token_set(5678)); EXPECT_EQ(5678U, di_device_token_get()); EXPECT_EQ(DNOK, di_device_token_reset()); EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get()); /* Token reset operation denied in ACTIVE state */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DNE_FIRMWARE_DEVICE_ACTIVE, di_device_token_reset()); /* Reset, ACTIVE -> ARMED -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DNOK, di_device_token_reset()); EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get()); }