Overall: (6 cases)

- Test method
  * Add cases/soft-inj/panic_ucr/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_ucr/cases.sh

1. s0_ar1

- Objective:
  * Test MSR read logic of MCE handler
  * Test synchronization between monarch and subject
- 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_ucr/data/s0_ar1
- 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 "Illegal combination (UCNA with AR=1)"


2. srar_over

- Objective:
  * Test logic of timeout during monarch/subject synchronization
- 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_ucr/data/srar_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 "Action required with lost events"


3. srar_unknown

- Objective:
  * Test fatal MCE occur in IRQ context
- 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_ucr/data/srar_unknown
- 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 "Action required; unknown MCACOD"


4. srar_no_en

- Objective:
  * Test fatal MCE occur
- 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("Machine check from unknown source",)
  * mce_panic()
  * print_mce()
- Reference:
  * Inject data file: cases/soft-inj/panic_ucr/data/srar_no_en
  * Reference MCE records: cases/soft-inj/panic_ucr/refer/srar_no_en
- 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 "Machine check from unknown source"

5.srao_ewb_noripv
- Objective:
  * Test MCE handler logic for EIPV and RIPV MCE in kernel space
- 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/recoverable_ucr/data/srao_ewb_noripv
- 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"

6.srao_mem_scrub_noripv
- Objective:
  * Test MCE handler logic for EIPV and RIPV MCE in kernel space
- Code path tested:
  * the same as srao_ewb_noripv
- Reference:
  * Inject data file:
  * cases/soft-inj/recoverable_ucr/data/srao_mem_scrub_noripv
- 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"

