From: Naphtali Sprei <nsprei@redhat.com>
To: kvm@vger.kernel.org
Cc: Gleb Natapov <gnatapov@redhat.com>
Subject: [qemu-kvm tests PATCH] qemu-kvm tests: merged stringio into emulator
Date: Mon, 03 May 2010 18:39:59 +0300 [thread overview]
Message-ID: <4BDEEE4F.7010606@redhat.com> (raw)
based on 'next' branch.
Changed test-case stringio into C code and merged into emulator test-case.
Removed traces of stringio test-case.
Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
kvm/user/config-x86-common.mak | 2 --
kvm/user/config-x86_64.mak | 4 ++--
kvm/user/test/x86/README | 1 -
kvm/user/test/x86/emulator.c | 31 ++++++++++++++++++++++++++++---
kvm/user/test/x86/stringio.S | 36 ------------------------------------
5 files changed, 30 insertions(+), 44 deletions(-)
delete mode 100644 kvm/user/test/x86/stringio.S
diff --git a/kvm/user/config-x86-common.mak b/kvm/user/config-x86-common.mak
index 61cc2f0..0ff9425 100644
--- a/kvm/user/config-x86-common.mak
+++ b/kvm/user/config-x86-common.mak
@@ -56,8 +56,6 @@ $(TEST_DIR)/realmode.flat: $(TEST_DIR)/realmode.o
$(TEST_DIR)/realmode.o: bits = 32
-$(TEST_DIR)/stringio.flat: $(cstart.o) $(TEST_DIR)/stringio.o
-
$(TEST_DIR)/msr.flat: $(cstart.o) $(TEST_DIR)/msr.o
arch_clean:
diff --git a/kvm/user/config-x86_64.mak b/kvm/user/config-x86_64.mak
index 03c91f2..3403dc3 100644
--- a/kvm/user/config-x86_64.mak
+++ b/kvm/user/config-x86_64.mak
@@ -5,7 +5,7 @@ ldarch = elf64-x86-64
CFLAGS += -D__x86_64__
tests = $(TEST_DIR)/access.flat $(TEST_DIR)/sieve.flat \
- $(TEST_DIR)/stringio.flat $(TEST_DIR)/emulator.flat \
- $(TEST_DIR)/hypercall.flat $(TEST_DIR)/apic.flat
+ $(TEST_DIR)/emulator.flat $(TEST_DIR)/hypercall.flat \
+ $(TEST_DIR)/apic.flat
include config-x86-common.mak
diff --git a/kvm/user/test/x86/README b/kvm/user/test/x86/README
index e2ede5c..ab5a2ae 100644
--- a/kvm/user/test/x86/README
+++ b/kvm/user/test/x86/README
@@ -10,6 +10,5 @@ realmode: goes back to realmode, shld, push/pop, mov immediate, cmp immediate, a
io, eflags instructions (clc, cli, etc.), jcc short, jcc near, call, long jmp, xchg
sieve: heavy memory access with no paging and with paging static and with paging vmalloc'ed
smptest: run smp_id() on every cpu and compares return value to number
-stringio: outs forward and backward
tsc: write to tsc(0) and write to tsc(100000000000) and read it back
vmexit: long loops for each: cpuid, vmcall, mov_from_cr8, mov_to_cr8, inl_pmtimer, ipi, ipi+halt
diff --git a/kvm/user/test/x86/emulator.c b/kvm/user/test/x86/emulator.c
index 4967d1f..5406062 100644
--- a/kvm/user/test/x86/emulator.c
+++ b/kvm/user/test/x86/emulator.c
@@ -3,6 +3,7 @@
#include "libcflat.h"
#define memset __builtin_memset
+#define TESTDEV_IO_PORT 0xe0
int fails, tests;
@@ -17,6 +18,29 @@ void report(const char *name, int result)
}
}
+static char str[] = "abcdefghijklmnop";
+
+void test_stringio()
+{
+ unsigned char r = 0;
+ asm volatile("cld \n\t"
+ "movw %0, %%dx \n\t"
+ "rep outsb \n\t"
+ : : "i"((short)TESTDEV_IO_PORT),
+ "S"(str), "c"(sizeof(str) - 1));
+ asm volatile("inb %1, %0\n\t" : "=a"(r) : "i"((short)TESTDEV_IO_PORT));
+ report("outsb up", r == str[sizeof(str) - 2]); /* last char */
+
+ asm volatile("std \n\t"
+ "movw %0, %%dx \n\t"
+ "rep outsb \n\t"
+ : : "i"((short)TESTDEV_IO_PORT),
+ "S"(str + sizeof(str) - 2), "c"(sizeof(str) - 1));
+ asm volatile("cld \n\t" : : );
+ asm volatile("in %1, %0\n\t" : "=a"(r) : "i"((short)TESTDEV_IO_PORT));
+ report("outsb down", r == str[0]);
+}
+
void test_cmps_one(unsigned char *m1, unsigned char *m3)
{
void *rsi, *rdi;
@@ -93,8 +117,8 @@ void test_cmps(void *mem)
m1[i] = m2[i] = m3[i] = i;
for (int i = 100; i < 200; ++i)
m1[i] = (m3[i] = m2[i] = i) + 1;
- test_cmps_one(m1, m3);
- test_cmps_one(m1, m2);
+ test_cmps_one(m1, m3);
+ test_cmps_one(m1, m2);
}
void test_cr8(void)
@@ -271,7 +295,8 @@ int main()
test_smsw();
test_lmsw();
- test_ljmp(mem);
+ test_ljmp(mem);
+ test_stringio();
printf("\nSUMMARY: %d tests, %d failures\n", tests, fails);
return fails ? 1 : 0;
diff --git a/kvm/user/test/x86/stringio.S b/kvm/user/test/x86/stringio.S
deleted file mode 100644
index 461621c..0000000
--- a/kvm/user/test/x86/stringio.S
+++ /dev/null
@@ -1,36 +0,0 @@
-
-.data
-
-.macro str name, value
-
-\name : .long 1f-2f
-2: .ascii "\value"
-1:
-.endm
-
-TESTDEV_PORT = 0xf1
-
- str "forward", "forward"
- str "backward", "backward"
-
-.text
-
-.global main
-main:
- cld
- movl forward, %ecx
- lea 4+forward, %rsi
- movw $TESTDEV_PORT, %dx
- rep outsb
-
- std
- movl backward, %ecx
- lea 4+backward-1(%rcx), %rsi
- movw $TESTDEV_PORT, %dx
- rep outsb
-
- mov $0, %rsi
- call exit
-
-
-
--
1.6.3.3
next reply other threads:[~2010-05-03 15:40 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-03 15:39 Naphtali Sprei [this message]
2010-05-05 9:00 ` [qemu-kvm tests PATCH] qemu-kvm tests: merged stringio into emulator Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BDEEE4F.7010606@redhat.com \
--to=nsprei@redhat.com \
--cc=gnatapov@redhat.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.