spice/server/tests/Makefile.am
Alon Levy 622cb433a8 server/tests/spice-server-replay: introduce
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>
2015-08-22 12:36:37 +01:00

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)