mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-27 23:49:04 +00:00
usage: spice-server-replay -p <port> -c <client command line> <cmdfile> will run the commands from cmdfile ignoring timestamps, right after a connection is established from the client, and will SIGINT the client on end of cmdfile, and exit itself after waiting for the client. spicy-stats from spice-gtk is useful for testing, it prints the summary of the traffic on each channel. You can also run with no client by doing: spice-server-replay <cmdfile> For example, the 300 MB file (compressed to 4 MB with xz -9) available at [1] produces the following output: spicy-stats total bytes read: total bytes read: inputs: 214 display: 1968983 cursor: 390 main: 256373 You could run it directly like so: curl http://annarchy.freedesktop.org/~alon/win7_boot_shutdown.cmd.xz | \ xzcat | server/tests/spice-server-replay -p 12345 -c `which spicy-stats` - Known Problems: * Implementation is wrong. Should do a single device->host conversion (i.e. get_virt), and then marshall/demarshall that (i.e. RedDrawable). * segfault on file read done resulting in the above spicy-stats not being reproducable (well, up to 1% yes). [1] http://annarchy.freedesktop.org/~alon/win7_boot_shutdown.cmd.xz Now based on glib including using an asyncqueue for reading the playback file, and proper freeing of the allocated commands, with --slow, --compression and a progress timer, and doesn't use more then nsurfaces. Signed-off-by: Alon Levy <alon@pobox.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com> |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| base_test.ppm | ||
| basic_event_loop.c | ||
| basic_event_loop.h | ||
| Makefile.am | ||
| README | ||
| regression_test.py | ||
| replay.c | ||
| test_display_base.c | ||
| test_display_base.h | ||
| test_display_no_ssl.c | ||
| test_display_resolution_changes.c | ||
| test_display_streaming.c | ||
| test_display_width_stride.c | ||
| test_empty_success.c | ||
| test_fail_on_null_core_interface.c | ||
| test_just_sockets_no_ssl.c | ||
| test_multiple.py | ||
| test_playback.c | ||
| test_spice_version.sh | ||
| test_two_servers.c | ||
| test_util.h | ||
| test_vdagent.c | ||
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