initial commit
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
#include <assert.h>
|
||||
#include <autotest.h>
|
||||
|
||||
inline char udiff(char a, char b)
|
||||
{
|
||||
return b - a;
|
||||
}
|
||||
|
||||
void test_readorder(void)
|
||||
{
|
||||
char u0 = testio.cnt0;
|
||||
char u1 = testio.cnt0;
|
||||
char t = testio.cnt0;
|
||||
char u2 = testio.cnt0;
|
||||
|
||||
t = testio.cnt0;
|
||||
t = testio.cnt0;
|
||||
t = testio.cnt0;
|
||||
char u3 = testio.cnt0;
|
||||
for(char i=0; i<16; i++)
|
||||
t = testio.cnt0;
|
||||
char u4 = testio.cnt0;
|
||||
|
||||
assert(udiff(u0, u1) == 1);
|
||||
assert(udiff(u1, u2) == 2);
|
||||
assert(udiff(u2, u3) == 4);
|
||||
assert(udiff(u3, u4) == 17);
|
||||
}
|
||||
|
||||
void test_writeorder(void)
|
||||
{
|
||||
char u0 = testio.cnt0;
|
||||
char u1 = testio.cnt0;
|
||||
testio.cnt0 = 0;
|
||||
char u2 = testio.cnt0;
|
||||
|
||||
testio.cnt0 = 0;
|
||||
testio.cnt0 = 0;
|
||||
testio.cnt0 = 0;
|
||||
char u3 = testio.cnt0;
|
||||
for(char i=0; i<16; i++)
|
||||
testio.cnt0 = 0;
|
||||
char u4 = testio.cnt0;
|
||||
|
||||
assert(udiff(u0, u1) == 1);
|
||||
assert(udiff(u1, u2) == 2);
|
||||
assert(udiff(u2, u3) == 4);
|
||||
assert(udiff(u3, u4) == 17);
|
||||
}
|
||||
|
||||
volatile char buffer[16];
|
||||
|
||||
void test_dma(void)
|
||||
{
|
||||
testio.dmaddr = unsigned(buffer);
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 1;
|
||||
testio.dmdata = 2;
|
||||
testio.dmdata = 3;
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 4;
|
||||
testio.dmdata = 5;
|
||||
testio.dmdata = 6;
|
||||
testio.dmdata = 7;
|
||||
testio.dmdata = 0;
|
||||
testio.dmdata = 1;
|
||||
testio.dmdata = 2;
|
||||
testio.dmdata = 3;
|
||||
assert(buffer[ 0] == 0);
|
||||
assert(buffer[ 1] == 1);
|
||||
assert(buffer[ 2] == 2);
|
||||
assert(buffer[ 3] == 3);
|
||||
assert(buffer[ 4] == 0);
|
||||
assert(buffer[ 5] == 0);
|
||||
assert(buffer[ 6] == 0);
|
||||
assert(buffer[ 7] == 0);
|
||||
assert(buffer[ 8] == 4);
|
||||
assert(buffer[ 9] == 5);
|
||||
assert(buffer[10] == 6);
|
||||
assert(buffer[11] == 7);
|
||||
assert(buffer[12] == 0);
|
||||
assert(buffer[13] == 1);
|
||||
assert(buffer[14] == 2);
|
||||
assert(buffer[15] == 3);
|
||||
testio.dmaddr = unsigned(buffer);
|
||||
char tbuffer[16];
|
||||
for(char i=0; i<16; i++)
|
||||
tbuffer[i] = testio.dmdata;
|
||||
assert(tbuffer[ 0] == 0);
|
||||
assert(tbuffer[ 1] == 1);
|
||||
assert(tbuffer[ 2] == 2);
|
||||
assert(tbuffer[ 3] == 3);
|
||||
assert(tbuffer[ 4] == 0);
|
||||
assert(tbuffer[ 5] == 0);
|
||||
assert(tbuffer[ 6] == 0);
|
||||
assert(tbuffer[ 7] == 0);
|
||||
assert(tbuffer[ 8] == 4);
|
||||
assert(tbuffer[ 9] == 5);
|
||||
assert(tbuffer[10] == 6);
|
||||
assert(tbuffer[11] == 7);
|
||||
assert(tbuffer[12] == 0);
|
||||
assert(tbuffer[13] == 1);
|
||||
assert(tbuffer[14] == 2);
|
||||
assert(tbuffer[15] == 3);
|
||||
}
|
||||
|
||||
char read_cnt0(void)
|
||||
{
|
||||
return testio.cnt0;
|
||||
}
|
||||
|
||||
void test_unusedread(void)
|
||||
{
|
||||
char base0 = testio.cnt0;
|
||||
read_cnt0();
|
||||
char end0 = testio.cnt0;
|
||||
|
||||
assert(udiff(base0, end0) == 2);
|
||||
}
|
||||
|
||||
void test_readsmallfunc(void)
|
||||
{
|
||||
char base0 = testio.cnt0;
|
||||
char u0 = read_cnt0();
|
||||
char u1 = read_cnt0();
|
||||
char end0 = testio.cnt0;
|
||||
|
||||
assert(udiff(base0, u0) == 1);
|
||||
assert(udiff(u0, u1) == 1);
|
||||
assert(udiff(u1, end0) == 1);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test_readorder();
|
||||
test_writeorder();
|
||||
test_dma();
|
||||
test_unusedread();
|
||||
test_readsmallfunc();
|
||||
}
|
||||
Reference in New Issue
Block a user