summaryrefslogtreecommitdiff
path: root/source/tools/acpiexec/aeexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpiexec/aeexec.c')
-rw-r--r--source/tools/acpiexec/aeexec.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c
index 452943dc3..84df25caf 100644
--- a/source/tools/acpiexec/aeexec.c
+++ b/source/tools/acpiexec/aeexec.c
@@ -160,6 +160,10 @@ static void
AeTestSleepData (
void);
+static void
+AeTestStringConversions (
+ void);
+
#if (!ACPI_REDUCED_HARDWARE)
static void
AfInstallGpeBlock (
@@ -658,6 +662,98 @@ AeTestSleepData (
}
}
+/******************************************************************************
+ *
+ * FUNCTION: AeTestStringConversions
+ *
+ * DESCRIPTION: Exercise AcpiUtStrtoul64
+ *
+ *****************************************************************************/
+
+static void
+AeTestStringConversions (
+ void)
+{
+ UINT64 TempGpeNumber;
+ UINT64 Value;
+ ACPI_STATUS Status;
+
+
+ /* Check for GPE 2-digit values (_Lxx and _Exx) */
+
+ Status = AcpiUtStrtoul64 ("JK", 16, ACPI_MAX32_BYTE_WIDTH,
+ &TempGpeNumber);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 ("44", 16, ACPI_MAX32_BYTE_WIDTH,
+ &TempGpeNumber);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("8B", 16, ACPI_MAX32_BYTE_WIDTH,
+ &TempGpeNumber);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("CC", 16, ACPI_MAX32_BYTE_WIDTH,
+ &TempGpeNumber);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("DY", 16, ACPI_MAX32_BYTE_WIDTH,
+ &TempGpeNumber);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ /* Normal conversions */
+
+ Status = AcpiUtStrtoul64 ("0x", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 (" utututututu", 16, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 (" ", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_PARAMETER);
+
+ Status = AcpiUtStrtoul64 ("", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_PARAMETER);
+
+ Status = AcpiUtStrtoul64 (NULL, 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_PARAMETER);
+
+ Status = AcpiUtStrtoul64 ("0x 012345678AAAAAAAyyyy", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 ("0x012345678AAAAAAAyyyy", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 ("0123456789ABCDEF", 16, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("0x0123456789ABCDEF", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("0x01WXYZ", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_BAD_HEX_CONSTANT);
+
+ Status = AcpiUtStrtoul64 ("0x01234567", 0, ACPI_MAX32_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("012345678", 0, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ Status = AcpiUtStrtoul64 ("012345678", 10, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+
+ /* Overflow */
+
+ Status = AcpiUtStrtoul64 ("01234567877777777777777777777777777", 10, ACPI_MAX32_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_CONVERSION_OVERFLOW);
+
+ Status = AcpiUtStrtoul64 ("0x12345678AAAAAAAAAAAAAAAAAAAA", 16, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_STATUS (AcpiUtStrtoul64, Status, AE_CONVERSION_OVERFLOW);
+
+ Status = AcpiUtStrtoul64 ("0x0000000012345678BBBBCCCC", 16, ACPI_MAX64_BYTE_WIDTH, &Value);
+ ACPI_CHECK_OK (AcpiUtStrtoul64, Status);
+}
+
/******************************************************************************
*
@@ -936,5 +1032,9 @@ AeMiscellaneousTests (
Status = AcpiReleaseGlobalLock (LockHandle2);
ACPI_CHECK_OK (AcpiReleaseGlobalLock, Status);
+ /* Test conversion routines */
+
+ AeTestStringConversions ();
+
#endif /* !ACPI_REDUCED_HARDWARE */
}