[Spice-devel] [PATCH 2/2] server/tests: add resolution changes tester
Alon Levy
alevy at redhat.com
Wed Mar 21 15:16:25 PDT 2012
---
server/tests/Makefile.am | 20 ++++---
server/tests/test_display_resolution_changes.c | 66 ++++++++++++++++++++++++
2 files changed, 80 insertions(+), 6 deletions(-)
create mode 100644 server/tests/test_display_resolution_changes.c
diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am
index 61fad75..52e55a8 100644
--- a/server/tests/Makefile.am
+++ b/server/tests/Makefile.am
@@ -24,13 +24,14 @@ COMMON_BASE = \
test_util.h \
$(NULL)
-noinst_PROGRAMS = \
- test_display_no_ssl \
- test_display_streaming \
- test_empty_success \
+noinst_PROGRAMS = \
+ test_display_no_ssl \
+ test_display_streaming \
+ test_empty_success \
test_fail_on_null_core_interface \
- test_just_sockets_no_ssl \
- test_playback \
+ test_just_sockets_no_ssl \
+ test_playback \
+ test_display_resolution_changes \
$(NULL)
test_display_streaming_SOURCES = \
@@ -47,6 +48,13 @@ test_display_no_ssl_SOURCES = \
test_display_no_ssl.c \
$(NULL)
+test_display_resolution_changes_SOURCES = \
+ $(COMMON_BASE) \
+ test_display_base.c \
+ test_display_base.h \
+ test_display_resolution_changes.c \
+ $(NULL)
+
test_just_sockets_no_ssl_SOURCES = \
$(COMMON_BASE) \
test_just_sockets_no_ssl.c \
diff --git a/server/tests/test_display_resolution_changes.c b/server/tests/test_display_resolution_changes.c
new file mode 100644
index 0000000..edf7fb2
--- /dev/null
+++ b/server/tests/test_display_resolution_changes.c
@@ -0,0 +1,66 @@
+/**
+ * Recreate the primary surface endlessly.
+ */
+
+#include <math.h>
+#include <config.h>
+#include <stdlib.h>
+#include "test_display_base.h"
+
+SpiceServer *server;
+SpiceCoreInterface *core;
+SpiceTimer *ping_timer;
+
+void show_channels(SpiceServer *server);
+
+int ping_ms = 100;
+
+void pinger(void *opaque)
+{
+ // show_channels is not thread safe - fails if disconnections / connections occur
+ //show_channels(server);
+
+ core->timer_start(ping_timer, ping_ms);
+}
+
+void set_primary_params(void *cb_opaque, uint64_t *arg1, uint64_t *arg2)
+{
+#if 0
+ static int toggle = 0;
+
+ if (toggle) {
+ *arg1 = 800;
+ *arg2 = 600;
+ } else {
+ *arg1 = 1024;
+ *arg2 = 768;
+ }
+ toggle = 1 - toggle;
+#endif
+ static int count = 0;
+
+ *arg1 = 800 + sin((float)count / 6) * 200;
+ *arg2 = 600 + cos((float)count / 6) * 200;
+ count++;
+}
+
+static Command commands[] = {
+ {DESTROY_PRIMARY, 0, 0, NULL, NULL},
+ {CREATE_PRIMARY, 0, 0, set_primary_params, NULL},
+};
+
+int main(void)
+{
+ core = basic_event_loop_init();
+ server = test_init(core);
+ //spice_server_set_image_compression(server, SPICE_IMAGE_COMPRESS_OFF);
+ test_add_display_interface(server);
+ test_set_command_list(commands, COUNT(commands));
+
+ ping_timer = core->timer_add(pinger, NULL);
+ core->timer_start(ping_timer, ping_ms);
+
+ basic_event_loop_mainloop();
+
+ return 0;
+}
--
1.7.9.3
More information about the Spice-devel
mailing list