mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
drivertest_i2c_spi: Supports incoming device nodes so we can test both iic and spi
Signed-off-by: zhangshoukui <zhangshoukui@xiaomi.com>
This commit is contained in:
parent
8d82bd7b76
commit
8b17cfedf2
1 changed files with 38 additions and 8 deletions
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
struct test_state_s
|
||||
{
|
||||
FAR const char *dev_path;
|
||||
char dev_path[PATH_MAX];
|
||||
int fd;
|
||||
};
|
||||
|
||||
|
|
@ -59,6 +59,19 @@ struct test_state_s
|
|||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: show_usage
|
||||
****************************************************************************/
|
||||
|
||||
static void show_usage(FAR const char *progname,
|
||||
FAR const char *path, int exitcode)
|
||||
{
|
||||
printf("Usage: %s -d <devpath>\n", progname);
|
||||
printf(" [-d devpath] Sensor device node.\n"
|
||||
" Default: %s Current: %s\n", ACC_DEVPATH, path);
|
||||
exit(exitcode);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: setup
|
||||
****************************************************************************/
|
||||
|
|
@ -66,14 +79,10 @@ struct test_state_s
|
|||
static int setup(FAR void **state)
|
||||
{
|
||||
FAR struct test_state_s *test_state;
|
||||
test_state = malloc(sizeof(struct test_state_s));
|
||||
assert_true(test_state != NULL);
|
||||
|
||||
test_state->dev_path = ACC_DEVPATH;
|
||||
test_state = (FAR struct test_state_s *)*state;
|
||||
test_state->fd = open(test_state->dev_path, O_RDONLY);
|
||||
assert_true(test_state->fd > 0);
|
||||
|
||||
*state = test_state;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +95,6 @@ static int teardown(FAR void **state)
|
|||
FAR struct test_state_s *test_state;
|
||||
test_state = (FAR struct test_state_s *)*state;
|
||||
assert_int_equal(close(test_state->fd), 0);
|
||||
free(test_state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -131,9 +139,31 @@ static void read_from_device(FAR void **state)
|
|||
|
||||
int main(int argc, FAR char *argv[])
|
||||
{
|
||||
struct test_state_s test_state;
|
||||
int ch;
|
||||
|
||||
memset(&test_state, 0, sizeof(test_state));
|
||||
snprintf(test_state.dev_path, sizeof(test_state.dev_path), "%s",
|
||||
ACC_DEVPATH);
|
||||
while ((ch = getopt(argc, argv, "d:h")) != ERROR)
|
||||
{
|
||||
switch (ch)
|
||||
{
|
||||
case 'd':
|
||||
snprintf(test_state.dev_path, sizeof(test_state.dev_path), "%s",
|
||||
optarg);
|
||||
break;
|
||||
case 'h':
|
||||
case '?':
|
||||
show_usage(argv[0], test_state.dev_path, EXIT_FAILURE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const struct CMUnitTest tests[] =
|
||||
{
|
||||
cmocka_unit_test_setup_teardown(read_from_device, setup, teardown),
|
||||
cmocka_unit_test_prestate_setup_teardown(read_from_device, setup,
|
||||
teardown, &test_state),
|
||||
};
|
||||
|
||||
return cmocka_run_group_tests(tests, NULL, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue