mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-27 07:29:32 +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>
116 lines
2.3 KiB
Makefile
116 lines
2.3 KiB
Makefile
NULL =
|
|
|
|
AM_CPPFLAGS = \
|
|
$(GLIB2_CFLAGS) \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/common \
|
|
-I$(top_srcdir)/server \
|
|
-I$(top_builddir)/server \
|
|
-I$(top_srcdir)/server/tests \
|
|
$(COMMON_CFLAGS) \
|
|
$(GLIB2_CFLAGS) \
|
|
$(SMARTCARD_CFLAGS) \
|
|
$(SPICE_NONPKGCONFIG_CFLAGS) \
|
|
$(SPICE_PROTOCOL_CFLAGS) \
|
|
$(NULL)
|
|
|
|
if SUPPORT_AUTOMATED_TESTS
|
|
AM_CPPFLAGS += -DAUTOMATED_TESTS
|
|
endif
|
|
|
|
LDADD = \
|
|
$(GLIB2_LIBS) \
|
|
$(top_builddir)/spice-common/common/libspice-common.la \
|
|
$(top_builddir)/server/libspice-server.la \
|
|
$(GLIB2_LIBS) \
|
|
$(SPICE_NONPKGCONFIG_LIBS) \
|
|
$(NULL)
|
|
|
|
COMMON_BASE = \
|
|
basic_event_loop.c \
|
|
basic_event_loop.h \
|
|
test_util.h \
|
|
$(NULL)
|
|
|
|
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_display_resolution_changes \
|
|
test_two_servers \
|
|
test_vdagent \
|
|
test_display_width_stride \
|
|
spice-server-replay \
|
|
$(NULL)
|
|
|
|
test_vdagent_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_display_base.c \
|
|
test_display_base.h \
|
|
test_vdagent.c \
|
|
$(NULL)
|
|
|
|
test_display_streaming_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_display_base.c \
|
|
test_display_base.h \
|
|
test_display_streaming.c \
|
|
$(NULL)
|
|
|
|
test_display_no_ssl_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_display_base.c \
|
|
test_display_base.h \
|
|
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 \
|
|
$(NULL)
|
|
|
|
test_playback_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_playback.c \
|
|
$(NULL)
|
|
|
|
test_empty_success_SOURCES = \
|
|
test_empty_success.c \
|
|
$(NULL)
|
|
|
|
test_fail_on_null_core_interface_SOURCES = \
|
|
test_fail_on_null_core_interface.c \
|
|
$(NULL)
|
|
|
|
test_two_servers_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_display_base.c \
|
|
test_display_base.h \
|
|
test_two_servers.c \
|
|
$(NULL)
|
|
|
|
test_display_width_stride_SOURCES = \
|
|
$(COMMON_BASE) \
|
|
test_display_base.c \
|
|
test_display_base.h \
|
|
test_display_width_stride.c \
|
|
$(NULL)
|
|
|
|
spice_server_replay_SOURCES = \
|
|
replay.c \
|
|
test_display_base.h \
|
|
basic_event_loop.c \
|
|
basic_event_loop.h \
|
|
test_util.h \
|
|
$(NULL)
|