int main(void) { INIT_TEST("DT_TEST"); CHECK_TEST(test_sys_Init()); CHECK_TEST(test_sys_Reboot()); CHECK_TEST(test_sys_Destroy()); return 0; }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ScalingFunction::ScalingFunction(const Signal &sig) : s(&sig) { TRACER_CALL(t,"ScalingFunction::ScalingFunction"); int sf=s->firstIndex(); int len=s->length(); #ifdef DEBUG //for (int n=s->firstIndex();n<=s->lastIndex();n++) { // cout << "\ts[ " << n << " ] = " << s->value(n) << endl; //} double summ=0.; double sumr=0.; for (int n=s->firstIndex();n<=s->lastIndex();n++) { double svn=s->value(n); summ+=svn; if (n%2!=0) svn=-svn; sumr+= svn; } CHECK_TEST(abs(summ-1.)<512.*DBL_EPSILON); CHECK_TEST(abs(sumr)<512.*DBL_EPSILON); #endif SquareMatrix<double,double> M(len-1,0.); Vector<double,double> b(len-1,1.); double eigvalue=1.+DBL_EPSILON; for (int i=0;i<len-1;i++) { int jlo=max(2*i-len+1,0); int jhi=min(2*i,len-2); for (int j=jlo;j<=jhi;j++) M(i,j)=2.*s->value(2*i-j+sf); M(i,i)-=eigvalue; } #ifdef DEBUG //for (int i=0;i<len-1;i++) { // cout << "\tM[ " << i << " , * ] = "; // for (int j=0;j<len-1;j++) { // cout << M(i,j) << " "; // } // cout << endl; //} #endif values_at_integers=OPERATOR_NEW Vector<double,double>(len-1); M.solve(b,*values_at_integers); double sum=0.; double big=-HUGE_VAL; for (int n=0;n<len-1;n++) { double vain=(*values_at_integers)[n]; sum+=(*values_at_integers)[n]; big=max(big,abs(vain)); } if (abs(sum)>=sqrt(DBL_EPSILON)*big) values_at_integers->scal(1./sum); else values_at_integers->scal(1./big); #ifdef DEBUG for (int n=0;n<len-1;n++) { cout << "\tvalues_at_integers[ " << n+s->firstIndex() << " ] = " << (*values_at_integers)[n] << endl; } #endif }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: void Filter::addUpsampleAndOperateOn(const Signal &s,Signal &r) const { //TRACER_CALL(t,"Filter::addUpsampleAndOperateOn"); #ifdef DEBUG //cout << "\ts = " << s.firstIndex() << " " << s.lastIndex() << endl; //cout << "\tr = " << r.firstIndex() << " " << r.lastIndex() << endl; #endif int signal_start=s.firstIndex(); int signal_finish=s.lastIndex(); int impulse_start=impulse_response->firstIndex(); int impulse_finish=impulse_response->lastIndex(); int result_start=impulse_start+2*signal_start; int result_finish=impulse_finish+2*signal_finish; #ifdef DEBUG //cout << "\timpulse = " << impulse_start << " " << impulse_finish << endl; //cout << "\tresult = " << result_start << " " << result_finish << endl; #endif CHECK_TEST(result_start>=r.firstIndex()); CHECK_TEST(result_finish<=r.lastIndex()); #ifdef DEBUG //for (int n=impulse_response->firstIndex(); //n<=impulse_response->lastIndex();n++) { // cout << "\timpulse_response[ " << n << "] = " // << impulse_response->value(n) << endl; //} //for (int n=s.firstIndex();n<=s.lastIndex();n++) { // cout << "\ts[ " << n << "] = " << s.value(n) << endl; // cout << "\tn = " << n << endl; //} //for (int n=r.firstIndex();n<=r.lastIndex();n++) { // cout << "\tr[ " << n << "] = " << r.value(n) << endl; //} #endif for (int n=result_start;n<=result_finish;n++) { double sum=0.; int m_start=max(signal_start,(n-impulse_finish)/2); if (2*m_start<n-impulse_finish) m_start++; int m_finish=min(signal_finish,(n-impulse_start)/2); if (2*m_finish>n-impulse_start) m_finish--; for (int m=m_start;m<=m_finish;m++) { sum+=s.value(m)*impulse_response->value(n-2*m); } r.value(n)+=sum; } #ifdef DEBUG //for (int n=r.firstIndex();n<=r.lastIndex();n++) { // cout << "\tr[ " << n << "] = " << r.value(n) << endl; //} #endif }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NumPtr<double>* ScalingFunction::values(int scale) const { //TRACER_CALL(t,"ScalingFunction::values"); #ifdef DEBUG //for (int n=s->firstIndex();n<=s->lastIndex();n++) { // cout << "\ts[ " << n << "] = " << s->value(n) << endl; //} //for (int n=0;n<values_at_integers->size();n++) { // cout << "\tvalues_at_integers[ " << n << "] = " // << (*values_at_integers)[n] << endl; //} #endif CHECK_TEST(scale>=1); int twotoscale=pow(2,scale); int inc=twotoscale; int sf=s->firstIndex(); int len=s->length(); int vai_len=len-1; NumPtr<double> *v=OPERATOR_NEW NumPtr<double>(vai_len*twotoscale); int vlen=v->getNumber(); for (int n=0;n<vai_len;n++) (*v)[n*inc]=(*values_at_integers)[n]; #ifdef DEBUG //for (int n=0;n<v->getNumber();n+=inc) { // cout << "\tv[ " << n << " ] = " << (*v)[n] << endl; //} //cout << endl; #endif for (int j=1;j<=scale;j++) { inc /= 2; #ifdef DEBUG // cout << "\n\n\tj,inc = " << j << " " << inc << endl; #endif for (int n=1;n<vlen/inc;n+=2) { int twon=2*n; double sum=0.; #ifdef DEBUG // cout << "\n\tn = " << n << endl; #endif for (int m=0;m<len;m++) { int mm=twon*inc-m*twotoscale; if (mm>=0 && mm<vlen) { #ifdef DEBUG // cout << "\tm,s[" << m + sf << "],v[" << twon*inc-m*twotoscale // << "] = " << m << " " << s->value(m+sf) << " " << (*v)[mm] // << endl; #endif sum+=s->value(m+sf)*(*v)[mm]; } } (*v)[n*inc]=2.*sum; } #ifdef DEBUG // for (int nn=0;nn<vlen;nn+=inc) { // cout << "\tv[ " << nn << " ] = " << (*v)[nn] << endl; // } // cout << endl; #endif } return v; }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: void Filter::operateOn(const Signal &s,Signal &r) const { //TRACER_CALL(t,"Filter::operateOn"); int signal_start=s.firstIndex(); int signal_finish=s.lastIndex(); int impulse_start=impulse_response->firstIndex(); int impulse_finish=impulse_response->lastIndex(); int result_start=signal_start+impulse_start; int result_finish=signal_finish+impulse_finish; CHECK_TEST(result_start>=r.firstIndex()); CHECK_TEST(result_finish<=r.lastIndex()); for (int n=result_start;n<=result_finish;n++) { double sum=0.; int m_start=max(signal_start,n-impulse_finish); int m_finish=min(signal_finish,n-impulse_start); for (int m=m_start;m<=m_finish;m++) { sum+=s.value(m)*impulse_response->value(n-m); } r.value(n)=sum; } }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: void Filter::operateOnAndDownsample(const Signal &s,Signal &r) const { //TRACER_CALL(t,"Filter::operateOnAndDownsample"); int signal_start=s.firstIndex(); int signal_finish=s.lastIndex(); int impulse_start=impulse_response->firstIndex(); int impulse_finish=impulse_response->lastIndex(); int result_start=(signal_start+impulse_start)/2; int result_finish=(signal_finish+impulse_finish)/2; CHECK_TEST(result_start>=r.firstIndex()); CHECK_TEST(result_finish<=r.lastIndex()); #ifdef DEBUG //for (int n=impulse_response->firstIndex(); //n<=impulse_response->lastIndex();n++) { // cout << "\timpulse_response[ " << n << "] = " // << impulse_response->value(n) << endl; //} //for (int n=s.firstIndex();n<=s.lastIndex();n++) { // cout << "\ts[ " << n << "] = " << s.value(n) << endl; //} #endif for (int n=result_start;n<=result_finish;n++) { double sum=0.; int m_start=max(signal_start,2*n-impulse_finish); int m_finish=min(signal_finish,2*n-impulse_start); #ifdef DEBUG // cout << "\tn,m_start,m_finish = " << n << " " << m_start << " " // << m_finish << endl; #endif for (int m=m_start;m<=m_finish;m++) { sum+=s.value(m)*impulse_response->value(2*n-m); } r.value(n)=sum; } #ifdef DEBUG //for (int n=r.firstIndex();n<=r.lastIndex();n++) { // cout << "\tr[ " << n << "] = " << r.value(n) << endl; //} #endif }
int main(void) { swi_sms_regId_t regId; INIT_TEST("SMS_TEST"); CHECK_TEST(test_sms_Init()); CHECK_TEST(test_sms_Register((swi_sms_ReceptionCB_t)sms_handler, PHONE_NUMBER, MESSAGE, ®Id)); CHECK_TEST(test_sms_Unregister(regId)); CHECK_TEST(test_sms_Register((swi_sms_ReceptionCB_t)sms_handler, NULL, NULL, ®Id)); CHECK_TEST(test_sms_Unregister(regId)); CHECK_TEST(test_sms_Register_failure()); CHECK_TEST(test_sms_Unregister_failure()); CHECK_TEST(test_sms_Send(PHONE_NUMBER, MESSAGE, SWI_SMS_8BITS)); CHECK_TEST(test_sms_Destroy()); return 0; }
int main(void) { swi_dt_regId_t regId = NULL; INIT_TEST("DT_TEST"); CHECK_TEST(test_dt_Init()); CHECK_TEST(test_dt_Init()); CHECK_TEST(test_dt_Register(®Id)); CHECK_TEST(test_dt_Set()); while(waitingForNotification) ; CHECK_TEST(test_dt_Get()); CHECK_TEST(test_dt_MultipleGet()); CHECK_TEST(test_dt_Unregister(regId)); CHECK_TEST(test_dt_SetTypes()); CHECK_TEST(test_dt_Destroy()); CHECK_TEST(test_dt_Destroy()); return 0; }
int main(void) { INIT_TEST("EMP_TEST"); setenv("SWI_EMP_SERVER_PORT", "1234", 1); setenv("SWI_EMP_CMD_TIMEOUT", "2", 1); setenv("SWI_EMP_RETRY_IPC_BROKEN", "2", 1); setenv("SWI_EMP_TIMEOUT_IPC_BROKEN", "2", 1); CHECK_TEST(emp_init()); CHECK_TEST(emp_destroy()); CHECK_TEST(emp_init_with_callbacks()); CHECK_TEST(emp_start_mt_cmd()); CHECK_TEST(emp_trigger_response_timeout()); while (cb_invoked == 0) usleep(1000 * 5); // 5ms CHECK_TEST(emp_reconnecting()); CHECK_TEST(emp_stop_mt_cmd()); CHECK_TEST(emp_fail_reconnecting()); CHECK_TEST(emp_destroy()); return 0; }
/// Perform actual tests template<class Array> bool runTestForArray(Array& a) { // Test/problem information. const char* test = "NONE"; const char* problem = "NONE"; // Constant reference to the array const Array& const_a = a; START_TEST("Iteration"); { typedef typename Array::reference reference; typedef typename Array::pointer pointer; typedef typename Array::iterator iterator; const iterator begin = a.begin(), end = a.end(); CHECK_TEST(end-begin==a.size(),"Distance != size"); int index = 0; iterator iter = begin; for(; iter != end; ++iter, ++index) { reference ref = *iter; const pointer ptr = &ref; CHECK_TEST(ptr==&a[index],"Iterator points to the wrong element (going forward)"); } CHECK_TEST(index==a.size(),"Iteration covered the wrong number of elements (going forward)"); for(; iter != begin; --iter, --index) { reference ref = *(iter-1); const pointer ptr = &ref; CHECK_TEST(ptr==&a[index-1],"Iterator points to the wrong element (going backwards)"); } CHECK_TEST(index==0,"Iteration covered the wrong number of elements (going backward)"); } START_TEST("Read-only iteration"); { typedef typename Array::const_reference reference; typedef typename Array::const_pointer pointer; typedef typename Array::const_iterator iterator; const iterator begin = const_a.begin(), end = const_a.end(); CHECK_TEST(end-begin==const_a.size(),"Distance != size"); int index = 0; iterator iter = begin; for(; iter != end; ++iter, ++index) { reference ref = *iter; const pointer ptr = &ref; CHECK_TEST(ptr==&const_a[index],"Iterator points to the wrong element (going forward)"); } CHECK_TEST(index==const_a.size(),"Iteration covered the wrong number of elements (going forward)"); for(; iter != begin; --iter, --index) { reference ref = *(iter-1); const pointer ptr = &ref; CHECK_TEST(ptr==&const_a[index-1],"Iterator points to the wrong element (going backwards)"); } CHECK_TEST(index==0,"Iteration covered the wrong number of elements (going backward)"); } START_TEST("Reverse iteration"); { typedef typename Array::reference reference; typedef typename Array::pointer pointer; typedef typename Array::reverse_iterator iterator; const iterator begin = a.rbegin(), end = a.rend(); CHECK_TEST(end-begin==a.size(),"Distance != size"); int index = a.size(); iterator iter = begin; for(; iter != end; ++iter, --index) { reference ref = *iter; const pointer ptr = &ref; CHECK_TEST(ptr==&a[index-1],"Iterator points to the wrong element (going forward)"); } CHECK_TEST(index==0,"Iteration covered the wrong number of elements (going forward)"); for(; iter != begin; --iter, ++index) { reference ref = *(iter-1); const pointer ptr = &ref; CHECK_TEST(ptr==&a[index],"Iterator points to the wrong element (going backwards)"); } CHECK_TEST(index==a.size(),"Iteration covered the wrong number of elements (going backward)"); } START_TEST("Reverse read-only iteration"); { typedef typename Array::const_reference reference; typedef typename Array::const_pointer pointer; typedef typename Array::const_reverse_iterator iterator; const iterator begin = const_a.rbegin(), end = const_a.rend(); CHECK_TEST(end-begin==const_a.size(),"Distance != size"); int index = a.size(); iterator iter = begin; for(; iter != end; ++iter, --index) { reference ref = *iter; const pointer ptr = &ref; CHECK_TEST(ptr==&const_a[index-1],"Iterator points to the wrong element (going forward)"); } CHECK_TEST(index==0,"Iteration covered the wrong number of elements (going forward)"); for(; iter != begin; --iter, ++index) { reference ref = *(iter-1); const pointer ptr = &ref; CHECK_TEST(ptr==&const_a[index],"Iterator points to the wrong element (going backwards)"); } CHECK_TEST(index==a.size(),"Iteration covered the wrong number of elements (going backward)"); } return true; failed: if (opt.log) olog << "FAILURE" << std::endl << ind(1) << "Test: " << test << std::endl << ind(1) << "Problem: " << problem << std::endl; return false; }
int main(int argc, char *argv[]) { INIT_TEST("AV_TEST"); // swi_log_setlevel(DEBUG, "AV", NULL ); CHECK_TEST(test_1_Init_Destroy()); CHECK_TEST(test_2_TriggerPolicy()); CHECK_TEST(test_3_ConnectToServer()); CHECK_TEST(test_4_asset_Create_Start_Destroy()); CHECK_TEST(test_5_asset_pushData()); CHECK_TEST(test_6_Acknowledge()); CHECK_TEST(test_7_path_utils()); CHECK_TEST(test_8_UpdateNotification()); CHECK_TEST(test_9_TableManipulation()); CHECK_TEST(test_10_asset_receiveDataWriting()); CHECK_TEST(test_11_asset_receiveDataWritingList()); CHECK_TEST(test_12_asset_receiveDataCommandList()); //preventive clean if one previous test failed // swi_av_Destroy(); return 0; }
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: SplineFilterBank::SplineFilterBank(int N,int L) { TRACER_CALL(t,"SplineFilterBank::SplineFilterBank"); CHECK_TEST(N>=1); CHECK_TEST(L>=1); if ((N+L)%2==1) L++; int M=(N+L)/2; lowpass=OPERATOR_NEW Filter(0,N); BinomialCoefficient bc(max(max(N,L),2*M-2)); double two_power=pow(.5,N); for (int n=0;n<=N;n++) lowpass->value(n)=two_power*bc.value(N,n); #ifdef DEBUG for (int n=lowpass->firstIndex();n<=lowpass->lastIndex();n++) { cout << "\tlowpass[" << n << "] = " << lowpass->value(n) << endl; } #endif Signal alpha(0,L); two_power=pow(.5,L); for (int n=0;n<=L;n++) alpha.value(n)=two_power*bc.value(L,n); alpha.shift((L-N)/2); Filter beta_filter(1-M,M-1); for (int n=0;n<M;n++) { double sum=0.; for (int m=n;m<M;m++) { int twom=2*m; sum+=bc.value(M+m-1,m)*bc.value(twom,m-n)*pow(.5,twom); } if (n%2 != 0) sum=-sum; beta_filter.value(n)=sum; beta_filter.value(-n)=sum; } #ifdef DEBUG for (int n=beta_filter.firstIndex();n<=beta_filter.lastIndex();n++) { cout << "\tbeta[" << n << "] = " << beta_filter.value(n) << endl; } #endif dual_lowpass=OPERATOR_NEW Filter( alpha.firstIndex()+beta_filter.firstIndex(), alpha.lastIndex()+beta_filter.lastIndex()); beta_filter.operateOn(alpha,dual_lowpass->impulseResponse()); dual_lowpass->replaceWithAdjoint(); #ifdef DEBUG for (int n=dual_lowpass->firstIndex();n<=dual_lowpass->lastIndex();n++) { cout << "\tdual_lowpass[" << n << "] = " << dual_lowpass->value(n) << endl; } #endif highpass=OPERATOR_NEW Filter(*dual_lowpass); highpass->impulseResponse().shift(dual_lowpass->firstIndex()); highpass->impulseResponse().reverse(); #ifdef DEBUG for (int n=highpass->firstIndex();n<=highpass->lastIndex();n++) { cout << "\thighpass[" << n << "] = " << highpass->value(n) << endl; } #endif dual_highpass=OPERATOR_NEW Filter(*lowpass); dual_highpass->impulseResponse().shift(2*N-1); dual_highpass->impulseResponse().reverse(); #ifdef DEBUG for (int n=dual_highpass->firstIndex();n<=dual_highpass->lastIndex();n++) { cout << "\tdual_highpass[" << n << "] = " << dual_highpass->value(n) << endl; } #endif }
/*===========================================================================* * main * *===========================================================================*/ int main(int argc, char **argv) { endpoint_t ep_self, ep_child; size_t size = BUF_SIZE; int i, r, pid; int status; /* SEF local startup. */ env_setargs(argc, argv); sef_local_startup(); /* Prepare work. */ buf = (char*) CLICK_CEIL(buf_buf); fid_get = open(FIFO_GRANTOR, O_RDONLY); fid_send = open(FIFO_REQUESTOR, O_WRONLY); if(fid_get < 0 || fid_send < 0) { printf("REQUESTOR: can't open fifo files.\n"); return 1; } /* Send the endpoint to the granter, in order to let him to * create the grant. */ ep_self = getprocnr(); write(fid_send, &ep_self, sizeof(ep_self)); dprint("REQUESTOR: sending my endpoint: %d\n", ep_self); /* Get the granter's endpoint and gid. */ read(fid_get, &ep_granter, sizeof(ep_granter)); read(fid_get, &gid, sizeof(gid)); dprint("REQUESTOR: getting granter's endpoint %d and gid %d\n", ep_granter, gid); /* Test MAP. */ FIFO_WAIT(fid_get); r = sys_safemap(ep_granter, gid, 0, (long)buf, size, 1); if(r != OK) { printf("REQUESTOR: error in sys_safemap: %d\n", r); return 1; } CHECK_TEST("REQUESTOR", buf[0], BUF_START_GRANTOR, "MAP"); buf[0] = BUF_START_REQUESTOR; r = sys_safeunmap((long)buf); if(r != OK) { printf("REQUESTOR: error in sys_safeunmap: %d\n", r); return 1; } FIFO_NOTIFY(fid_send); /* Test UNMAP. */ FIFO_WAIT(fid_get); CHECK_TEST("REQUESTOR", buf[0], BUF_START_REQUESTOR, "UNMAP"); r = sys_safemap(ep_granter, gid, 0, (long)buf, size, 1); if(r != 0) { printf("REQUESTOR: error in sys_safemap: %d\n", r); return 1; } FIFO_NOTIFY(fid_send); /* Test REVOKE. */ FIFO_WAIT(fid_get); CHECK_TEST("REQUESTOR", buf[0], BUF_START_GRANTOR, "REVOKE"); buf[0] = BUF_START_REQUESTOR; FIFO_NOTIFY(fid_send); /* Test SMAP_COW. */ FIFO_WAIT(fid_get); r = sys_safemap(ep_granter, gid, 0, (long)buf, size, 1); if(r != OK) { printf("REQUESTOR: error in sys_safemap: %d\n", r); return 1; } buf[0] = BUF_START_REQUESTOR; pid = fork(); if(pid < 0) { printf("REQUESTOR: error in fork\n"); return 1; } if(pid == 0) { exit(buf[0] != BUF_START_REQUESTOR); } FIFO_NOTIFY(fid_send); FIFO_WAIT(fid_get); ep_child = getnprocnr(pid); if ((r = sys_privctl(ep_child, SYS_PRIV_SET_USER, NULL)) != OK) { printf("REQUESTOR: unable to set privileges: %d\n", r); return 1; } if ((r = sys_privctl(ep_child, SYS_PRIV_ALLOW, NULL)) != OK) { printf("REQUESTOR: child process can't run: %d\n", r); return 1; } wait(&status); FIFO_NOTIFY(fid_send); CHECK_TEST("REQUESTOR", buf[0], BUF_START_GRANTOR, "SMAP_COW"); CHECK_TEST("REQUESTOR", 1, WIFEXITED(status) && (WEXITSTATUS(status) == 0), "SMAP_COW child"); /* Test COW_SMAP. */ FIFO_WAIT(fid_get); buf[0] = BUF_START_REQUESTOR; r = sys_safemap(ep_granter, gid, 0, (long)buf, size, 1); if(r != OK) { printf("REQUESTOR: error in sys_safemap: %d\n", r); return 1; } FIFO_NOTIFY(fid_send); FIFO_WAIT(fid_get); CHECK_TEST("REQUESTOR", buf[0], BUF_START_GRANTOR+1, "COW_SMAP"); /* Test COW_SMAP2 (with COW safecopy). */ FIFO_WAIT(fid_get); buf[0] = BUF_START_REQUESTOR; r = sys_safecopyto(ep_granter, gid, 0, (long)buf, size); if(r != OK) { printf("REQUESTOR: error in sys_safecopyto: %d\n", r); return 1; } r = sys_safemap(ep_granter, gid, 0, (long)buf, size, 1); if(r != OK) { printf("REQUESTOR: error in sys_safemap: %d\n", r); return 1; } FIFO_NOTIFY(fid_send); CHECK_TEST("REQUESTOR", buf[0], BUF_START_REQUESTOR, "COW_SMAP2"); return 0; }