/** * @fn :tc_driver_adc_read * @brief :Test the adc driver read * @scenario :Test the adc driver read * API's covered :read, ioctl * Preconditions :none * Postconditions :none * @return :void */ static void tc_driver_adc_read(void) { int fd = 0; int ret = 0; char buf[5]; int i; fd = open("/dev/adc0", O_RDONLY); TC_ASSERT_GT("adc_open", fd, 0); ret = ioctl(fd, ANIOC_TRIGGER, 0); TC_ASSERT_GEQ_CLEANUP("adc_ioctl", ret, 0, close(fd)); for (i = 0; i < 6; i++) { ret = read(fd, buf, i); TC_ASSERT_GEQ_CLEANUP("adc_read", ret, 0, close(fd)); } close(fd); TC_SUCCESS_RESULT(); }
/** * @fn :tc_timer_timer_set_get_time * @brief :arm/disarm and fetch state of POSIX per-process timer * @scenario :arm/disarm and fetch state of POSIX per-process timer * API's covered :timer_create, timer_settime, timer_gettime * Preconditions :Creation of timer_id(timer_create) * Postconditions :none * @return :void */ static void tc_timer_timer_set_get_time(void) { int ret_chk = ERROR; clockid_t clockid = CLOCK_REALTIME; struct sigevent st_sigevent; struct itimerspec st_timer_spec_set; struct itimerspec st_timer_spec_get; timer_t timer_id; /* Set and enable alarm */ st_sigevent.sigev_notify = SIGEV_SIGNAL; st_sigevent.sigev_signo = sig_no; st_sigevent.sigev_value.sival_ptr = &timer_id; ret_chk = timer_create(clockid, &st_sigevent, &timer_id); TC_ASSERT_NEQ("timer_create", ret_chk, ERROR); TC_ASSERT_NOT_NULL("timer_create", timer_id); st_timer_spec_set.it_interval.tv_sec = 1; st_timer_spec_set.it_interval.tv_nsec = 0; /* interval; */ st_timer_spec_set.it_value.tv_sec = 1; st_timer_spec_set.it_value.tv_nsec = 0; /* expire; */ ret_chk = timer_settime(timer_id, 0, &st_timer_spec_set, NULL); /* Flag =1 :TIMER_ABSTIME */ TC_ASSERT_EQ_ERROR_CLEANUP("timer_settime", ret_chk, OK, errno, timer_delete(timer_id)); usleep(USECINT); ret_chk = timer_gettime(timer_id, &st_timer_spec_get); TC_ASSERT_EQ_ERROR_CLEANUP("timer_gettime", ret_chk, OK, errno, timer_delete(timer_id)); TC_ASSERT_GEQ_CLEANUP("timer_gettime", st_timer_spec_get.it_interval.tv_nsec, st_timer_spec_set.it_interval.tv_nsec, timer_delete(timer_id)); TC_ASSERT_GEQ_CLEANUP("timer_gettime", st_timer_spec_get.it_interval.tv_sec, st_timer_spec_set.it_interval.tv_sec, timer_delete(timer_id)); TC_ASSERT_GEQ_CLEANUP("timer_gettime", st_timer_spec_get.it_value.tv_sec, st_timer_spec_set.it_value.tv_sec, timer_delete(timer_id)); TC_ASSERT_GEQ_CLEANUP("timer_gettime", st_timer_spec_get.it_value.tv_nsec, st_timer_spec_set.it_value.tv_nsec, timer_delete(timer_id)); timer_delete(timer_id); TC_SUCCESS_RESULT(); }