# cper-generator This project allows you to generate pseudo-random CPER records for software testing purposes. The records are compliant (to an extent) with the CPER definitions present within UEFI Specification Appendix N. ## Usage An example usage of `cper-generator` is shown below. ``` cper-generator --out mycper.dump --sections generic dmarvtd ia32x64 arm ``` This command would generate a CPER log with a processor generic section, VT-d DMAr section, IA32x64 section and an ARM section, outputting to the given `mycper.dump` file. To see all available names and other command switches, you can run `cper-generator --help`. ## Caveats The generator is not completely random within the bounds of the specification, to make testing easier. - Validation bits are always set to "true" for **optional** fields, to ensure that translating from CPER binary -> JSON -> CPER binary yields the same binary output as started with, rather than changing due to optional fields being left out. - Parts of sections which are defined in other external specifications (i.e, not included in UEFI Appendix N) generally do not have their structures to specification, and are simply random bytes.