spice/server/tests
Frediano Ziglio 176970f3f1 red-channel-client: Remove GObject type
Make all RedChannelClient hierarchy a C++ class.
This allows to use virtual methods.
Added a normal contructor instead or properties and g_object_new.

As we remove GObject conversion macros I added a macro XXX_CAST
to create a function to replace the old macro.
They will be removed when more type safety is introduced.

There's a new SPICE_CXX_GLIB_ALLOCATOR macro in red-common.h.
This macro, added to a class define the class allocator allowing
to use, in this case, GLib for allocation. This to avoid C++ library
dependency and to initialize all structure to 0 (not all fields
are manually initialized, will be improved with more encapsulation).

Currently the methods are mainly public, access will be modified
when more encapsulation (all functions in method) are done.

Some classes are now defined in the header, C++ uses access to
limit accessibility but for efficiency and type safety/inline and
other features require types to be defined in the headers.

Some fields were moved from XxxPrivate structure to class, C++
has accessibility.

Many destructors are defined as protected to forbid the use of
stack, this as these objects uses internal reference counting
to have normal pointers. Maybe in the future pointers like
std::shared_ptr could be used instead.

Reference counting is now implemented very easily using atomic
operations.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-05-01 06:58:09 +01:00
..
pki tests/pki: Use CA/certificate valid until 2048 and with 2048 bits 2018-12-07 12:31:11 +00:00
valgrind ci: Fix for test-set-ticket leak detection 2020-04-03 14:57:25 +01:00
.gitignore test-smartcard: Add test for Smartcard device 2019-10-09 10:33:25 +01:00
autobahn-check-report ci: Add test for websockets 2019-06-26 14:19:43 +01: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 Do not leave not initialized fields in the middle 2020-05-01 06:58:08 +01:00
basic-event-loop.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
fuzzingclient.json ci: Add test for websockets 2019-06-26 14:19:43 +01:00
Makefile.am automake: Link with C++ linker 2020-05-01 06:58:09 +01:00
meson.build Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
README tests: Update README 2017-09-07 08:54:18 +01:00
regression-test.py test-display-base: Port to Windows 2019-01-03 13:08:17 +00:00
replay.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
stat-test.c test-stat: Adjust delay checks 2019-03-06 11:59:54 +00:00
test-agent-msg-filter.c test-agent-msg-filter: Adjust for recent logging changes 2018-06-28 14:31:22 +01:00
test-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
test-codecs-parsing.c test-codecs-parsing: On bad codec string spice_server_set_video_codecs can fail 2019-07-08 08:15:36 +01:00
test-display-base.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
test-display-base.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
test-display-no-ssl.c tests: destroy test object 2017-09-02 08:07:38 +01:00
test-display-resolution-changes.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-display-streaming.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-display-width-stride.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-empty-success.c tests: Make test-empty-success automated 2017-09-07 08:54:18 +01:00
test-fail-on-null-core-interface.c tests: Make test-fail-on-null-core-interface an automated test 2017-09-07 08:54:18 +01:00
test-glib-compat.h Remove unused code since glib bump to 2.38 2020-02-26 13:01:48 +00:00
test-gst.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
test-leaks.c test-leaks: Use socket compatibility layer 2019-05-07 10:14:18 +01:00
test-listen.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-loop.c test-loop: increment a variable outside of spice_assert 2019-08-22 21:27:35 +01:00
test-multiple.py tests: Normalize test names 2016-11-25 13:52:39 +00:00
test-options.c tests: Move some specific GLib compatibility to compatibility file 2017-03-03 16:49:41 +00:00
test-playback.c windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
test-qxl-parsing.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-record.c test-record: Fix a race condition running the test 2020-04-03 08:48:43 +01:00
test-sasl.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
test-set-ticket.c test-set-ticket: Test we can set the ticket before spice_server_init 2020-04-03 08:49:20 +01:00
test-smartcard.cpp Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
test-stat-file.c tests: Use GLib memory functions 2017-12-01 22:31:52 +00:00
test-stat.c tests: Rename stat-main.c to test-stat.c 2017-09-18 13:50:26 +01:00
test-stream-device.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
test-stream.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
test-two-servers.c tests: Automatically determine free port to use 2017-09-21 17:32:23 +02:00
test-vdagent.c Change string check 2020-05-01 06:58:08 +01:00
test-video-encoders tests: rename video-encoders to test-video-encoders 2019-07-22 11:21:23 +01:00
test-websocket.c Fix compatibility with SOL_TCP and Darwin 2020-04-20 15:17:59 +01:00
vmc-emu.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
vmc-emu.h test-smardcard: Improve test coverage 2019-10-09 10:33:25 +01:00
win-alarm.c tests: Provide alarm replacement for Windows 2019-05-07 10:13:58 +01:00
win-alarm.h Declare exported functions as C 2020-05-01 06:58:08 +01:00

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

This directory will contain a testsuite for the server.

You can run all the tests and use libtool to debug any of them:

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
 event loop to provide core interface.

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

test-display-streaming.c
 this test can be used to check regressions. For this, test-display-streaming needs to be called passing --automated-tests as parameter