A test will by default write synchronously to all available consoles:
- # xl create tests/example/test-hvm64-example.cfg
- # cat /var/log/xen/console/guest-test-hvm64-example.log
+ # ./xtf-runner test-hvm64-example
+ Executing 'xl create -p tests/example/test-hvm64-example.cfg'
+ Parsing config from tests/example/test-hvm64-example.cfg
+ Executing 'xl console test-hvm64-example'
+ Executing 'xl unpause test-hvm64-example'
--- Xen Test Framework ---
Environment: HVM 64bit (Long mode 4 levels)
Hello World
Test result: SUCCESS
+ Combined test results:
+ test-hvm64-example SUCCESS
+
The result is covered by the report.h API. In short, the options are:
- Success
To run tests on a Xen host: (see @ref errata first)
- # xl create tests/example/test-pv64-example.cfg
- # cat /var/log/xen/console/guest-test-pv64-example.log
+ # ./xtf-runner test-pv64-example
+ Executing 'xl create -p tests/example/test-pv64-example.cfg'
+ Parsing config from tests/example/test-pv64-example.cfg
+ Executing 'xl console test-pv64-example'
+ Executing 'xl unpause test-pv64-example'
--- Xen Test Framework ---
Environment: PV 64bit (Long mode 4 levels)
Hello World
Test result: SUCCESS
+ Combined test results:
+ test-pv64-example SUCCESS
+
@section errata Errata
-- Xen 4.7 and earlier running on hardware with SMEP (Intel IvyBridge/AMD
+- Xen 4.6 and earlier running on hardware with SMEP (Intel IvyBridge/AMD
Excavator and later) or SMAP (Intel Broadwell/AMD Zen or later) leaked its
SMEP/SMAP settings into 32bit PV guests, which interferes with some tests.
- To run those tests against Xen 4.6 or earlier on that hardware, Xen must be
- booted with `"smep=0 smap=0"`.
+ Xen 4.7 and later is fixed not to leak its SMAP/SMEP settings.
+
+ To run certain pv32pae tests against Xen 4.6 or earlier on such hardware,
+ Xen must be booted with `"smep=0 smap=0"`. Affected pv32pae tests will
+ probe for leaked settings and panic with a suitable error.
- For the paths of binaries, `xl` accepts either an absolute path, or certain
relative paths (`/etc/xen/` or `$CWD` for `kernel=`, `$libdir/xen/boot` for
*
* This part of the test is applicable to non-paged environments.
*
- * @todo Find a better way dealing with forced emulation. Xen currently
- * crashes the domain if it finds an invlpg instruction while in hap mode,
- * which is unhelpful when trying to test behaviour.
+ * @todo Find a better way dealing with forced emulation. Versions of Xen
+ * older than 4.7 crash the domain if they find an invlpg instruction while in
+ * hap mode, which is unhelpful when trying to test behaviour.
*
* @see tests/invlpg/main.c
*/
* for non-canonical addresses. When using HAP, the instructions are not
* intercepted, and dealt with by hardware.
*
- * However with shadow paging, the instructions are intercepted to prevent
- * @#PF's from not-yet-populated shadows. On VT-x hardware, this ends up
- * turning into a `invvpid` in Xen, which does suffer a @#GP on a
- * non-canonical address.
+ * However with shadow paging, the instructions are intercepted to allow the
+ * shadow subsystem to performance maintenance of the shadows themselves. On
+ * VT-x hardware, this ends up turning into a `invvpid` in Xen, which does
+ * suffer a @#GP on a non-canonical address.
*
* To cause Xen to execute an `invvpid` instruction, the address (omitting the
* sign extension) must be a small page. This is covered in XTF because the