summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-04-19 13:48:41 +0300
committerYonit Halperin <yhalperi@redhat.com>2012-05-03 13:09:51 +0300
commit76fd64ad96aed9d7e567eb5e447a5d83181743f2 (patch)
treedcba375f5d3bbdaab1c2d98ffbdb9b77b88a3301
parent703f32cda91db552167324c542e19ef720c474dc (diff)
downloadspice-76fd64ad96aed9d7e567eb5e447a5d83181743f2.tar.gz
spice-76fd64ad96aed9d7e567eb5e447a5d83181743f2.tar.xz
spice-76fd64ad96aed9d7e567eb5e447a5d83181743f2.zip
server/tests: refactor Command
-rw-r--r--server/tests/test_display_base.c10
-rw-r--r--server/tests/test_display_base.h33
-rw-r--r--server/tests/test_display_resolution_changes.c10
3 files changed, 37 insertions, 16 deletions
diff --git a/server/tests/test_display_base.c b/server/tests/test_display_base.c
index 4211f290..49b79734 100644
--- a/server/tests/test_display_base.c
+++ b/server/tests/test_display_base.c
@@ -453,7 +453,7 @@ static void produce_command(void)
command = &g_commands[cmd_index];
if (command->cb) {
- command->cb(command->cb_opaque, &command->arg1, &command->arg2);
+ command->cb(command);
}
switch (command->command) {
case PATH_PROGRESS:
@@ -511,15 +511,13 @@ static void produce_command(void)
break;
}
- case DESTROY_PRIMARY: {
+ case DESTROY_PRIMARY:
qxl_worker->destroy_primary_surface(qxl_worker, 0);
break;
- }
- case CREATE_PRIMARY: {
- create_primary_surface(qxl_worker, command->arg1, command->arg2);
+ case CREATE_PRIMARY:
+ create_primary_surface(qxl_worker, command->create_primary.width, command->create_primary.height);
break;
- }
}
cmd_index = (cmd_index + 1) % g_num_commands;
}
diff --git a/server/tests/test_display_base.h b/server/tests/test_display_base.h
index 6922d9ba..b7697217 100644
--- a/server/tests/test_display_base.h
+++ b/server/tests/test_display_base.h
@@ -23,13 +23,36 @@ typedef enum {
DESTROY_PRIMARY,
CREATE_PRIMARY,
} CommandType;
-typedef struct Command {
+
+typedef struct CommandCreatePrimary {
+ uint32_t width;
+ uint32_t height;
+} CommandCreatePrimary;
+
+typedef struct CommandDrawBitmap {
+ QXLRect bbox;
+ uint8_t *bitmap;
+ uint32_t surface_id;
+} CommandDrawBitmap;
+
+typedef struct CommandDrawSolid {
+ QXLRect bbox;
+ uint32_t color;
+ uint32_t surface_id;
+} CommandDrawSolid;
+
+typedef struct Command Command;
+
+struct Command {
CommandType command;
- uint64_t arg1;
- uint64_t arg2;
- void (*cb)(void *cb_opaque, uint64_t *arg1, uint64_t *arg2);
+ void (*cb)(Command *command);
void *cb_opaque;
-} Command;
+ union {
+ CommandCreatePrimary create_primary;
+ CommandDrawBitmap bitmap;
+ CommandDrawSolid solid;
+ };
+};
void test_set_simple_command_list(int *command, int num_commands);
void test_set_command_list(Command *command, int num_commands);
diff --git a/server/tests/test_display_resolution_changes.c b/server/tests/test_display_resolution_changes.c
index ef26ee17..4a66a755 100644
--- a/server/tests/test_display_resolution_changes.c
+++ b/server/tests/test_display_resolution_changes.c
@@ -23,7 +23,7 @@ void pinger(void *opaque)
core->timer_start(ping_timer, ping_ms);
}
-void set_primary_params(void *cb_opaque, uint64_t *arg1, uint64_t *arg2)
+void set_primary_params(Command *command)
{
#if 0
static int toggle = 0;
@@ -39,14 +39,14 @@ void set_primary_params(void *cb_opaque, uint64_t *arg1, uint64_t *arg2)
#endif
static int count = 0;
- *arg1 = 800 + sin((float)count / 6) * 200;
- *arg2 = 600 + cos((float)count / 6) * 200;
+ command->create_primary.width = 800 + sin((float)count / 6) * 200;
+ command->create_primary.height = 600 + cos((float)count / 6) * 200;
count++;
}
static Command commands[] = {
- {DESTROY_PRIMARY, 0, 0, NULL, NULL},
- {CREATE_PRIMARY, 0, 0, set_primary_params, NULL},
+ {DESTROY_PRIMARY, NULL},
+ {CREATE_PRIMARY, set_primary_params},
};
int main(void)