[PATCH 2/2] fwts-test: add regression tests for MSCT

Ivan Hu ivan.hu at canonical.com
Thu Sep 11 06:57:28 UTC 2025


Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 Makefile.am                           |  2 +
 fwts-test/msct-0001/acpidump-0001.log | 37 +++++++++++++++++++
 fwts-test/msct-0001/acpidump-0002.log | 37 +++++++++++++++++++
 fwts-test/msct-0001/msct-0001.log     | 48 ++++++++++++++++++++++++
 fwts-test/msct-0001/msct-0002.log     | 53 +++++++++++++++++++++++++++
 fwts-test/msct-0001/test-0001.sh      | 23 ++++++++++++
 fwts-test/msct-0001/test-0002.sh      | 23 ++++++++++++
 7 files changed, 223 insertions(+)
 create mode 100644 fwts-test/msct-0001/acpidump-0001.log
 create mode 100644 fwts-test/msct-0001/acpidump-0002.log
 create mode 100644 fwts-test/msct-0001/msct-0001.log
 create mode 100644 fwts-test/msct-0001/msct-0002.log
 create mode 100755 fwts-test/msct-0001/test-0001.sh
 create mode 100755 fwts-test/msct-0001/test-0002.sh

diff --git a/Makefile.am b/Makefile.am
index 65388882..00c7b17a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -154,6 +154,8 @@ TESTS = fwts-test/acpidump-0001/test-0001.sh \
 	fwts-test/mpam-0001/test-0002.sh \
         fwts-test/mpst-0001/test-0001.sh \
         fwts-test/mpst-0001/test-0002.sh \
+        fwts-test/msct-0001/test-0001.sh \
+        fwts-test/msct-0001/test-0002.sh \
 	fwts-test/msdm-0001/test-0001.sh \
 	fwts-test/msdm-0001/test-0002.sh \
 	fwts-test/method-0001/test-0001.sh \
