Overall: (3 cases) - Test method * Add cases/soft-inj/panic_noser/cases.sh into configuration file, and invoke a test driver on it. - Common * Test script of test cases in this file can be found in cases/soft-inj/panic_noser/cases.sh 1. uc_over - Objective: * Test MSR read logic of MCE handler * Test synchronization between monarch and subject * Test logic of uncorrected with UC and OVER - Code path tested: * do_machine_check() * mce_start() * mce_timeout() except if (*t <= 0) branch * mce_log() * mce_end() * mce_severity() * mce_reign() until mce_panic("Fatal Machine check",) * mce_panic() * print_mce() - Reference: * Inject data file: cases/soft-inj/panic_noser/data/uc_over - Expected result: * No warning or bug during kernel processing. * MCE records collected via kernel panic log is same as reference ones. * Kernel panic message is "Fatal Machine check" * Exception message is "Overflowed uncorrected" 2. uc_over_corrected - Objective: * Test synchronization between monarch and subject * Test logic of uncorrected and corrected * Test logic of uncorrected with UC and OVER * Test logic of corrected with EXCP - Code path tested: * do_machine_check() * mce_start() * mce_timeout() except if (*t <= 0) branch * mce_log() * mce_end() * mce_severity() * mce_reign() until mce_panic("Fatal Machine check",) * mce_panic() * print_mce() - Reference: * Inject data file: cases/soft-inj/panic_noser/data/uc_over_corrected - Expected result: * No warning or bug during kernel processing. * MCE records collected via kernel panic log is same as reference ones. * Kernel panic message is "Fatal Machine check" * Exception message is "Overflowed uncorrected" 3. uc_over_timeout - Objective: * Test logic of timeout during monarch/subject synchronization * Test logic of uncorrected with UC and OVER - Code path tested: * do_machine_check() * mce_start() * mce_timeout() if (*t <= 0) branch * mce_log() * mce_severity() * mce_panic("Fatal machine check on current CPU",) * print_mce() - Reference: * Inject data file: cases/soft-inj/panic_noser/data/uc_over_timeout - Expected result: * No warning or bug during kernel processing. * MCE records collected via kernel panic log is same as reference ones. * Kernel panic message is "Fatal machine check on current CPU" * Exception message is "Overflowed uncorrected" * Timeout message is "Some CPUs didn't answer in synchronization"