Signed-off-by: Hao Liu <hliu@xxxxxxxxxx> --- scripts/domain/275-open-graphics-fd.t | 76 +++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 scripts/domain/275-open-graphics-fd.t diff --git a/scripts/domain/275-open-graphics-fd.t b/scripts/domain/275-open-graphics-fd.t new file mode 100644 index 0000000..9377f50 --- /dev/null +++ b/scripts/domain/275-open-graphics-fd.t @@ -0,0 +1,76 @@ +# -*- perl -*- +# +# Copyright (C) 2012-2014 Red Hat, Inc. +# Copyright (C) 2014 Hao Liu <hliu@xxxxxxxxxx> +# +# This program is free software; You can redistribute it and/or modify +# it under the GNU General Public License as published by the Free +# Software Foundation; either version 2, or (at your option) any +# later version +# +# The file "LICENSE" distributed along with this file provides full +# details of the terms and conditions +# + +=pod + +=head1 NAME + +domain/275-open-graphics-fd.t - Test open_graphics_fd function + +=head1 DESCRIPTION + +The test case validates that open_graphics_fd function works well + +=cut + +use strict; +use warnings; + +use Test::More tests => 9; + +use Sys::Virt::TCK; +use Test::Exception; +use IO::Handle; + +my $tck = Sys::Virt::TCK->new(); +my $conn = eval { $tck->setup(); }; +BAIL_OUT "failed to setup test harness: $@" if $@; +END { + $tck->cleanup if $tck; +} + + +# looking up domain +my $dom_name ="tck"; +my $xml = $tck->generic_domain(name => $dom_name)->as_xml; +diag "domain xml is $xml"; +my $dom = $conn->define_domain($xml); +$dom->create; +ok($dom->get_id() > 0, "running domain has an ID > 0"); +my $graphics_cnt = xpath($dom, "count(/domain/devices/graphics)")->value(); +my $valid_idx = $graphics_cnt - 1; +my $invalid_idx = $graphics_cnt; + +my $fd = 0; +my $fh = IO::Handle->new(); + +diag "open fd for valid graphics device"; +lives_ok(sub {$fd = $dom->open_graphics_fd($valid_idx, 0)}, "open graphics fd"); +ok($fd > 0, "graphic fd is $fd"); +$fh->fdopen($fd, "r"); +ok($fh->opened, "fd is accessible"); +$fh->close(); + +diag "open fd for valid graphics device skip auth"; +$fd = 0; +lives_ok(sub {$fd = $dom->open_graphics_fd($valid_idx, Sys::Virt::Domain::OPEN_GRAPHICS_SKIPAUTH)}, "open graphics fd"); +ok($fd > 0, "graphic fd is $fd"); +$fh->fdopen($fd, "r"); +ok($fh->opened, "fd is accessible"); +$fh->close(); + +diag "open fd for non-exist graphics device"; +$fd = 0; +ok_error(sub {$fd = $dom->open_graphics_fd($invalid_idx, 0)}, "open graphics fd"); +ok($fd eq 0, "graphic fd is not returned"); -- 1.9.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list