tests: move does_i3_live to i3test::Test

This commit is contained in:
Michael Stapelberg 2012-09-10 13:29:50 +02:00
parent 6bfbec9da3
commit 0626c637aa
2 changed files with 17 additions and 8 deletions

View File

@ -34,7 +34,6 @@ our @EXPORT = qw(
get_dock_clients get_dock_clients
cmd cmd
sync_with_i3 sync_with_i3
does_i3_live
exit_gracefully exit_gracefully
workspace_exists workspace_exists
focused_ws focused_ws
@ -459,13 +458,6 @@ sub sync_with_i3 {
}; };
} }
sub does_i3_live {
my $tree = i3(get_socket_path())->get_tree->recv;
my @nodes = @{$tree->{nodes}};
my $ok = (@nodes > 0);
$tester->ok($ok, 'i3 still lives');
return $ok;
}
# Tries to exit i3 gracefully (with the 'exit' cmd) or kills the PID if that fails # Tries to exit i3 gracefully (with the 'exit' cmd) or kills the PID if that fails
sub exit_gracefully { sub exit_gracefully {

View File

@ -6,6 +6,7 @@ use base 'Test::Builder::Module';
our @EXPORT = qw( our @EXPORT = qw(
is_num_children is_num_children
cmp_float cmp_float
does_i3_live
); );
my $CLASS = __PACKAGE__; my $CLASS = __PACKAGE__;
@ -83,6 +84,22 @@ sub cmp_float {
$tb->cmp_ok(abs($a - $b), '<', 1e-6, $name); $tb->cmp_ok(abs($a - $b), '<', 1e-6, $name);
} }
=head2 does_i3_live
Returns true if the layout tree can still be received from i3.
# i3 used to crash on invalid commands in revision X
cmd 'invalid command';
does_i3_live;
=cut
sub does_i3_live {
my $tree = i3test::i3(i3test::get_socket_path())->get_tree->recv;
my @nodes = @{$tree->{nodes}};
my $tb = $CLASS->builder;
$tb->ok((@nodes > 0), 'i3 still lives');
}
=head1 AUTHOR =head1 AUTHOR
Michael Stapelberg <michael@i3wm.org> Michael Stapelberg <michael@i3wm.org>