--- /dev/null
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <include href="@SCHEMADIR@/basictypes.rng"/>
+ <include href="@SCHEMADIR@/cputypes.rng"/>
+
+ <start>
+ <ref name="cputestdata"/>
+ </start>
+
+ <define name="cputestdata">
+ <choice>
+ <ref name="guestcpu"/>
+ <ref name="hostcpu"/>
+ <ref name="cputest"/>
+ <ref name="cpudata"/>
+ </choice>
+ </define>
+
+ <define name="cputest">
+ <element name="cpuTest">
+ <oneOrMore>
+ <choice>
+ <ref name="guestcpu"/>
+ <ref name="hostcpu"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="cpudata">
+ <element name="cpudata">
+ <attribute name="arch">
+ <choice>
+ <value>x86</value>
+ </choice>
+ </attribute>
+ <interleave>
+ <oneOrMore>
+ <ref name="cpudata_cpuid"/>
+ </oneOrMore>
+ <zeroOrMore>
+ <ref name="cpudata_msr"/>
+ </zeroOrMore>
+ </interleave>
+ </element>
+ </define>
+
+ <define name="cpudata_cpuid">
+ <element name="cpuid">
+ <attribute name="eax_in">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="ecx_in">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="eax">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="ebx">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="ecx">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="edx">
+ <ref name="hexuint"/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="cpudata_msr">
+ <element name="msr">
+ <attribute name="index">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="eax">
+ <ref name="hexuint"/>
+ </attribute>
+ <attribute name="edx">
+ <ref name="hexuint"/>
+ </attribute>
+ </element>
+ </define>
+</grammar>
--- /dev/null
+# we need to replace proper paths to our schemas in the test schemas
+virschematest_test_schemas_conf = configuration_data({
+ 'SCHEMADIR': meson.project_source_root() / 'src' / 'conf' / 'schemas',
+})
+
+virschematest_schemas = [
+ 'cpu-baseline.rng.in',
+]
+
+foreach file : virschematest_schemas
+ configure_file(
+ input: file,
+ output: '@BASENAME@',
+ configuration: virschematest_test_schemas_conf,
+ )
+endforeach
{ .file = "examples/xml/test/testvol.xml" },
};
-static const struct testSchemaEntry schemaCpu[] = {
- { . dir = "tests/cputestdata",
- . dirRegex = "^[^-]+-cpuid-.*(-host|-guest|-json)\\.xml$" },
- { . dir = "tests/cputestdata",
- . dirRegex = "^[^-]+-baseline-.*-result\\.xml$" },
- { . dir = "tests/cputestdata",
- . dirRegex = "^[^-]+-(?!cpuid|baseline).*$" },
+static const struct testSchemaEntry testsCpuBaseline[] = {
+ { . dir = "tests/cputestdata" },
};
static int
int ret = 0;
#define SCHEMAS_PATH abs_top_srcdir "/src/conf/schemas/"
+#define INTERNAL_SCHEMAS_PATH abs_builddir "/schemas/"
#define DO_TEST(sch, ent) \
if (testSchemaEntries((sch), (ent), G_N_ELEMENTS(ent)) < 0) \
DO_TEST(SCHEMAS_PATH "storagepoolcaps.rng", schemaStoragepoolcaps);
DO_TEST(SCHEMAS_PATH "storagepool.rng", schemaStoragePool);
DO_TEST(SCHEMAS_PATH "storagevol.rng", schemaStorageVol);
- DO_TEST(SCHEMAS_PATH "cpu.rng", schemaCpu);
+
+ DO_TEST(INTERNAL_SCHEMAS_PATH "cpu-baseline.rng", testsCpuBaseline);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}