#include <stdio.h>
|
|
#include <ulib.h>
|
|
|
|
#define ARRAYSIZE (1024*1024)
|
|
|
|
uint32_t bigarray[ARRAYSIZE];
|
|
|
|
int
|
|
main(void) {
|
|
cprintf("Making sure bss works right...\n");
|
|
int i;
|
|
for (i = 0; i < ARRAYSIZE; i ++) {
|
|
if (bigarray[i] != 0) {
|
|
panic("bigarray[%d] isn't cleared!\n", i);
|
|
}
|
|
}
|
|
for (i = 0; i < ARRAYSIZE; i ++) {
|
|
bigarray[i] = i;
|
|
}
|
|
for (i = 0; i < ARRAYSIZE; i ++) {
|
|
if (bigarray[i] != i) {
|
|
panic("bigarray[%d] didn't hold its value!\n", i);
|
|
}
|
|
}
|
|
|
|
cprintf("Yes, good. Now doing a wild write off the end...\n");
|
|
cprintf("testbss may pass.\n");
|
|
|
|
bigarray[ARRAYSIZE + 1024] = 0;
|
|
asm volatile ("int $0x14");
|
|
panic("FAIL: T.T\n");
|
|
}
|
|
|