|
| | CESTER_TEST (cdlSeekP, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int setLocDone=setLoc(0, 2, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t completeTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(2, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(2, response2[0]);cester_assert_uint_eq(1, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);ramsyscall_printf("Basic seekP to 00:02:00: ack in %ius, complete in %ius\n", ackTime, completeTime);) CESTER_TEST(cdlSeekPwithArgs |
| |
| | if (!resetDone) |
| |
| | initializeTime () |
| |
| | while (updateTime()< 50000) |
| |
| | cester_assert_uint_eq (5, cause1) |
| |
| | cester_assert_uint_eq (0xe0, cause1b) |
| |
| | cester_assert_uint_eq (3, response1[0]) |
| |
| | cester_assert_uint_eq (0x20, response1[1]) |
| |
| | cester_assert_uint_eq (2, responseSize1) |
| |
| | cester_assert_uint_eq (0x38, ctrl1) |
| |
| | cester_assert_uint_eq (0x18, ctrl2) |
| |
| | cester_assert_uint_ge (errorTime, 500) |
| |
| | cester_assert_uint_lt (errorTime, 7000) |
| |
| | ramsyscall_printf ("Too many args seekP, errored in %ius\n", errorTime) |
| |
| | CESTER_TEST (cdlSeekP2to4, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int seekDone=seekPTo(0, 2, 0);if(!seekDone) { cester_assert_true(seekDone);return;} int setLocDone=setLoc(0, 4, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t completeTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(2, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(2, response2[0]);cester_assert_uint_eq(1, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);ramsyscall_printf("Basic seekP from 00:02:00 to 00:04:00: ack in %ius, complete in %ius\n", ackTime, completeTime);) CESTER_TEST(cdlSeekP2to71 |
| |
| | cester_assert_uint_eq (3, cause1) |
| |
| | cester_assert_uint_eq (2, cause2) |
| |
| | cester_assert_uint_eq (0xe0, cause2b) |
| |
| | cester_assert_uint_eq (2, response1[0]) |
| |
| | cester_assert_uint_eq (1, responseSize1) |
| |
| | cester_assert_uint_eq (2, response2[0]) |
| |
| | cester_assert_uint_eq (1, responseSize2) |
| |
| | cester_assert_uint_eq (0x38, ctrl3) |
| |
| | cester_assert_uint_eq (0x18, ctrl4) |
| |
| | cester_assert_uint_ge (ackTime, 500) |
| |
| | cester_assert_uint_lt (ackTime, 7000) |
| |
| | cester_assert_uint_ge (completeTime, 1000000) |
| |
| | ramsyscall_printf ("Basic seekP from 00:02:00 to 71:00:00: ack in %ius, complete in %ius\n", ackTime, completeTime) |
| |
| | CESTER_TEST (cdlSeekP2to85, test_instance, int resetDone=resetCDRom();if(!resetDone) { cester_assert_true(resetDone);return;} int seekDone=seekPTo(0, 2, 0);if(!seekDone) { cester_assert_true(seekDone);return;} int setLocDone=setLoc(0x85, 0, 0);if(!setLocDone) { cester_assert_true(setLocDone);return;} initializeTime();while(updateTime()< 50000);initializeTime();CDROM_REG0=0;CDROM_REG1=CDL_SEEKP;uint32_t ackTime=waitCDRomIRQ();uint8_t cause1=ackCDRomCause();uint8_t ctrl1=CDROM_REG0 &~3;uint8_t response1[16];uint8_t responseSize1=readResponse(response1);uint8_t ctrl2=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause1b=CDROM_REG3_UC;uint32_t errorTime=waitCDRomIRQ() - ackTime;uint8_t cause2=ackCDRomCause();uint8_t ctrl3=CDROM_REG0 &~3;uint8_t response2[16];uint8_t responseSize2=readResponse(response2);uint8_t ctrl4=CDROM_REG0 &~3;CDROM_REG0=1;uint8_t cause2b=CDROM_REG3_UC;cester_assert_uint_eq(3, cause1);cester_assert_uint_eq(5, cause2);cester_assert_uint_eq(0xe0, cause1b);cester_assert_uint_eq(0xe0, cause2b);cester_assert_uint_eq(2, response1[0]);cester_assert_uint_eq(1, responseSize1);cester_assert_uint_eq(6, response2[0]);cester_assert_uint_eq(16, response2[1]);cester_assert_uint_eq(2, responseSize2);cester_assert_uint_eq(0x38, ctrl1);cester_assert_uint_eq(0x18, ctrl2);cester_assert_uint_eq(0x38, ctrl3);cester_assert_uint_eq(0x18, ctrl4);cester_assert_uint_ge(ackTime, 500);cester_assert_uint_lt(ackTime, 7000);cester_assert_uint_ge(errorTime, 600000);ramsyscall_printf("Basic seekP from 00:02:00 to 85:00:00: ack in %ius, errored in %ius\n", ackTime, errorTime);) CESTER_TEST(cdlSeekP2to85AndNop |
| |
| | while (CDROM_REG0 &0x80) |
| |
| | cester_assert_uint_eq (3, cause1b) |
| |
| | cester_assert_uint_eq (5, cause2) |
| |
| | cester_assert_uint_eq (2, response1b[0]) |
| |
| | cester_assert_uint_eq (1, responseSize1b) |
| |
| | cester_assert_uint_eq (6, response2[0]) |
| |
| | cester_assert_uint_eq (0x10, response2[1]) |
| |
| | cester_assert_uint_eq (2, responseSize2) |
| |
| | cester_assert_uint_eq (0xb8, ctrl1) |
| |
| | cester_assert_uint_eq (0x38, ctrl1b) |
| |
| | cester_assert_uint_eq (0x98, ctrl2) |
| |
| | cester_assert_uint_ge (ackTime2, 500) |
| |
| | cester_assert_uint_lt (ackTime2, 7000) |
| |
| | cester_assert_uint_ge (errorTime, 600000) |
| |
| | ramsyscall_printf ("Basic seekP with Nop from 00:02:00 to 85:00:00: ack in %ius, errored in %ius\n", ackTime, errorTime) |
| |