def testDumpValidSingleACPITable(self): """Tests basic valid ACPI table dump.""" args = chipsec_types.DumpACPITableRequest(table_signature="DSDT") result = self.RunAction(self.grr_chipsec_module.DumpACPITable, args)[0] self.assertEqual(len(result.acpi_tables), 1) self.assertEqual(result.acpi_tables[0].table_address, 0xAABBCCDDEEFF0011) self.assertEqual(result.acpi_tables[0].table_blob, "\xFF" * 0xFF + "\xEE" * 0xFF)
def testDumpValidSingleACPITableVerbose(self): """Tests valid ACPI table dump with verbose mode enabled.""" args = chipsec_types.DumpACPITableRequest( table_signature="XSDT", logging=True) result = self.RunAction(self.grr_chipsec_module.DumpACPITable, args)[0] self.assertEqual(result.acpi_tables[0].table_address, 0x1122334455667788) self.assertEqual(result.acpi_tables[0].table_blob, "\xAB" * 0xFF + "\xCD" * 0xFF) self.assertNotEquals(self.chipsec_mock.logger.logger.call_count, 0)
def testDumpACPITableTriggeringDevMemError(self): """Tests the condition where OSError is triggered due to using /dev/mem. No exception should be raised, and the log describing the error should be returned. """ self.chipsec_mock.acpi.ACPI = MockACPIReadingRestrictedArea args = chipsec_types.DumpACPITableRequest(table_signature="FACP") self.RunAction(self.grr_chipsec_module.DumpACPITable, args) self.assertGreaterEqual(len(self.results), 1) self.assertNotEquals(len(self.results[0].logs), 0)
def testDumpACPITableUnknownChipsetVerbose(self): """Tests unknown chipset with verbose mode. If the chipset is unknown but verbose enabled, no exception is raised and at least one response should be returned with non-empty logs. """ self.chipsec_mock.chipset.cs = UnsupportedChipset args = chipsec_types.DumpACPITableRequest(table_signature="FACP", logging=True) self.RunAction(self.grr_chipsec_module.DumpACPITable, args) self.assertNotEquals(self.chipsec_mock.logger.logger.call_count, 0) self.assertGreaterEqual(len(self.results), 1) self.assertNotEquals(len(self.results[0].logs), 0)
def testDumpValidMultipleACPITables(self): """Tests valid ACPI table dump that would yield several tables.""" args = chipsec_types.DumpACPITableRequest(table_signature="SSDT") result = self.RunAction(self.grr_chipsec_module.DumpACPITable, args)[0] self.assertEqual(len(result.acpi_tables), 3) self.assertEqual(result.acpi_tables[0].table_address, 0x1234567890ABCDEF) self.assertEqual(result.acpi_tables[0].table_blob, "\xEF" * 0xFF + "\xFE" * 0xFF) self.assertEqual(result.acpi_tables[1].table_address, 0x2234567890ABCDEF) self.assertEqual(result.acpi_tables[1].table_blob, "\xDC" * 0xFF + "\xBA" * 0xFF) self.assertEqual(result.acpi_tables[2].table_address, 0x3234567890ABCDEF) self.assertEqual(result.acpi_tables[2].table_blob, "\xAA" * 0xFF + "\xBB" * 0xFF)
def testDumpACPITableUnknownChipset(self): """By default, if the chipset is unknown, no exception is raised.""" self.chipsec_mock.chipset.cs = UnsupportedChipset args = chipsec_types.DumpACPITableRequest(table_signature="FACP") self.RunAction(self.grr_chipsec_module.DumpACPITable, args)
def testDumpInvalidACPITable(self): """Tests dumping invalid ACPI table.""" args = chipsec_types.DumpACPITableRequest( table_signature="INVALID_TABLE") result = self.RunAction(self.grr_chipsec_module.DumpACPITable, args)[0] self.assertNotEquals(len(result.logs), 0)