
This commit bring tests to life! New issue Summary: test_dep_states test fails When first device is idle, the second one states "RF Transmission Error" instead of simply not found any available device. Full cutter log here: debug libnfc.chip.pn53x InJumpForDEP debug libnfc.chip.pn53x Timeout values: 300 debug libnfc.bus.uart TX: 00 00 ff 05 fb d4 56 00 00 00 d6 00 debug libnfc.bus.uart RX: 00 00 ff 00 ff 00 debug libnfc.chip.pn53x PN53x ACKed debug libnfc.bus.uart Timeout! debug libnfc.chip.pn53x InJumpForDEP debug libnfc.chip.pn53x Timeout values: 300 debug libnfc.bus.uart TX: 00 00 ff 05 fb d4 56 00 00 00 d6 00 debug libnfc.bus.uart RX: 00 00 ff 00 ff 00 debug libnfc.chip.pn53x PN53x ACKed debug libnfc.bus.uart RX: 00 00 ff 03 fd debug libnfc.bus.uart RX: d5 57 debug libnfc.bus.uart RX: 01 debug libnfc.bus.uart RX: d3 00 debug libnfc.chip.pn53x Chip error: "Timeout" (01), returned error: "RF Transmission Error" (-20)) F =============================================================================== Failure: test_dep_states Problem with nfc_idle <0 == res> expected: <0> actual: <-20> diff: ? -20 ./test_device_modes_as_dep.c:171: initiator_thread(): cut_assert_equal_int(0, res, cut_test_context_set_current_result_user_message( cut_test_context_current_peek(), cut_test_context_take_printf(cut_test_context_current_peek(), "Problem with nfc_idle"))) ===============================================================================
51 lines
1.6 KiB
C
51 lines
1.6 KiB
C
#include <cutter.h>
|
|
|
|
#include <nfc/nfc.h>
|
|
#include "chips/pn53x.h"
|
|
|
|
#define MAX_DEVICE_COUNT 1
|
|
#define MAX_TARGET_COUNT 1
|
|
|
|
void test_register_access(void);
|
|
|
|
void
|
|
test_register_access(void)
|
|
{
|
|
nfc_connstring connstrings[MAX_DEVICE_COUNT];
|
|
int res = 0;
|
|
|
|
nfc_context *context;
|
|
nfc_init(&context);
|
|
|
|
size_t device_count = nfc_list_devices(context, connstrings, MAX_DEVICE_COUNT);
|
|
if (!device_count)
|
|
cut_omit("No NFC device found");
|
|
|
|
nfc_device *device;
|
|
|
|
device = nfc_open(context, connstrings[0]);
|
|
cut_assert_not_null(device, cut_message("nfc_open"));
|
|
|
|
uint8_t value;
|
|
|
|
/* Set a 0xAA test value in writable register memory to test register access */
|
|
res = pn53x_write_register(device, PN53X_REG_CIU_TxMode, 0xFF, 0xAA);
|
|
cut_assert_equal_int(0, res, cut_message("write register value to 0xAA"));
|
|
|
|
/* Get test value from register memory */
|
|
res = pn53x_read_register(device, PN53X_REG_CIU_TxMode, &value);
|
|
cut_assert_equal_int(0, res, cut_message("read register value"));
|
|
cut_assert_equal_uint(0xAA, value, cut_message("check register value"));
|
|
|
|
/* Set a 0x55 test value in writable register memory to test register access */
|
|
res = pn53x_write_register(device, PN53X_REG_CIU_TxMode, 0xFF, 0x55);
|
|
cut_assert_equal_int(0, res, cut_message("write register value to 0x55"));
|
|
|
|
/* Get test value from register memory */
|
|
res = pn53x_read_register(device, PN53X_REG_CIU_TxMode, &value);
|
|
cut_assert_equal_int(0, res, cut_message("read register value"));
|
|
cut_assert_equal_uint(0x55, value, cut_message("check register value"));
|
|
|
|
nfc_close(device);
|
|
nfc_exit(context);
|
|
}
|