[Spice-devel] [PATCH spice-server 1/2] Fixup display info test

Frediano Ziglio fziglio at redhat.com
Wed Feb 13 14:18:20 UTC 2019


> 
> Rather than showing the expected data in raw format (ascii codes, etc),
> which is hard to verify, show the characters themselves, and group them
> by structure.
> 

Thanks, I've been really lazy, I just dump, checked and copy&paste,
this patch make it much better.

> Also add a few more comments.
> ---
>  server/tests/test-stream-device.c | 35 +++++++++++++++++++++++--------
>  1 file changed, 26 insertions(+), 9 deletions(-)
> 
> diff --git a/server/tests/test-stream-device.c
> b/server/tests/test-stream-device.c
> index cb3a1a4ff..dcdd91896 100644
> --- a/server/tests/test-stream-device.c
> +++ b/server/tests/test-stream-device.c
> @@ -493,7 +493,8 @@ static void test_stream_device_data_message(TestFixture
> *fixture, gconstpointer
>  
>  static void test_display_info(TestFixture *fixture, gconstpointer user_data)
>  {
> -    // build a message for the streaming device
> +    // craft a message from the mock stream device that provides display
> info to the server for the
> +    // given stream
>      static const char address[] = "pci/a/b.cde";
>      StreamMsgDeviceDisplayInfo info = {
>          .stream_id = GUINT32_TO_LE(0x01020304),
> @@ -510,11 +511,13 @@ static void test_display_info(TestFixture *fixture,
> gconstpointer user_data)
>      *message_sizes_end = p - message;
>      ++message_sizes_end;
>  
> -    // parse the message we crafted
> +    // parse the simulated display info message from the stream device so
> the server now has display
> +    // info for the mock stream device
>      test_kick();
>  
>      // initialize a QXL interface
>      test_add_display_interface(test);
> +    /* qxl device supports 2 monitors */
>      spice_qxl_set_device_info(&test->qxl_instance, "pci/0/1.2", 0, 2);
>  
>      // build the buffer to send to the agent for display information
> @@ -524,14 +527,28 @@ static void test_display_info(TestFixture *fixture,
> gconstpointer user_data)
>      size_t buf_len;
>      uint8_t *buf = spice_marshaller_linearize(m, 0, &buf_len, &to_free);
>  
> -    // check output buffer
> +    // check output buffer. The message that we send to the vdagent should
> combine display info for
> +    // the stream device that we crafted above and the qxl device.
>      static const uint8_t expected_buffer[] = {
> -          3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
> -         10,  0,  0,  0,112, 99,105, 47, 48, 47, 49, 46, 50,  0,  0,  0,
> -          0,  0,  1,  0,  0,  0,  1,  0,  0,  0, 10,  0,  0,  0,112, 99,
> -        105, 47, 48, 47, 49, 46, 50,  0,  0,  0,  0,  0,  4,  3,  2,  1,
> -         13, 12, 11, 10, 12,  0,  0,  0,112, 99,105, 47, 97, 47, 98, 46,
> -         99,100,101,  0
> +          /* device count */        3,  0,  0,  0,
> +
> +          /* channel_id */          0,  0,  0,  0,
> +          /* monitor_id */          0,  0,  0,  0,
> +          /* device_display_id */   0,  0,  0,  0,
> +          /* device_address_len */ 10,  0,  0,  0,
> +          /* device_address */    'p','c','i','/','0','/','1','.','2',  0,
> +
> +          /* channel_id */          0,  0,  0,  0,
> +          /* monitor_id */          1,  0,  0,  0,
> +          /* device_display_id */   1,  0,  0,  0,
> +          /* device_address_len */ 10,  0,  0,  0,
> +          /* device_address */    'p','c', 'i','/','0','/','1','.','2',  0,
> +
> +          /* channel_id */          0,  0,  0,  0,
> +          /* monitor_id */          4,  3,  2,  1,
> +          /* device_display_id */  13, 12, 11, 10,
> +          /* device_address_len */ 12,  0,  0,  0,
> +          /* device_address */
> 'p','c','i','/','a','/','b','.','c','d','e',  0
>      };
>      g_assert_cmpint(buf_len, ==, sizeof(expected_buffer));
>      g_assert_true(memcmp(buf, expected_buffer, buf_len) == 0);

Frediano


More information about the Spice-devel mailing list