[elbe-devel] [PATCH 4/6] schema dbsfed: Add schema definitions for image checker
Torben Hohn
torben.hohn at linutronix.de
Wed Jun 24 16:38:21 CEST 2020
On Tue, Jun 23, 2020 at 12:31:08PM -0400, Olivier Dion wrote:
> The <check-img-list> tag can be set at the top of the XML, alongs with
> <project> and <target>. It containts a sequence of <check-img> tag.
hmm... we had one project that used 2 Harddisks.
but i guess we dont need that.
so... a single image is fine.
However, for arm and friends its necessary, that we specify a kernel.
this can be done via options.
i think we can roll with this as a first step.
Reviewed-by: Torben Hohn <torben.hohn at linutronix.de>
We need to find out, if its possible
to use some kernel for arm from
http://ftp.de.debian.org/debian/dists/buster/main/installer-armhf/current/images/netboot/
>
> <check> tags allow to validate an image by emulating it in QEMU and
> communicating with a serial line. They are composed of the following
> nodes:
>
> The <img> node must be provided. It specifies which image to
> test. This can be a raw image or a .tgz image.
>
> The <interpreter> node must be provided. It is the name of
> the QEMU executable for interpreting the image.
>
> The <interpreter-opts> node must be provided. It is the
> options passed to the interpreter. You can safely assume that
> the image that you want to emulated is in the path contained
> in the environment variable ELBE_IMG. Word expansion is done
> only on options passed to the interpreter.
>
> The <action> determines which action is to be done on the
> emulated image. Valid action are:
>
> - <serial>. It describes a sequence of interactions
> between the host and the guest using a serial line.
> It is composed of a sequence of <serial-action> group
> nodes. Possible values are <expect>, <sendline> and
> <EOF>.
>
> - <login>. It's a special cases of
> <serial>. It will simply do a serial communication
> with the guest to try to connect as root then exit.
>
> Signed-off-by: Olivier Dion <dion at linutronix.de>
> ---
> schema/dbsfed.xsd | 130 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 130 insertions(+)
>
> diff --git a/schema/dbsfed.xsd b/schema/dbsfed.xsd
> index c7bae9be..4df9603e 100644
> --- a/schema/dbsfed.xsd
> +++ b/schema/dbsfed.xsd
> @@ -41,6 +41,13 @@
> </documentation>
> </annotation>
> </element>
> + <element name="check-image-list" type="rfs:check-image-list" minOccurs="0">
> + <annotation>
> + <documentation>
> + Sequence of image to check for emulation.
> + </documentation>
> + </annotation>
> + </element>
> <element name="target" type="rfs:target" minOccurs="0">
> <annotation>
> <documentation>
> @@ -497,6 +504,129 @@
> <attribute ref="xml:base"/>
> </complexType>
>
> + <complexType name="check-image-list">
> + <annotation>
> + <documentation>
> + Describes a sequence of check to be done on images.
> + </documentation>
> + </annotation>
> + <sequence>
> + <element name="check" type="rfs:check-img" minOccurs="0" maxOccurs="10">
> + </element>
> + </sequence>
> + </complexType>
> +
> + <complexType name="check-img">
> + <all>
> + <element name="img" type="rfs:string" minOccurs="1" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Name of the image in the build to emulate. Image that
> + were .tgz are also accepted.
> + </documentation>
> + </annotation>
> + </element>
> + <element name="interpreter" type="rfs:string" minOccurs="1" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Name of the interpreter to use for the emulation. e.g.,
> + qemu-system-x86_64 or qemu-system-ppc, etc.
> + </documentation>
> + </annotation>
> + </element>
> + <element name="interpreter-opts" type="rfs:string" minOccurs="1" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Options to pass to the interpreter. e.g., -enable-kvm or
> + -drive format=raw,file=$ELBE_IMG or -hda $ELBE_IMG
> +
> + Word expansion is done before passing it to the
> + interpreter. You can safely assume that the environment
> + variable ELBE_IMG contains the absolute path to the target
> + image to emulate.
> + </documentation>
> + </annotation>
> + </element>
> + <element name="action" type="rfs:check-img-action">
> + <annotation>
> + <documentation>
> + Action to be done on the target image to emulate.
> + </documentation>
> + </annotation>
> + </element>
> + </all>
> + </complexType>
> +
> + <complexType name="check-img-action">
> + <annotation>
> + <documentation>
> + Action to perform on the images of a build.
> + </documentation>
> + </annotation>
> + <choice>
> + <element name="login" minOccurs="0" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Try to login into root session and shutdown the machine
> + </documentation>
> + </annotation>
> + </element>
> + <element name="serial" type="rfs:serial" minOccurs="0" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Serial communication to do with the interpreter. This
> + requires '-serial stdio' for QEMU's interpreters.
> + </documentation>
> + </annotation>
> + </element>
> + </choice>
> + </complexType>
> +
> + <complexType name="serial">
> + <annotation>
> + <documentation>
> + Describes a communication to do over a serial line. The
> + communication is done sequentially as it.
> + </documentation>
> + </annotation>
> + <sequence>
> + <group ref="rfs:serial-action" minOccurs="0" maxOccurs="unbounded" />
> + </sequence>
> + </complexType>
> +
> + <group name="serial-action">
> + <annotation>
> + <documentation>
> + Definition of possible action on serial communication.
> + </documentation>
> + </annotation>
> + <choice>
> + <element name="expect" type="rfs:string" minOccurs="0" maxOccurs="unbounded">
> + <annotation>
> + <documentation>
> + A regular expression to expect to receive on the line.
> + </documentation>
> + </annotation>
> + </element>
> + <element name="sendline" type="rfs:string" minOccurs="0" maxOccurs="unbounded">
> + <annotation>
> + <documentation>
> + Send a string terminated with a newline character on the
> + line.
> + </documentation>
> + </annotation>
> + </element>
> + <element name="EOF" type="rfs:string" minOccurs="0" maxOccurs="1">
> + <annotation>
> + <documentation>
> + Expect the connecion to be closed. This should only be
> + the last item in the sequence.
> + </documentation>
> + </annotation>
> + </element>
> + </choice>
> + </group>
> +
> <simpleType name="suite-initvm">
> <restriction base="string">
> <enumeration value="bullseye" />
> --
> 2.27.0
>
>
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel
--
Torben Hohn
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
Hinweise zum Datenschutz finden Sie hier (Informations on data privacy
can be found here): https://linutronix.de/kontakt/Datenschutz.php
Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen |
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700
806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner
More information about the elbe-devel
mailing list