#include "altera_logic.h" #include #include #include #include static void response(void *s, uint8_t *data, size_t n) { size_t i; uint8_t sum=0; for(i=0;i>8); } response(s,block,133); } assert(la_get(s,LA_STATE)==LA_DONE); assert(la_samples(s,samples,4095)==0); assert(la_samples(s,samples,4096)==4096); for(i=0;i<4096;++i) assert(samples[i]==i); assert(la_get(s,LA_TRIGGER_INDEX)==2048); /* Corrupt XOR, wrong command, device error, timeout and extra data. */ la_init(s);la_next(s,p,6); { uint8_t bad[]={0x5a,0x81,0,16,0,16,50,1,0};la_feed(s,bad,9); } assert(la_get(s,LA_ERROR_CODE)==LA_CHECKSUM); la_init(s);la_next(s,p,6); { uint8_t bad[]={0x5a,0x88};la_feed(s,bad,2); } assert(la_get(s,LA_ERROR_CODE)==LA_BAD_FRAME); la_init(s);la_next(s,p,6); { uint8_t bad[]={0x5a,0x81,1,0};response(s,bad,4); } assert(la_get(s,LA_ERROR_CODE)==LA_DEVICE_ERROR); la_init(s);la_next(s,p,6);la_tick(s,999); assert(la_get(s,LA_STATE)==LA_CONNECTING);la_tick(s,1); assert(la_get(s,LA_ERROR_CODE)==LA_TIMEOUT && la_next(s,p,6)==0); connect_ok(s);la_feed(s,p,1);assert(la_get(s,LA_ERROR_CODE)==LA_BAD_FRAME); la_init(s);la_next(s,p,6); { uint8_t bad[]={0x5a,0x81,0,8,0,16,50,1,0};response(s,bad,9); } assert(la_get(s,LA_ERROR_CODE)==LA_UNSUPPORTED); la_demo_init(s);assert(la_demo_capture(s,49)==0); assert(la_get(s,LA_STATE)==LA_DONE && la_samples(s,samples,4096)==4096); free(s);puts("Altera Logic C tests passed");return 0; }