diff --git a/fwts-test/msct-0001/acpidump-0001.log b/fwts-test/msct-0001/acpidump-0001.log
new file mode 100644
index 00000000..ad3f7776
--- /dev/null
+++ b/fwts-test/msct-0001/acpidump-0001.log
@@ -0,0 +1,37 @@
+FACS @ 0x00000000
+  0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  FACS at ...........
+  0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+
+FACP @ 0x00000000
+  0000: 46 41 43 50 f4 00 00 00 03 f9 41 4d 44 20 20 20  FACP......AMD   
+  0010: 47 55 41 4d 20 20 20 20 00 00 04 06 41 4d 44 20  GUAM    ....AMD 
+  0020: 40 42 0f 00 c0 2f e9 af 92 47 e8 af 00 02 09 00  @B.../...G......
+  0030: b0 00 00 00 f0 f1 00 00 00 80 00 00 00 00 00 00  ................
+  0040: 04 80 00 00 00 00 00 00 00 82 00 00 08 80 00 00  ................
+  0050: 20 80 00 00 00 00 00 00 04 02 01 04 08 00 00 00   ...............
+  0060: 65 00 e9 03 00 00 00 00 01 00 0d 00 32 00 00 00  e...........2...
+  0070: a5 c1 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0080: 00 00 00 00 c0 2f e9 af 00 00 00 00 92 47 e8 af  ...../.......G..
+  0090: 00 00 00 00 01 20 00 00 00 80 00 00 00 00 00 00  ..... ..........
+  00a0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  ................
+  00b0: 04 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  00c0: 00 00 00 00 01 08 00 00 00 82 00 00 00 00 00 00  ................
+  00d0: 01 20 00 00 08 80 00 00 00 00 00 00 01 40 00 00  . ........... at ..
+  00e0: 20 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ...............
+  00f0: 00 00 00 00                                      ....
+
+MSCT @ 0x0000000000000000
+  0000: 4D 53 43 54 90 00 00 00 01 B7 49 4E 54 45 4C 20  MSCT......INTEL 
+  0010: 54 45 4D 50 4C 41 54 45 01 00 00 00 49 4E 54 4C  TEMPLATE....INTL
+  0020: 28 05 10 20 38 00 00 00 03 00 00 00 00 00 00 00  (.. 8...........
+  0030: FF FF FF FF FF 0F 00 00 01 16 00 00 00 00 03 00  ................
+  0040: 00 00 10 00 00 00 00 00 00 00 40 00 00 00 01 16  .......... at .....
+  0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0060: 00 00 00 00 01 16 00 00 00 00 00 00 00 00 00 00  ................
+  0070: 00 00 00 00 00 00 00 00 00 00 01 16 00 00 00 00  ................
+  0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+
+
diff --git a/fwts-test/msct-0001/acpidump-0002.log b/fwts-test/msct-0001/acpidump-0002.log
new file mode 100644
index 00000000..1a46a290
--- /dev/null
+++ b/fwts-test/msct-0001/acpidump-0002.log
@@ -0,0 +1,37 @@
+FACS @ 0x00000000
+  0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  FACS at ...........
+  0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+
+FACP @ 0x00000000
+  0000: 46 41 43 50 f4 00 00 00 03 f9 41 4d 44 20 20 20  FACP......AMD   
+  0010: 47 55 41 4d 20 20 20 20 00 00 04 06 41 4d 44 20  GUAM    ....AMD 
+  0020: 40 42 0f 00 c0 2f e9 af 92 47 e8 af 00 02 09 00  @B.../...G......
+  0030: b0 00 00 00 f0 f1 00 00 00 80 00 00 00 00 00 00  ................
+  0040: 04 80 00 00 00 00 00 00 00 82 00 00 08 80 00 00  ................
+  0050: 20 80 00 00 00 00 00 00 04 02 01 04 08 00 00 00   ...............
+  0060: 65 00 e9 03 00 00 00 00 01 00 0d 00 32 00 00 00  e...........2...
+  0070: a5 c1 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0080: 00 00 00 00 c0 2f e9 af 00 00 00 00 92 47 e8 af  ...../.......G..
+  0090: 00 00 00 00 01 20 00 00 00 80 00 00 00 00 00 00  ..... ..........
+  00a0: 00 00 00 00 00 00 00 00 00 00 00 00 01 10 00 00  ................
+  00b0: 04 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  00c0: 00 00 00 00 01 08 00 00 00 82 00 00 00 00 00 00  ................
+  00d0: 01 20 00 00 08 80 00 00 00 00 00 00 01 40 00 00  . ........... at ..
+  00e0: 20 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ...............
+  00f0: 00 00 00 00                                      ....
+
+MSCT @ 0x0000000000000000
+  0000: 4D 53 43 54 90 00 00 00 01 B7 49 4E 54 45 4C 20  MSCT......INTEL 
+  0010: 54 45 4D 50 4C 41 54 45 01 00 00 00 49 4E 54 4C  TEMPLATE....INTL
+  0020: 28 05 10 20 38 00 00 00 01 00 00 00 00 00 00 00  (.. 8...........
+  0030: FF FF FF FF FF 0F 00 00 01 16 00 00 00 00 03 00  ................
+  0040: 00 00 10 00 00 00 00 00 00 00 40 00 00 00 01 16  .......... at .....
+  0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+  0060: 00 00 00 00 01 16 00 00 00 00 00 00 00 00 00 00  ................
+  0070: 00 00 00 00 00 00 00 00 00 00 01 16 00 00 00 00  ................
+  0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+
+
diff --git a/fwts-test/msct-0001/msct-0001.log b/fwts-test/msct-0001/msct-0001.log
new file mode 100644
index 00000000..b0721376
--- /dev/null
+++ b/fwts-test/msct-0001/msct-0001.log
@@ -0,0 +1,48 @@
+msct            msct: MSCT Maximum System Characteristics Table test.
+msct            ----------------------------------------------------------
+msct            Test 1 of 1: MSCT Maximum System Characteristics Table
+msct            test.
+msct            MSCT Max System Characteristics Table:
+msct              Proximity Offset:      0x00000038
+msct              Max Proximity Domains: 0x00000003
+msct              Max Clock Domains:     0x00000000
+msct              Max Physical Address:  0x00000fffffffffff
+msct            
+msct              Proximity Domain 00
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000003
+msct                Max Processor Capacity: 0x00000010
+msct                Max Memory Capacity:    0x0000004000000000
+msct            
+msct              Proximity Domain 01
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct              Proximity Domain 02
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct              Proximity Domain 03
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct            PASSED: Test 1, No issues found in MSCT table.
+msct            
+msct            ==========================================================
+msct            1 passed, 0 failed, 0 warning, 0 aborted, 0 skipped, 0
+msct            info only.
+msct            ==========================================================
diff --git a/fwts-test/msct-0001/msct-0002.log b/fwts-test/msct-0001/msct-0002.log
new file mode 100644
index 00000000..1367a38a
--- /dev/null
+++ b/fwts-test/msct-0001/msct-0002.log
@@ -0,0 +1,53 @@
+msct            msct: MSCT Maximum System Characteristics Table test.
+msct            ----------------------------------------------------------
+msct            Test 1 of 1: MSCT Maximum System Characteristics Table
+msct            test.
+msct            MSCT Max System Characteristics Table:
+msct              Proximity Offset:      0x00000038
+msct              Max Proximity Domains: 0x00000001
+msct              Max Clock Domains:     0x00000000
+msct              Max Physical Address:  0x00000fffffffffff
+msct            FAILED [MEDIUM] MSCTBadTableLength: Test 1, MSCT table
+msct            length is larger than expected for the offset that
+msct            includes the maximum number of proximity domains
+msct            FAILED [MEDIUM] MSCTBadProimityDomains: Test 1, MSCT's max
+msct            number of proximity domains is 0x1, but it has 0x4
+msct            Proximity Domain Information Structures
+msct            
+msct              Proximity Domain 00
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000003
+msct                Max Processor Capacity: 0x00000010
+msct                Max Memory Capacity:    0x0000004000000000
+msct            
+msct              Proximity Domain 01
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct              Proximity Domain 02
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct              Proximity Domain 03
+msct                Revision:               0x01
+msct                Length:                 0x16
+msct                Domain Range (low):     0x00000000
+msct                Domain Range (high):    0x00000000
+msct                Max Processor Capacity: 0x00000000
+msct                Max Memory Capacity:    0x0000000000000000
+msct            
+msct            
+msct            ==========================================================
+msct            0 passed, 2 failed, 0 warning, 0 aborted, 0 skipped, 0
+msct            info only.
+msct            ==========================================================
diff --git a/fwts-test/msct-0001/test-0001.sh b/fwts-test/msct-0001/test-0001.sh
new file mode 100755
index 00000000..c1aebfb3
--- /dev/null
+++ b/fwts-test/msct-0001/test-0001.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+TEST="Test acpitables against MSCT"
+NAME=test-0001.sh
+TMPLOG=$TMP/msct.log.$$
+
+$FWTS --show-tests | grep msct > /dev/null
+if [ $? -eq 1 ]; then
+	echo SKIP: $TEST, $NAME
+	exit 77
+fi
+
+$FWTS --log-format="%line %owner " -w 80 --dumpfile=$FWTSTESTDIR/msct-0001/acpidump-0001.log msct - | cut -c7- | grep "^msct" > $TMPLOG
+diff $TMPLOG $FWTSTESTDIR/msct-0001/msct-0001.log >> $FAILURE_LOG
+ret=$?
+if [ $ret -eq 0 ]; then
+	echo PASSED: $TEST, $NAME
+else
+	echo FAILED: $TEST, $NAME
+fi
+
+rm $TMPLOG
+exit $ret
diff --git a/fwts-test/msct-0001/test-0002.sh b/fwts-test/msct-0001/test-0002.sh
new file mode 100755
index 00000000..5ae52443
--- /dev/null
+++ b/fwts-test/msct-0001/test-0002.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+TEST="Test acpitables against MSCT"
+NAME=test-0002.sh
+TMPLOG=$TMP/msct.log.$$
+
+$FWTS --show-tests | grep msct > /dev/null
+if [ $? -eq 1 ]; then
+	echo SKIP: $TEST, $NAME
+	exit 77
+fi
+
+$FWTS --log-format="%line %owner " -w 80 --dumpfile=$FWTSTESTDIR/msct-0001/acpidump-0002.log msct - | cut -c7- | grep "^msct" > $TMPLOG
+diff $TMPLOG $FWTSTESTDIR/msct-0001/msct-0002.log >> $FAILURE_LOG
+ret=$?
+if [ $ret -eq 0 ]; then
+	echo PASSED: $TEST, $NAME
+else
+	echo FAILED: $TEST, $NAME
+fi
+
+rm $TMPLOG
+exit $ret
-- 
2.34.1




More information about the fwts-devel mailing list