[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 5/6] fdc_test: update media_change test
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH v6 5/6] fdc_test: update media_change test |
Date: |
Sun, 24 Jun 2012 06:16:31 +0000 |
On Fri, Jun 22, 2012 at 10:33 AM, Pavel Hrdina <address@hidden> wrote:
> After rewrite DSKCHG bit handling the test has to be updated. Now
> is needed to seek to different track to clear DSKCHG bit.
>
> Signed-off-by: Pavel Hrdina <address@hidden>
> ---
> tests/fdc-test.c | 29 +++++++++++++++++++++--------
> 1 files changed, 21 insertions(+), 8 deletions(-)
>
> diff --git a/tests/fdc-test.c b/tests/fdc-test.c
> index 610e2f1..5280eff 100644
> --- a/tests/fdc-test.c
> +++ b/tests/fdc-test.c
> @@ -156,19 +156,20 @@ static uint8_t send_read_command(void)
> return ret;
> }
>
> -static void send_step_pulse(void)
> +static void send_step_pulse(bool chg_cyl)
> {
> int drive = 0;
> int head = 0;
> - static int cyl = 0;
> + int cyl = 0;
> +
> + if (chg_cyl)
> + cyl = (cyl + 1) % 4;
Missing braces, please use checkpatch.pl to avoid these issues.
% 4 could be turned into & 3, maybe with a separate patch.
>
> floppy_send(CMD_SEEK);
> floppy_send(head << 2 | drive);
> g_assert(!get_irq(FLOPPY_IRQ));
> floppy_send(cyl);
> ack_irq();
> -
> - cyl = (cyl + 1) % 4;
> }
>
> static uint8_t cmos_read(uint8_t reg)
> @@ -195,8 +196,7 @@ static void test_no_media_on_start(void)
> assert_bit_set(dir, DSKCHG);
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_set(dir, DSKCHG);
> - send_step_pulse();
> - send_step_pulse();
> + send_step_pulse(1);
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_set(dir, DSKCHG);
> dir = inb(FLOPPY_BASE + reg_dir);
> @@ -227,7 +227,14 @@ static void test_media_change(void)
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_set(dir, DSKCHG);
>
> - send_step_pulse();
> + send_step_pulse(0);
> + dir = inb(FLOPPY_BASE + reg_dir);
> + assert_bit_set(dir, DSKCHG);
> + dir = inb(FLOPPY_BASE + reg_dir);
> + assert_bit_set(dir, DSKCHG);
> +
> + /* Step to next track should clear DSKCHG bit. */
> + send_step_pulse(1);
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_clear(dir, DSKCHG);
> dir = inb(FLOPPY_BASE + reg_dir);
> @@ -243,7 +250,13 @@ static void test_media_change(void)
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_set(dir, DSKCHG);
>
> - send_step_pulse();
> + send_step_pulse(0);
> + dir = inb(FLOPPY_BASE + reg_dir);
> + assert_bit_set(dir, DSKCHG);
> + dir = inb(FLOPPY_BASE + reg_dir);
> + assert_bit_set(dir, DSKCHG);
> +
> + send_step_pulse(1);
> dir = inb(FLOPPY_BASE + reg_dir);
> assert_bit_set(dir, DSKCHG);
> dir = inb(FLOPPY_BASE + reg_dir);
> --
> 1.7.7.6
>
>