spice/server/tests
Frediano Ziglio 6e43433ec2 tests: add a new case for event loop timers
Check that cancelling a timer the timer callback is not called.

This can happen in latency code (red-channel.c).
In red_channel_client_cancel_ping_timer latency timer is cancelled and
state is set to PING_STATE_NONE however if timer was already active what
happens is that the red_channel_client_ping_timer is called and the line

  spice_assert(rcc->latency_monitor.state == PING_STATE_TIMER);

is triggered causing spice-server to abort.
This happens as GLib loop add all active sources to an array but if the
timer is deactivated before the event is dispatched the event will be
dispatched unless the source is destroyed.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2016-02-12 17:44:47 +00:00
..
.gitignore stat: add test for statistic functions 2015-12-09 17:02:54 +00:00
base_test.ppm Adding image to be used as "correct" in regression tests 2012-02-14 14:53:47 +02:00
basic_event_loop.c event-loop: Remove template 2016-01-21 14:19:24 +00:00
basic_event_loop.h tests: add a test for event loop 2016-01-19 23:56:59 +00:00
Makefile.am tests: link test-qxl-parsing with libserver 2016-02-03 17:33:15 +00:00
README Adding support to automated tests 2012-02-14 14:53:44 +02:00
regression_test.py build-sys: check for spicy-screenshot 2014-09-08 14:49:29 +02:00
replay.c replay: remove a message that could be caused by a race condition 2016-02-03 16:03:17 +00:00
stat-main.c syntax-check: Remove empty line at EOF 2016-01-08 11:24:14 +00:00
stat-test.c stat: add test for statistic functions 2015-12-09 17:02:54 +00:00
stream-test.c stream-test: add batch test 2016-01-15 11:04:30 +00:00
test_display_base.c tests: remove test_util.h 2015-12-21 11:44:34 +00:00
test_display_base.h Add missing license headers 2015-10-19 14:25:36 +02:00
test_display_no_ssl.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_display_resolution_changes.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_display_streaming.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_display_width_stride.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_empty_success.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_fail_on_null_core_interface.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_just_sockets_no_ssl.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_multiple.py server: add tester and todo for multiple client support 2011-08-23 19:18:23 +03:00
test_playback.c channel: add a new internal SpiceCoreInterface 2016-01-11 16:29:53 +00:00
test_two_servers.c Add missing license headers 2015-10-19 14:25:36 +02:00
test_vdagent.c Add missing license headers 2015-10-19 14:25:36 +02:00
test-loop.c tests: add a new case for event loop timers 2016-02-12 17:44:47 +00:00
test-qxl-parsing.c tests: remove leaks in test-qxl-parsing 2016-01-19 14:03:43 +00:00

What is here
============

This directory will contain a testsuite for the server including tetris drawing.

Unfortunately tetris and most of the tests are not here right now. You can however run all the tests and use libtool to debug any of them thus:

libtool --mode=execute gdb test_just_sockets_no_ssl

Overview of tests
=================

test_just_sockets_no_ssl
 A complete server, only provides the main and inputs channels. Doesn't actually produce anything on the channels. Essentially a test of the regular link code (reds.c), good for multiple connect/disconnect tests.

test_empty_success
 tests calling

test_fail_on_null_core_interface
 should abort when run (when spice tries to watch_add)

basic_event_loop.c
 used by test_just_sockets_no_ssl, can be used by other tests. very crude event loop. Should probably use libevent for better tests, but this is self contained.

Automated tests
===============

test_display_streaming.c
 this test can be used to check regressions. For this, Spice needs to be compiled with --enable-automated-tests and test_display_streaming needs to be called passing --automated-tests as parameter