mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-06 09:55:46 +00:00
tests: Add tests for sysinfo
Test cases for virSysinfoRead. Initially, there are tests for x86 (DMI based) and s390 (/proc/... based). In lack of PPC data, I have stubbed out the test for it, but it can be added with a minimal effort. Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
This commit is contained in:
parent
cab938c993
commit
347a712ab1
2
cfg.mk
2
cfg.mk
@ -821,7 +821,7 @@ exclude_file_name_regexp--sc_require_config_h = ^(examples/|tools/virsh-$(_virsh
|
|||||||
exclude_file_name_regexp--sc_require_config_h_first = ^(examples/|tools/virsh-$(_virsh_includes)\.c$$)
|
exclude_file_name_regexp--sc_require_config_h_first = ^(examples/|tools/virsh-$(_virsh_includes)\.c$$)
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_trailing_blank = \
|
exclude_file_name_regexp--sc_trailing_blank = \
|
||||||
(/qemuhelpdata/|\.(fig|gif|ico|png)$$)
|
(/qemuhelpdata/|/sysinfodata/.*\.data|\.(fig|gif|ico|png)$$)
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_unmarked_diagnostics = \
|
exclude_file_name_regexp--sc_unmarked_diagnostics = \
|
||||||
^(docs/apibuild.py|tests/virt-aa-helper-test)$$
|
^(docs/apibuild.py|tests/virt-aa-helper-test)$$
|
||||||
|
@ -76,6 +76,7 @@ EXTRA_DIST = \
|
|||||||
storagevolschematest \
|
storagevolschematest \
|
||||||
storagevolxml2xmlin \
|
storagevolxml2xmlin \
|
||||||
storagevolxml2xmlout \
|
storagevolxml2xmlout \
|
||||||
|
sysinfodata \
|
||||||
test-lib.sh \
|
test-lib.sh \
|
||||||
vmx2xmldata \
|
vmx2xmldata \
|
||||||
xencapsdata \
|
xencapsdata \
|
||||||
@ -96,6 +97,7 @@ test_programs = virshtest sockettest \
|
|||||||
virbitmaptest \
|
virbitmaptest \
|
||||||
virlockspacetest \
|
virlockspacetest \
|
||||||
virstringtest \
|
virstringtest \
|
||||||
|
sysinfotest \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
if WITH_SECDRIVER_SELINUX
|
if WITH_SECDRIVER_SELINUX
|
||||||
@ -637,6 +639,10 @@ shunloadtest_SOURCES = \
|
|||||||
shunloadtest_LDADD = $(LIB_PTHREAD)
|
shunloadtest_LDADD = $(LIB_PTHREAD)
|
||||||
shunloadtest_DEPENDENCIES = libshunload.la
|
shunloadtest_DEPENDENCIES = libshunload.la
|
||||||
|
|
||||||
|
sysinfotest_SOURCES = \
|
||||||
|
sysinfotest.c testutils.h testutils.c
|
||||||
|
sysinfotest_LDADD = $(LDADDS)
|
||||||
|
|
||||||
if WITH_CIL
|
if WITH_CIL
|
||||||
CILOPTFLAGS =
|
CILOPTFLAGS =
|
||||||
CILOPTINCS =
|
CILOPTINCS =
|
||||||
|
3
tests/sysinfodata/dmidecode.sh
Executable file
3
tests/sysinfodata/dmidecode.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
DATAFILE=`dirname $0`/x86sysinfo.data
|
||||||
|
cat $DATAFILE
|
12
tests/sysinfodata/s390cpuinfo.data
Normal file
12
tests/sysinfodata/s390cpuinfo.data
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
vendor_id : IBM/S390
|
||||||
|
# processors : 3
|
||||||
|
bogomips per cpu: 14367.00
|
||||||
|
features : esan3 zarch stfle msa ldisp eimm dfp etf3eh highgprs
|
||||||
|
cache0 : level=1 type=Data scope=Private size=128K line_size=256 associativity=8
|
||||||
|
cache1 : level=1 type=Instruction scope=Private size=64K line_size=256 associativity=4
|
||||||
|
cache2 : level=2 type=Unified scope=Private size=1536K line_size=256 associativity=12
|
||||||
|
cache3 : level=3 type=Unified scope=Shared size=24576K line_size=256 associativity=12
|
||||||
|
cache4 : level=4 type=Unified scope=Shared size=196608K line_size=256 associativity=24
|
||||||
|
processor 0: version = FF, identification = 000123, machine = 2817
|
||||||
|
processor 1: version = FF, identification = 100123, machine = 2817
|
||||||
|
processor 2: version = FF, identification = 200123, machine = 2817
|
114
tests/sysinfodata/s390sysinfo.data
Normal file
114
tests/sysinfodata/s390sysinfo.data
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
Manufacturer: IBM
|
||||||
|
Type: 2817
|
||||||
|
Model: 703 M66
|
||||||
|
Sequence Code: 0000000000012345
|
||||||
|
Plant: 02
|
||||||
|
Model Capacity: 703 00000408
|
||||||
|
Model Perm. Capacity: 703 00000408
|
||||||
|
Model Temp. Capacity: 703 00000408
|
||||||
|
Nominal Cap. Rating: 00000408
|
||||||
|
Nominal Perm. Rating: 00000408
|
||||||
|
Nominal Temp. Rating: 00000408
|
||||||
|
Capacity Adj. Ind.: 100
|
||||||
|
Capacity Ch. Reason: 0
|
||||||
|
Capacity Transient: 0
|
||||||
|
Type 1 Percentage: 0
|
||||||
|
Type 2 Percentage: 0
|
||||||
|
Type 3 Percentage: 0
|
||||||
|
Type 4 Percentage: 0
|
||||||
|
Type 5 Percentage: 0
|
||||||
|
|
||||||
|
CPUs Total: 69
|
||||||
|
CPUs Configured: 3
|
||||||
|
CPUs Standby: 0
|
||||||
|
CPUs Reserved: 66
|
||||||
|
Capability: 696
|
||||||
|
Nominal Capability: 696
|
||||||
|
Secondary Capability: 696
|
||||||
|
Adjustment 02-way: 61900
|
||||||
|
Adjustment 03-way: 60280
|
||||||
|
Adjustment 04-way: 59080
|
||||||
|
Adjustment 05-way: 57740
|
||||||
|
Adjustment 06-way: 56900
|
||||||
|
Adjustment 07-way: 56040
|
||||||
|
Adjustment 08-way: 55120
|
||||||
|
Adjustment 09-way: 53950
|
||||||
|
Adjustment 10-way: 52980
|
||||||
|
Adjustment 11-way: 52000
|
||||||
|
Adjustment 12-way: 51080
|
||||||
|
Adjustment 13-way: 50380
|
||||||
|
Adjustment 14-way: 49600
|
||||||
|
Adjustment 15-way: 48760
|
||||||
|
Adjustment 16-way: 47860
|
||||||
|
Adjustment 17-way: 47310
|
||||||
|
Adjustment 18-way: 46860
|
||||||
|
Adjustment 19-way: 46300
|
||||||
|
Adjustment 20-way: 46020
|
||||||
|
Adjustment 21-way: 45520
|
||||||
|
Adjustment 22-way: 45260
|
||||||
|
Adjustment 23-way: 44960
|
||||||
|
Adjustment 24-way: 44690
|
||||||
|
Adjustment 25-way: 44390
|
||||||
|
Adjustment 26-way: 44140
|
||||||
|
Adjustment 27-way: 43860
|
||||||
|
Adjustment 28-way: 43460
|
||||||
|
Adjustment 29-way: 43200
|
||||||
|
Adjustment 30-way: 42900
|
||||||
|
Adjustment 31-way: 42620
|
||||||
|
Adjustment 32-way: 42360
|
||||||
|
Adjustment 33-way: 42060
|
||||||
|
Adjustment 34-way: 41800
|
||||||
|
Adjustment 35-way: 41600
|
||||||
|
Adjustment 36-way: 41440
|
||||||
|
Adjustment 37-way: 41280
|
||||||
|
Adjustment 38-way: 41040
|
||||||
|
Adjustment 39-way: 40820
|
||||||
|
Adjustment 40-way: 40570
|
||||||
|
Adjustment 41-way: 40350
|
||||||
|
Adjustment 42-way: 40260
|
||||||
|
Adjustment 43-way: 40060
|
||||||
|
Adjustment 44-way: 39910
|
||||||
|
Adjustment 45-way: 39750
|
||||||
|
Adjustment 46-way: 39540
|
||||||
|
Adjustment 47-way: 39360
|
||||||
|
Adjustment 48-way: 39260
|
||||||
|
Adjustment 49-way: 39180
|
||||||
|
Adjustment 50-way: 39000
|
||||||
|
Adjustment 51-way: 38840
|
||||||
|
Adjustment 52-way: 38740
|
||||||
|
Adjustment 53-way: 38640
|
||||||
|
Adjustment 54-way: 38520
|
||||||
|
Adjustment 55-way: 38440
|
||||||
|
Adjustment 56-way: 38330
|
||||||
|
Adjustment 57-way: 38240
|
||||||
|
Adjustment 58-way: 38160
|
||||||
|
Adjustment 59-way: 38080
|
||||||
|
Adjustment 60-way: 37960
|
||||||
|
Adjustment 61-way: 37880
|
||||||
|
Adjustment 62-way: 37780
|
||||||
|
Adjustment 63-way: 37680
|
||||||
|
Adjustment 64-way: 37580
|
||||||
|
Adjustment 65-way: 37480
|
||||||
|
Adjustment 66-way: 37360
|
||||||
|
Adjustment 67-way: 37240
|
||||||
|
Adjustment 68-way: 37120
|
||||||
|
Adjustment 69-way: 36970
|
||||||
|
|
||||||
|
LPAR Number: 47
|
||||||
|
LPAR Characteristics: Shared
|
||||||
|
LPAR Name: VIRLP01
|
||||||
|
LPAR Adjustment: 253
|
||||||
|
LPAR CPUs Total: 16
|
||||||
|
LPAR CPUs Configured: 16
|
||||||
|
LPAR CPUs Standby: 0
|
||||||
|
LPAR CPUs Reserved: 0
|
||||||
|
LPAR CPUs Dedicated: 0
|
||||||
|
LPAR CPUs Shared: 16
|
||||||
|
|
||||||
|
VM00 Name: VIRVM01
|
||||||
|
VM00 Control Program: z/VM 6.2.0
|
||||||
|
VM00 Adjustment: 187
|
||||||
|
VM00 CPUs Total: 3
|
||||||
|
VM00 CPUs Configured: 3
|
||||||
|
VM00 CPUs Standby: 0
|
||||||
|
VM00 CPUs Reserved: 0
|
25
tests/sysinfodata/s390sysinfo.expect
Normal file
25
tests/sysinfodata/s390sysinfo.expect
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<sysinfo type='smbios'>
|
||||||
|
<system>
|
||||||
|
<entry name='manufacturer'>IBM</entry>
|
||||||
|
<entry name='serial'>0000000000012345</entry>
|
||||||
|
<entry name='family'>2817</entry>
|
||||||
|
</system>
|
||||||
|
<processor>
|
||||||
|
<entry name='family'>2817</entry>
|
||||||
|
<entry name='manufacturer'>IBM/S390</entry>
|
||||||
|
<entry name='version'>FF</entry>
|
||||||
|
<entry name='serial_number'>000123</entry>
|
||||||
|
</processor>
|
||||||
|
<processor>
|
||||||
|
<entry name='family'>2817</entry>
|
||||||
|
<entry name='manufacturer'>IBM/S390</entry>
|
||||||
|
<entry name='version'>FF</entry>
|
||||||
|
<entry name='serial_number'>100123</entry>
|
||||||
|
</processor>
|
||||||
|
<processor>
|
||||||
|
<entry name='family'>2817</entry>
|
||||||
|
<entry name='manufacturer'>IBM/S390</entry>
|
||||||
|
<entry name='version'>FF</entry>
|
||||||
|
<entry name='serial_number'>200123</entry>
|
||||||
|
</processor>
|
||||||
|
</sysinfo>
|
83
tests/sysinfodata/x86sysinfo.data
Normal file
83
tests/sysinfodata/x86sysinfo.data
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
BIOS Information
|
||||||
|
Vendor: LENOVO
|
||||||
|
Version: 6DET62WW (3.12 )
|
||||||
|
Release Date: 01/12/2010
|
||||||
|
Address: 0xE0000
|
||||||
|
Runtime Size: 128 kB
|
||||||
|
ROM Size: 8192 kB
|
||||||
|
Characteristics:
|
||||||
|
PCI is supported
|
||||||
|
PC Card (PCMCIA) is supported
|
||||||
|
PNP is supported
|
||||||
|
BIOS is upgradeable
|
||||||
|
BIOS shadowing is allowed
|
||||||
|
ESCD support is available
|
||||||
|
Boot from CD is supported
|
||||||
|
Selectable boot is supported
|
||||||
|
BIOS ROM is socketed
|
||||||
|
EDD is supported
|
||||||
|
ACPI is supported
|
||||||
|
USB legacy is supported
|
||||||
|
BIOS boot specification is supported
|
||||||
|
Targeted content distribution is supported
|
||||||
|
BIOS Revision: 3.18
|
||||||
|
Firmware Revision: 1.6
|
||||||
|
|
||||||
|
System Information
|
||||||
|
Manufacturer: LENOVO
|
||||||
|
Product Name: 7458AU2
|
||||||
|
Version: ThinkPad X200
|
||||||
|
Serial Number: L3AAK6G
|
||||||
|
UUID: 4CD00C81-4A85-11CB-88EC-A5A7A8F13986
|
||||||
|
Wake-up Type: Power Switch
|
||||||
|
SKU Number: Not Specified
|
||||||
|
Family: ThinkPad X200
|
||||||
|
|
||||||
|
Processor Information
|
||||||
|
Socket Designation: None
|
||||||
|
Type: Central Processor
|
||||||
|
Family: Other
|
||||||
|
Manufacturer: GenuineIntel
|
||||||
|
ID: 76 06 01 00 FF FB EB BF
|
||||||
|
Version: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
|
||||||
|
Voltage: 1.2 V
|
||||||
|
External Clock: 266 MHz
|
||||||
|
Max Speed: 2400 MHz
|
||||||
|
Current Speed: 2400 MHz
|
||||||
|
Status: Populated, Enabled
|
||||||
|
Upgrade: None
|
||||||
|
Serial Number: Not Specified
|
||||||
|
Asset Tag: Not Specified
|
||||||
|
Part Number: Not Specified
|
||||||
|
|
||||||
|
Memory Device
|
||||||
|
Total Width: 64 bits
|
||||||
|
Data Width: 64 bits
|
||||||
|
Size: 2048 MB
|
||||||
|
Form Factor: SODIMM
|
||||||
|
Set: None
|
||||||
|
Locator: DIMM 1
|
||||||
|
Bank Locator: Bank 0/1
|
||||||
|
Type: <OUT OF SPEC>
|
||||||
|
Type Detail: Synchronous
|
||||||
|
Speed: 1066 MHz (0.9 ns)
|
||||||
|
Manufacturer: 80CE
|
||||||
|
Serial Number: 46614E40
|
||||||
|
Asset Tag: 0841
|
||||||
|
Part Number: M471B5673DZ1-CF8
|
||||||
|
|
||||||
|
Memory Device
|
||||||
|
Total Width: 64 bits
|
||||||
|
Data Width: 64 bits
|
||||||
|
Size: 2048 MB
|
||||||
|
Form Factor: SODIMM
|
||||||
|
Set: None
|
||||||
|
Locator: DIMM 2
|
||||||
|
Bank Locator: Bank 2/3
|
||||||
|
Type: <OUT OF SPEC>
|
||||||
|
Type Detail: Synchronous
|
||||||
|
Speed: 1066 MHz (0.9 ns)
|
||||||
|
Manufacturer: 8551
|
||||||
|
Serial Number: 29057112
|
||||||
|
Asset Tag: 0839
|
||||||
|
Part Number: IMSH2GS13A1F1C-10F
|
53
tests/sysinfodata/x86sysinfo.expect
Normal file
53
tests/sysinfodata/x86sysinfo.expect
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<sysinfo type='smbios'>
|
||||||
|
<bios>
|
||||||
|
<entry name='vendor'>LENOVO</entry>
|
||||||
|
<entry name='version'>6DET62WW (3.12 )</entry>
|
||||||
|
<entry name='date'>01/12/2010</entry>
|
||||||
|
<entry name='release'>3.18</entry>
|
||||||
|
</bios>
|
||||||
|
<system>
|
||||||
|
<entry name='manufacturer'>LENOVO</entry>
|
||||||
|
<entry name='product'>7458AU2</entry>
|
||||||
|
<entry name='version'>ThinkPad X200</entry>
|
||||||
|
<entry name='serial'>L3AAK6G</entry>
|
||||||
|
<entry name='uuid'>4CD00C81-4A85-11CB-88EC-A5A7A8F13986</entry>
|
||||||
|
<entry name='sku'>Not Specified</entry>
|
||||||
|
<entry name='family'>ThinkPad X200</entry>
|
||||||
|
</system>
|
||||||
|
<processor>
|
||||||
|
<entry name='socket_destination'>None</entry>
|
||||||
|
<entry name='type'>Central Processor</entry>
|
||||||
|
<entry name='family'>Other</entry>
|
||||||
|
<entry name='manufacturer'>GenuineIntel</entry>
|
||||||
|
<entry name='version'>Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz</entry>
|
||||||
|
<entry name='external_clock'>266 MHz</entry>
|
||||||
|
<entry name='max_speed'>2400 MHz</entry>
|
||||||
|
<entry name='status'>Populated, Enabled</entry>
|
||||||
|
<entry name='serial_number'>Not Specified</entry>
|
||||||
|
<entry name='part_number'>Not Specified</entry>
|
||||||
|
</processor>
|
||||||
|
<memory_device>
|
||||||
|
<entry name='size'>2048 MB</entry>
|
||||||
|
<entry name='form_factor'>SODIMM</entry>
|
||||||
|
<entry name='locator'>DIMM 1</entry>
|
||||||
|
<entry name='bank_locator'>Bank 0/1</entry>
|
||||||
|
<entry name='type'><OUT OF SPEC></entry>
|
||||||
|
<entry name='type_detail'>Synchronous</entry>
|
||||||
|
<entry name='speed'>1066 MHz (0.9 ns)</entry>
|
||||||
|
<entry name='manufacturer'>80CE</entry>
|
||||||
|
<entry name='serial_number'>46614E40</entry>
|
||||||
|
<entry name='part_number'>M471B5673DZ1-CF8</entry>
|
||||||
|
</memory_device>
|
||||||
|
<memory_device>
|
||||||
|
<entry name='size'>2048 MB</entry>
|
||||||
|
<entry name='form_factor'>SODIMM</entry>
|
||||||
|
<entry name='locator'>DIMM 2</entry>
|
||||||
|
<entry name='bank_locator'>Bank 2/3</entry>
|
||||||
|
<entry name='type'><OUT OF SPEC></entry>
|
||||||
|
<entry name='type_detail'>Synchronous</entry>
|
||||||
|
<entry name='speed'>1066 MHz (0.9 ns)</entry>
|
||||||
|
<entry name='manufacturer'>8551</entry>
|
||||||
|
<entry name='serial_number'>29057112</entry>
|
||||||
|
<entry name='part_number'>IMSH2GS13A1F1C-10F</entry>
|
||||||
|
</memory_device>
|
||||||
|
</sysinfo>
|
200
tests/sysinfotest.c
Normal file
200
tests/sysinfotest.c
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
/*
|
||||||
|
* sysinfotest.c: Testcase(s) for virSysinfoRead
|
||||||
|
*
|
||||||
|
* Copyright IBM Corp. 2012
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "internal.h"
|
||||||
|
|
||||||
|
#include "buf.h"
|
||||||
|
#include "sysinfo.h"
|
||||||
|
#include "testutils.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "virfile.h"
|
||||||
|
|
||||||
|
#if defined (__linux__)
|
||||||
|
|
||||||
|
/* from sysinfo.c */
|
||||||
|
void virSysinfoSetup(const char *decoder,
|
||||||
|
const char *sysinfo,
|
||||||
|
const char *cpuinfo);
|
||||||
|
|
||||||
|
struct testSysinfoData {
|
||||||
|
char *decoder; /* name of dmi decoder binary/script */
|
||||||
|
char *sysinfo; /* name of /proc/sysinfo substitute file */
|
||||||
|
char *cpuinfo; /* name of /proc/cpuinfo substitute file */
|
||||||
|
char *expected; /* (required) file containing output of virSysinfoFormat */
|
||||||
|
};
|
||||||
|
|
||||||
|
# if defined(__powerpc__) || defined(__powerpc64__)
|
||||||
|
/* TODO ppc: remove the if defined() branch
|
||||||
|
to enable the real test run after providing test data, see below.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
testSysinfo(const void *data ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
return EXIT_AM_SKIP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
sysinfotest_run(const char *test ATTRIBUTE_UNUSED,
|
||||||
|
const char *decoder ATTRIBUTE_UNUSED,
|
||||||
|
const char *sysinfo ATTRIBUTE_UNUSED,
|
||||||
|
const char *cpuinfo ATTRIBUTE_UNUSED,
|
||||||
|
const char *expected ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
return testSysinfo(NULL);
|
||||||
|
}
|
||||||
|
# else
|
||||||
|
|
||||||
|
static int
|
||||||
|
testSysinfo(const void *data)
|
||||||
|
{
|
||||||
|
int result = -1;
|
||||||
|
char *sysfsExpectData = NULL;
|
||||||
|
const char *sysfsActualData;
|
||||||
|
virSysinfoDefPtr ret = NULL;
|
||||||
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
|
const struct testSysinfoData *testdata = data;
|
||||||
|
|
||||||
|
virSysinfoSetup(testdata->decoder, testdata->sysinfo, testdata->cpuinfo);
|
||||||
|
|
||||||
|
if (!testdata->expected ||
|
||||||
|
virtTestLoadFile(testdata->expected, &sysfsExpectData) < 0 ||
|
||||||
|
!(ret = virSysinfoRead())) {
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (virSysinfoFormat(&buf,ret) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
if (!(sysfsActualData = virBufferCurrentContent(&buf)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
if (STRNEQ(sysfsActualData, sysfsExpectData)) {
|
||||||
|
virtTestDifference(stderr, sysfsActualData, sysfsExpectData);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = 0;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
VIR_FREE(sysfsExpectData);
|
||||||
|
virSysinfoDefFree(ret);
|
||||||
|
virBufferFreeAndReset(&buf);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
sysinfotest_run(const char *test,
|
||||||
|
const char *decoder,
|
||||||
|
const char *sysinfo,
|
||||||
|
const char *cpuinfo,
|
||||||
|
const char *expected)
|
||||||
|
{
|
||||||
|
struct testSysinfoData testdata = { NULL };
|
||||||
|
int ret = EXIT_FAILURE;
|
||||||
|
|
||||||
|
if ((decoder &&
|
||||||
|
virAsprintf(&testdata.decoder, "%s/%s", abs_srcdir, decoder) < 0) ||
|
||||||
|
(sysinfo &&
|
||||||
|
virAsprintf(&testdata.sysinfo, "%s/%s", abs_srcdir, sysinfo) < 0) ||
|
||||||
|
(cpuinfo &&
|
||||||
|
virAsprintf(&testdata.cpuinfo, "%s/%s", abs_srcdir, cpuinfo) < 0) ||
|
||||||
|
(expected &&
|
||||||
|
virAsprintf(&testdata.expected, "%s/%s", abs_srcdir, expected) < 0)) {
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (virtTestRun(test, 1, testSysinfo, &testdata) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ret = EXIT_SUCCESS;
|
||||||
|
|
||||||
|
error:
|
||||||
|
VIR_FREE(testdata.decoder);
|
||||||
|
VIR_FREE(testdata.sysinfo);
|
||||||
|
VIR_FREE(testdata.cpuinfo);
|
||||||
|
VIR_FREE(testdata.expected);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
# endif /* defined(__powerpc__) ... */
|
||||||
|
|
||||||
|
# if defined(__s390__) || defined(__s390x__)
|
||||||
|
static int
|
||||||
|
test_s390(void)
|
||||||
|
{
|
||||||
|
return sysinfotest_run("s390 sysinfo",
|
||||||
|
NULL,
|
||||||
|
"/sysinfodata/s390sysinfo.data",
|
||||||
|
"/sysinfodata/s390cpuinfo.data",
|
||||||
|
"/sysinfodata/s390sysinfo.expect");
|
||||||
|
}
|
||||||
|
|
||||||
|
VIRT_TEST_MAIN(test_s390)
|
||||||
|
# elif defined(__powerpc__) || defined(__powerpc64__)
|
||||||
|
/* TODO for PPC owner: provide test data
|
||||||
|
and enable the real sysinfotest_run above
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
test_ppc(void)
|
||||||
|
{
|
||||||
|
return sysinfotest_run("ppc sysinfo",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
"/sysinfodata/ppccpuinfo.data",
|
||||||
|
"/sysinfodata/ppcsysinfo.expect");
|
||||||
|
}
|
||||||
|
|
||||||
|
VIRT_TEST_MAIN(test_ppc)
|
||||||
|
# elif defined(__i386__) || defined(__x86_64__) || defined(__amd64__)
|
||||||
|
static int
|
||||||
|
test_x86(void)
|
||||||
|
{
|
||||||
|
return sysinfotest_run("x86 sysinfo",
|
||||||
|
"/sysinfodata/dmidecode.sh",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
"/sysinfodata/x86sysinfo.expect");
|
||||||
|
}
|
||||||
|
|
||||||
|
VIRT_TEST_MAIN(test_x86)
|
||||||
|
# else
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
return EXIT_AM_SKIP;
|
||||||
|
}
|
||||||
|
# endif /* defined(__s390__) ... */
|
||||||
|
#else
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
return EXIT_AM_SKIP;
|
||||||
|
}
|
||||||
|
#endif /* defined(__linux__) */
|
Loading…
Reference in New Issue
Block a user