"FineDelay generates, simultaneously, 1000000 pulse for each channel (1MHz). We check that they all arrives and the timestamp is the same (ignore fine field)";
staticvoidfmctdc_op_test6(structm_test*m_test)
{
structfmctdc_test_desc*d=m_test->suite->private;
structfmctdc_board*tdc=d->tdc;
structpollfdp;
constunsignedinttimeout=10;
inti,err,ret;
for(i=0;i<FMCTDC_NUM_CHANNELS-1;++i){
err=fmctdc_coalescing_timeout_set(tdc,i,timeout);
m_assert_int_eq(0,err);
err=fmctdc_channel_enable(tdc,i);
m_assert_int_eq(0,err);
err=fmctdc_execute_fmc_fdelay_pulse(fmcfd_dev_id,
i,1,0,1000000);
m_assert_int_eq(0,err);
p.fd=fmctdc_fileno_channel(tdc,i);
p.events=POLLIN|POLLERR;
ret=poll(&p,1,timeout/2);
m_assert_int_eq(0,ret);
}
}
staticconstchar*fmctdc_op_test6_desc=
"FineDelay generates, simultaneously, 1000000 pulse for each channel (1MHz). We test the IRq coalesing timeout. We expect to not receive timestamp before the timeout";
staticvoidfmctdc_op_test7(structm_test*m_test)
{
structfmctdc_test_desc*d=m_test->suite->private;
structfmctdc_board*tdc=d->tdc;
structpollfdp;
constunsignedinttimeout=10;
inti,err,ret;
for(i=0;i<FMCTDC_NUM_CHANNELS-1;++i){
err=fmctdc_coalescing_timeout_set(tdc,i,timeout);
m_assert_int_eq(0,err);
err=fmctdc_channel_enable(tdc,i);
m_assert_int_eq(0,err);
err=fmctdc_execute_fmc_fdelay_pulse(fmcfd_dev_id,
i,1,0,1000000);
m_assert_int_eq(0,err);
p.fd=fmctdc_fileno_channel(tdc,i);
p.events=POLLIN|POLLERR;
ret=poll(&p,1,timeout+1);
m_assert_int_eq(0,ret);
}
}
staticconstchar*fmctdc_op_test7_desc=
"FineDelay generates, simultaneously, 1000000 pulse for each channel (1MHz). We test the IRq coalesing timeout. We expect to receive timestamp after the timeout";
intmain(intargc,char*argv[])
...
...
@@ -403,6 +460,14 @@ int main(int argc, char *argv[])