qemu-irix/tests
Dr. David Alan Gilbert ea0c6d6239 test: Postcopy
This is a postcopy test (x86 only) that actually runs the guest
and checks the memory contents.

The test runs from an x86 boot block with the hex embedded in the test;
the source for this is:

...........

.code16
.org 0x7c00
	.file	"fill.s"
	.text
	.globl	start
	.type	start, @function
start:             # at 0x7c00 ?
        cli
        lgdt gdtdesc
        mov $1,%eax
        mov %eax,%cr0  # Protected mode enable
        data32 ljmp $8,$0x7c20

.org 0x7c20
.code32
        # A20 enable - not sure I actually need this
        inb $0x92,%al
        or  $2,%al
        outb %al, $0x92

        # set up DS for the whole of RAM (needed on KVM)
        mov $16,%eax
        mov %eax,%ds

        mov $65,%ax
        mov $0x3f8,%dx
        outb %al,%dx

        # bl keeps a counter so we limit the output speed
        mov $0, %bl
mainloop:
        # Start from 1MB
        mov $(1024*1024),%eax
innerloop:
        incb (%eax)
        add $4096,%eax
        cmp $(100*1024*1024),%eax
        jl innerloop

        inc %bl
        jnz mainloop

        mov $66,%ax
        mov $0x3f8,%dx
        outb %al,%dx

	jmp mainloop

        # GDT magic from old (GPLv2)  Grub startup.S
        .p2align        2       /* force 4-byte alignment */
gdt:
        .word   0, 0
        .byte   0, 0, 0, 0

        /* -- code segment --
         * base = 0x00000000, limit = 0xFFFFF (4 KiB Granularity), present
         * type = 32bit code execute/read, DPL = 0
         */
        .word   0xFFFF, 0
        .byte   0, 0x9A, 0xCF, 0

        /* -- data segment --
         * base = 0x00000000, limit 0xFFFFF (4 KiB Granularity), present
         * type = 32 bit data read/write, DPL = 0
         */
        .word   0xFFFF, 0
        .byte   0, 0x92, 0xCF, 0

gdtdesc:
        .word   0x27                    /* limit */
        .long   gdt                     /* addr */

/* I'm a bootable disk */
.org 0x7dfe
        .byte 0x55
        .byte 0xAA

...........

and that can be assembled by the following magic:
    as --32 -march=i486 fill.s -o fill.o
    objcopy -O binary fill.o fill.boot
    dd if=fill.boot of=bootsect bs=256 count=2 skip=124
    xxd -i bootsect

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Message-id: 1465816605-29488-5-git-send-email-dgilbert@redhat.com
Message-Id: <1465816605-29488-5-git-send-email-dgilbert@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-06-16 09:50:07 +05:30
..
acpi-test-data tests: acpi: update tables with consolidated legacy cpu-hotplug AML 2016-06-07 15:36:54 +03:00
docker tests/docker: build all targets in test-clang 2016-06-08 15:19:30 +08:00
guest-debug
image-fuzzer
libqos tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
multiboot
qapi-schema
qemu-iotests block: Switch bdrv_write_zeroes() to byte interface 2016-06-08 10:21:08 +02:00
rocker
tcg Fix some typos found by codespell 2016-05-18 15:04:27 +03:00
vmstate-static-checker-data
.gitignore qht: add test-qht-par to invoke qht-bench from 'check' target 2016-06-11 17:11:16 -07:00
Makefile.include test: Postcopy 2016-06-16 09:50:07 +05:30
ac97-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ahci-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
bios-tables-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
boot-order-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
boot-sector.c
boot-sector.h
check-block.sh
check-qdict.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qfloat.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qint.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qjson.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qlist.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qnull.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qom-interface.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qom-proplist.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
check-qstring.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
crypto-tls-x509-helpers.c
crypto-tls-x509-helpers.h
device-introspect-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
display-vga-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
drive_del-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ds1338-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
e1000-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
e1000e-test.c e1000e: Introduce qtest for e1000e device 2016-06-02 10:42:30 +08:00
eepro100-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
endianness-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
es1370-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
fdc-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
fw_cfg-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
hd-geo-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
i440fx-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
i82801b11-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ide-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
intel-hda-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
io-channel-helpers.c
io-channel-helpers.h
ioh3420-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ipmi-bt-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ipmi-kcs-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ipoctal232-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ivshmem-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
libqtest.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
libqtest.h
m48t59-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
ne2000-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
nvme-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
pc-cpu-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
pcnet-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
pkix_asn1_tab.c
postcopy-test.c test: Postcopy 2016-06-16 09:50:07 +05:30
pvpanic-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
pxe-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
q35-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
qemu-iotests-quick.sh
qht-bench.c qht: add qht-bench, a performance benchmark 2016-06-11 17:11:16 -07:00
qom-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
rcutorture.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
rtc-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
rtl8139-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
spapr-phb-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
tco-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-aio.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-base64.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-bitops.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-blockjob-txn.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-coroutine.c trivial patches for 2016-06-07 2016-06-07 16:34:45 +01:00
test-crypto-afsplit.c
test-crypto-block.c
test-crypto-cipher.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-crypto-hash.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-crypto-ivgen.c
test-crypto-pbkdf.c
test-crypto-secret.c crypto: remove temp files on completion of secrets test 2016-06-13 12:41:17 +01:00
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-crypto-xts.c
test-cutils.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-filter-mirror.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-filter-redirector.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-hbitmap.c hbitmap: Use DIV_ROUND_UP 2016-06-07 18:19:25 +03:00
test-int128.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c
test-io-channel-socket.c util: retry getaddrinfo if getting EAI_BADFLAGS with AI_V4MAPPED 2016-04-05 11:46:52 +02:00
test-io-channel-tls.c
test-io-task.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-iov.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-logging.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-mul64.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-netfilter.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-opts-visitor.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qdev-global-props.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qdist.c qdist: add test program 2016-06-11 23:10:19 +00:00
test-qemu-opts.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qga.c tests: start a /qga/guest-exec test 2016-06-07 11:25:06 -05:00
test-qht-par.c qht: add test-qht-par to invoke qht-bench from 'check' target 2016-06-11 17:11:16 -07:00
test-qht.c qht: add test program 2016-06-11 23:10:20 +00:00
test-qmp-commands.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qmp-event.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qmp-input-strict.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qmp-input-visitor.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-qmp-output-visitor.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-rcu-list.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-rfifolock.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-string-input-visitor.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-string-output-visitor.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-thread-pool.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-throttle.c trivial patches for 2016-06-07 2016-06-07 16:34:45 +01:00
test-timed-average.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-visitor-serialization.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-vmstate.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-write-threshold.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-x86-cpuid.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
test-xbzrle.c
tmp105-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
tpci200-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
usb-hcd-ehci-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
usb-hcd-ohci-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
usb-hcd-uhci-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
usb-hcd-xhci-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vhost-user-bridge.c
vhost-user-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-9p-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-balloon-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-blk-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-console-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-net-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-rng-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-scsi-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
virtio-serial-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vmxnet3-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
wdt_ib700-test.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00