Overall:(8 cases) - Test method * Preparation + Disable mcelog cron job * Add cases/soft-inj/panic_npcc/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_npcc/cases.sh 1. fatal severity - Objective: * Test severity comparison logic of MCE handler - Code path tested: * do_machine_check() * mce_start() * mce_end() * mce_severity() * mce_regin() for_each_possible_loops loops(check mce-severity message) * mce_panic() * mce_log() * print_mce() - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/fatal_severity - 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 "Processor context corrupt" 2. uncorrected - Objective: * Test MCE handler logic for EIPV MCE in kernel space - Code path tested: * Same as falta severity - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected - 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 "In kernel and no restart IP" 3. uncorrected timeout - Objective: * Test MCE handler timeout logic for EIPV MCE in kernel space - Code path tested: * do_machine_check() * mce_start() until timeout * mce_severity() * mce_panic("Fatal machine check on current CPU", ) * mce_log() * print_mce() - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_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 "In kernel and no restart IP" * Timeout message is "Some CPUs didn't answer in synchronization" 4. uncorrected without MCIP - Objective: * Test MCE handler logic for MCE without PCC, MCIP, EIPV and RIPV - Code path tested: * Same as fatal severity - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_mcip - 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 "MCIP not set in MCA handler" 5. uncorrect timeout without MCIP - Objective: * Test MCE handler timeout logic for MCE without PCC, MCIP, EIPV and RIPV - Code path tested: * Same as uncorrected timeout - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_mcip_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" * Kernel panic message is "MCIP not set in MCA handler" * Timeout message is "Some CPUs didn't answer in synchronization" 6. uncorrected without EIPV and RIPV - Objective: * Test MCE handler logic for EIPV and RIPV MCE in kernel space - Code path tested: * Same as uncorrected - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_eripv - 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 "Neither restart nor error IP" 7. uncorrected timeout without EIPV and RIPV - Objective: * Test MCE handler timout logic for EIPV|RIPV MCE in kernel space - Code path tested: * Same as uncorrected timeout - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_eripv_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" * Exception message is "In kernel and no restart IP" * Timeout message is "Some CPUs didn't answer in synchronization" 8. unknown - Objective: * Test logic for MCE from unknown source (external?) - Code path tested: * mce_reign(), mce_panic("Machine check from unknown source") branch * Others are same as fatal severity - Reference: * Inject data file: cases/soft-inj/panic_npcc/data/unknown - Expected result: * No warning or bug during kernel processing. * Kernel panic message is "Machine check from unknown source" * No exception and timeout message.