2023-04 [seminár] Testovací skript v xv6
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Seminár sa venuje praktickému fungovaniu testovacieho skriptu v projekte xv6, keďže hlavná téma (výnimky, backtrace a alarm) bola prebratá už v predchádzajúcom seminári z roku 2021. Vysvetľuje sa spúšťanie testov cez script grade-lab s konkrétnym názvom vetvy, nastavenie parametra timeout vo funkcii runCmd a jeho predvolená hodnota 30 sekúnd, ktorá sa pri náročnejších testoch (napríklad usertests) zvyšuje. Zdôrazňuje sa dôležitosť priameho spúšťania testov v prostredí xv6 (napríklad cez qemu), ak zlyhávajú a nie je vidieť konkrétny výstup či chyba jadra. Spomína sa aj spôsob kontroly správnosti backtrace pomocou nástroja addr2line a odporúčanie nastaviť pri ladení v gdb konštantu CPUS na 1 kvôli prehľadnosti pri viacvláknovom behu. Na záver sa objasňuje slovenská terminológia — pojem 'výnimka' sa používa všeobecne pre všetky typy trapov (systémové volania, výnimky, prerušenia).
- - Testy sa spúšťajú príkazom make grade-lab s názvom konkrétnej vetvy (napr. traps).
- - Konkrétny test možno spustiť zadaním jeho názvu, pričom platí predvolený timeout 30 sekúnd (upraviteľný vo funkcii runCmd).
- - Pri zlyhaní testu je vhodné spustiť príslušný program priamo v xv6 (qemu) na zistenie výstupu alebo chyby jadra.
- - Backtrace test overuje správnosť návratových adries pomocou externého nástroja addr2line.
- - Pri ladení pomocou gdb v prostredí s viacerými CPU je vhodné nastaviť CPUS=1 pre stabilnejšie sledovanie kódu.
- - Pojem 'výnimka' sa v slovenskej terminológii používa všeobecne pre všetky typy trapov (systémové volania, exceptions, interrupty).
- - Úlohy backtrace a alarm sú podrobnejšie vysvetlené v seminári z roku 2021, sekcia assembly bola z tohtoročného zadania odstránená.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky