mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
Merge pull request #18015 from keszybz/dmi-test-mesonification2
Dmi test mesonification2
This commit is contained in:
commit
af42881bf9
@ -184,15 +184,23 @@ if dmi_arches.contains(host_machine.cpu_family())
|
||||
endif
|
||||
|
||||
foreach prog : udev_id_progs
|
||||
executable(prog[0].split('/')[0],
|
||||
prog,
|
||||
include_directories : includes,
|
||||
c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
|
||||
dependencies : [versiondep],
|
||||
link_with : udev_link_with,
|
||||
install_rpath : udev_rpath,
|
||||
install : true,
|
||||
install_dir : udevlibexecdir)
|
||||
name = prog[0].split('/')[0]
|
||||
|
||||
exe = executable(
|
||||
name,
|
||||
prog,
|
||||
include_directories : includes,
|
||||
c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
|
||||
dependencies : [versiondep],
|
||||
link_with : udev_link_with,
|
||||
install_rpath : udev_rpath,
|
||||
install : true,
|
||||
install_dir : udevlibexecdir)
|
||||
|
||||
# TODO: let's use a dictionary instead as soon as we can depend on meson >= 0.47.
|
||||
if name == 'dmi_memory_id'
|
||||
dmi_memory_id_path = exe.full_path()
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if install_sysconfdir
|
||||
|
BIN
test/dmidecode-dumps/HP-Z600.bin
Normal file
BIN
test/dmidecode-dumps/HP-Z600.bin
Normal file
Binary file not shown.
94
test/dmidecode-dumps/HP-Z600.bin.txt
Normal file
94
test/dmidecode-dumps/HP-Z600.bin.txt
Normal file
@ -0,0 +1,94 @@
|
||||
MEMORY_ARRAY_LOCATION=System Board Or Motherboard
|
||||
MEMORY_ARRAY_EC_TYPE=Multi-bit ECC
|
||||
MEMORY_ARRAY_MAX_CAPACITY=12884901888
|
||||
MEMORY_ARRAY_NUM_DEVICES=3
|
||||
MEMORY_ARRAY_LOCATION=System Board Or Motherboard
|
||||
MEMORY_ARRAY_EC_TYPE=Multi-bit ECC
|
||||
MEMORY_ARRAY_MAX_CAPACITY=12884901888
|
||||
MEMORY_ARRAY_NUM_DEVICES=3
|
||||
MEMORY_DEVICE_0_TOTAL_WIDTH=72
|
||||
MEMORY_DEVICE_0_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_0_SIZE=8589934592
|
||||
MEMORY_DEVICE_0_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_0_LOCATOR=CPU0 DIMM1
|
||||
MEMORY_DEVICE_0_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_0_TYPE=DDR3
|
||||
MEMORY_DEVICE_0_TYPE_DETAIL=Synchronous Unbuffered (Unregistered)
|
||||
MEMORY_DEVICE_0_SPEED_MTS=1600
|
||||
MEMORY_DEVICE_0_MANUFACTURER=JEDEC ID:80 AD
|
||||
MEMORY_DEVICE_0_SERIAL_NUMBER=BC8A0E80
|
||||
MEMORY_DEVICE_0_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_0_PART_NUMBER=HMT41GU7AFR8C-PB
|
||||
MEMORY_DEVICE_0_RANK=2
|
||||
MEMORY_DEVICE_1_TOTAL_WIDTH=72
|
||||
MEMORY_DEVICE_1_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_1_SIZE=8589934592
|
||||
MEMORY_DEVICE_1_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_1_LOCATOR=CPU0 DIMM2
|
||||
MEMORY_DEVICE_1_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_1_TYPE=DDR3
|
||||
MEMORY_DEVICE_1_TYPE_DETAIL=Synchronous Unbuffered (Unregistered)
|
||||
MEMORY_DEVICE_1_SPEED_MTS=1600
|
||||
MEMORY_DEVICE_1_MANUFACTURER=JEDEC ID:80 AD
|
||||
MEMORY_DEVICE_1_SERIAL_NUMBER=86A6934F
|
||||
MEMORY_DEVICE_1_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_1_PART_NUMBER=HMT41GU7AFR8C-PB
|
||||
MEMORY_DEVICE_1_RANK=2
|
||||
MEMORY_DEVICE_2_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_2_PRESENT=0
|
||||
MEMORY_DEVICE_2_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_2_LOCATOR=CPU0 DIMM3
|
||||
MEMORY_DEVICE_2_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_2_TYPE=DDR3
|
||||
MEMORY_DEVICE_2_TYPE_DETAIL=Synchronous
|
||||
MEMORY_DEVICE_2_MANUFACTURER=JEDEC ID:
|
||||
MEMORY_DEVICE_2_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_3_TOTAL_WIDTH=72
|
||||
MEMORY_DEVICE_3_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_3_SIZE=8589934592
|
||||
MEMORY_DEVICE_3_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_3_LOCATOR=CPU1 DIMM1
|
||||
MEMORY_DEVICE_3_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_3_TYPE=DDR3
|
||||
MEMORY_DEVICE_3_TYPE_DETAIL=Synchronous Unbuffered (Unregistered)
|
||||
MEMORY_DEVICE_3_SPEED_MTS=1600
|
||||
MEMORY_DEVICE_3_MANUFACTURER=JEDEC ID:80 AD
|
||||
MEMORY_DEVICE_3_SERIAL_NUMBER=A18A0E80
|
||||
MEMORY_DEVICE_3_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_3_PART_NUMBER=HMT41GU7AFR8C-PB
|
||||
MEMORY_DEVICE_3_RANK=2
|
||||
MEMORY_DEVICE_4_TOTAL_WIDTH=72
|
||||
MEMORY_DEVICE_4_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_4_SIZE=8589934592
|
||||
MEMORY_DEVICE_4_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_4_LOCATOR=CPU1 DIMM2
|
||||
MEMORY_DEVICE_4_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_4_TYPE=DDR3
|
||||
MEMORY_DEVICE_4_TYPE_DETAIL=Synchronous Unbuffered (Unregistered)
|
||||
MEMORY_DEVICE_4_SPEED_MTS=1600
|
||||
MEMORY_DEVICE_4_MANUFACTURER=JEDEC ID:80 AD
|
||||
MEMORY_DEVICE_4_SERIAL_NUMBER=7D8A0E80
|
||||
MEMORY_DEVICE_4_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_4_PART_NUMBER=HMT41GU7AFR8C-PB
|
||||
MEMORY_DEVICE_4_RANK=2
|
||||
MEMORY_DEVICE_5_DATA_WIDTH=64
|
||||
MEMORY_DEVICE_5_PRESENT=0
|
||||
MEMORY_DEVICE_5_FORM_FACTOR=DIMM
|
||||
MEMORY_DEVICE_5_LOCATOR=CPU1 DIMM3
|
||||
MEMORY_DEVICE_5_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_5_TYPE=DDR3
|
||||
MEMORY_DEVICE_5_TYPE_DETAIL=Synchronous
|
||||
MEMORY_DEVICE_5_MANUFACTURER=JEDEC ID:
|
||||
MEMORY_DEVICE_5_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_6_TOTAL_WIDTH=2
|
||||
MEMORY_DEVICE_6_DATA_WIDTH=2
|
||||
MEMORY_DEVICE_6_SIZE=2097152
|
||||
MEMORY_DEVICE_6_FORM_FACTOR=Chip
|
||||
MEMORY_DEVICE_6_LOCATOR=SYSTEM ROM
|
||||
MEMORY_DEVICE_6_BANK_LOCATOR=Not Specified
|
||||
MEMORY_DEVICE_6_TYPE=Flash
|
||||
MEMORY_DEVICE_6_TYPE_DETAIL=Non-Volatile
|
||||
MEMORY_DEVICE_6_MANUFACTURER=Not Specified
|
||||
MEMORY_DEVICE_6_SERIAL_NUMBER=Not Specified
|
||||
MEMORY_DEVICE_6_ASSET_TAG=Not Specified
|
||||
MEMORY_DEVICE_6_PART_NUMBER=Not Specified
|
@ -124,6 +124,8 @@ else
|
||||
message('Skipping udev-test because perl is not available')
|
||||
endif
|
||||
|
||||
############################################################
|
||||
|
||||
if conf.get('ENABLE_HWDB') == 1
|
||||
hwdb_test_sh = find_program('hwdb-test.sh')
|
||||
if want_tests != 'false'
|
||||
@ -133,11 +135,29 @@ if conf.get('ENABLE_HWDB') == 1
|
||||
endif
|
||||
endif
|
||||
|
||||
if want_tests != false and dmi_arches.contains(host_machine.cpu_family())
|
||||
############################################################
|
||||
|
||||
if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())
|
||||
udev_dmi_memory_id_test = find_program('udev-dmi-memory-id-test.sh')
|
||||
test('udev-dmi-memory-id-test',
|
||||
udev_dmi_memory_id_test,
|
||||
timeout : 90)
|
||||
|
||||
if git.found()
|
||||
out = run_command(
|
||||
git,
|
||||
'--git-dir=@0@/.git'.format(project_source_root),
|
||||
'ls-files', ':/test/dmidecode-dumps/*.bin')
|
||||
else
|
||||
out = run_command(
|
||||
'sh', '-c', 'ls @0@/test/dmidecode-dumps/*.bin'.format(project_source_root))
|
||||
endif
|
||||
|
||||
foreach p : out.stdout().split()
|
||||
source = join_paths(project_source_root, p)
|
||||
name = 'dmidecode_' + p.split('/')[-1].split('.')[0]
|
||||
|
||||
test(name,
|
||||
udev_dmi_memory_id_test,
|
||||
args : [dmi_memory_id_path, source, source + '.txt'])
|
||||
endforeach
|
||||
endif
|
||||
|
||||
subdir('fuzz')
|
||||
|
@ -1,31 +1,17 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
export SYSTEMD_LOG_LEVEL=info
|
||||
ROOTDIR=$(dirname $(dirname $(readlink -f $0)))
|
||||
UDEV_DMI_MEMORY_ID=./src/udev/dmi_memory_id
|
||||
dmi_memory_id="$1"
|
||||
input="$2"
|
||||
expected="$3"
|
||||
|
||||
if [ ! -x "$UDEV_DMI_MEMORY_ID" ]; then
|
||||
echo "$UDEV_DMI_MEMORY_ID does not exist, please build first"
|
||||
exit 1
|
||||
fi
|
||||
output=$(mktemp --tmpdir "test-udev-dmi-memory-id.XXXXXXXXXX")
|
||||
trap "rm '$output'" EXIT INT QUIT PIPE
|
||||
|
||||
D=$(mktemp --tmpdir --directory "udev-dmi-memory-id.XXXXXXXXXX")
|
||||
trap "rm -rf '$D'" EXIT INT QUIT PIPE
|
||||
|
||||
for i in $ROOTDIR/test/dmidecode-dumps/*.bin ; do
|
||||
$("$UDEV_DMI_MEMORY_ID" -F "$i" 2>&1 > "$D"/out.txt) && rc= || rc=$?
|
||||
if [ -n "$rc" ]; then
|
||||
echo "$UDEV_DMI_MEMORY_ID returned $rc"
|
||||
exit $rc
|
||||
fi
|
||||
err=$(diff -u "$D"/out.txt "$i.txt" 2>&1) && rc= || rc=$?
|
||||
if [ -n "$rc" ]; then
|
||||
echo "Parsing DMI memory information from \"$i\" didn't match expected:"
|
||||
echo "$err"
|
||||
exit $rc
|
||||
fi
|
||||
done
|
||||
(
|
||||
set -x
|
||||
"$dmi_memory_id" -F "$input" >$output
|
||||
diff -u "$output" "$expected"
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user