64
64
struct test_confs_s
65
65
{
66
66
FAR const char * dev_path ;
67
+ int test_case_id ;
67
68
};
68
69
69
70
struct test_state_s
@@ -199,10 +200,10 @@ static int teardown(FAR void **state)
199
200
}
200
201
201
202
/****************************************************************************
202
- * Name: write_default
203
+ * Name: drivertest_uart_write
203
204
****************************************************************************/
204
205
205
- static void write_default (FAR void * * state )
206
+ static void drivertest_uart_write (FAR void * * state )
206
207
{
207
208
FAR struct test_state_s * test_state = (FAR struct test_state_s * )* state ;
208
209
int res = write (test_state -> fd ,
@@ -213,10 +214,10 @@ static void write_default(FAR void **state)
213
214
}
214
215
215
216
/****************************************************************************
216
- * Name: read_default
217
+ * Name: drivertest_uart_read
217
218
****************************************************************************/
218
219
219
- static void read_default (FAR void * * state )
220
+ static void drivertest_uart_read (FAR void * * state )
220
221
{
221
222
FAR struct test_state_s * test_state = (FAR struct test_state_s * )* state ;
222
223
size_t buffer_size = sizeof (DEFAULT_CONTENT );
@@ -245,10 +246,10 @@ static void read_default(FAR void **state)
245
246
}
246
247
247
248
/****************************************************************************
248
- * Name: burst_test
249
+ * Name: drivertest_uart_burst
249
250
****************************************************************************/
250
251
251
- static void burst_test (FAR void * * state )
252
+ static void drivertest_uart_burst (FAR void * * state )
252
253
{
253
254
FAR struct test_state_s * test_state = (FAR struct test_state_s * )* state ;
254
255
int res = 0 ;
@@ -303,6 +304,12 @@ static void show_usage(FAR const char *progname, int exitcode)
303
304
printf ("Where:\n" );
304
305
printf (" -d <dev path> uart device path "
305
306
"[default device: /dev/console].\n" );
307
+ printf (" -n <test_case_id> selects the testcase to uart.\n"
308
+ "[default test: drivertest_uart_write].\n"
309
+ " Case 0: drivertest_uart_write test\n"
310
+ " Case 1: drivertest_uart_read test\n"
311
+ " Case 2: drivertest_uart_burst test\n"
312
+ );
306
313
exit (exitcode );
307
314
}
308
315
@@ -315,13 +322,16 @@ static void parse_args(int argc, FAR char **argv,
315
322
{
316
323
int option ;
317
324
318
- while ((option = getopt (argc , argv , "d:" )) != ERROR )
325
+ while ((option = getopt (argc , argv , "d:n: " )) != ERROR )
319
326
{
320
327
switch (option )
321
328
{
322
329
case 'd' :
323
330
conf -> dev_path = optarg ;
324
331
break ;
332
+ case 'n' :
333
+ conf -> test_case_id = atoi (optarg );
334
+ break ;
325
335
case '?' :
326
336
printf ("Unknown option: %c\n" , optopt );
327
337
show_usage (argv [0 ], EXIT_FAILURE );
@@ -340,20 +350,30 @@ static void parse_args(int argc, FAR char **argv,
340
350
341
351
int main (int argc , FAR char * argv [])
342
352
{
353
+ void (* drivertest_uart )(FAR void * * state ) = NULL ;
343
354
struct test_confs_s confs =
344
355
{
345
- .dev_path = CONFIG_TESTING_DRIVER_TEST_UART_DEVICE
356
+ .dev_path = CONFIG_TESTING_DRIVER_TEST_UART_DEVICE ,
357
+ .test_case_id = 0
346
358
};
347
359
348
360
parse_args (argc , argv , & confs );
361
+ switch (confs .test_case_id )
362
+ {
363
+ case 1 :
364
+ drivertest_uart = drivertest_uart_read ;
365
+ break ;
366
+ case 2 :
367
+ drivertest_uart = drivertest_uart_burst ;
368
+ break ;
369
+ default :
370
+ drivertest_uart = drivertest_uart_write ;
371
+ break ;
372
+ }
349
373
350
374
const struct CMUnitTest tests [] =
351
375
{
352
- cmocka_unit_test_prestate_setup_teardown (write_default , setup ,
353
- teardown , & confs ),
354
- cmocka_unit_test_prestate_setup_teardown (read_default , setup ,
355
- teardown , & confs ),
356
- cmocka_unit_test_prestate_setup_teardown (burst_test , setup ,
376
+ cmocka_unit_test_prestate_setup_teardown (drivertest_uart , setup ,
357
377
teardown , & confs ),
358
378
};
359
379
0 commit comments