From e6267a684cb41e34ee929809683748c3675ca630 Mon Sep 17 00:00:00 2001 From: Michael Hofmann Date: Sun, 29 Mar 2015 18:52:03 +0200 Subject: [PATCH] Testcase for non-null-terminated WM_CLASS. - fails most of the time --- testcases/t/235-wm-class-change-handler.t | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/testcases/t/235-wm-class-change-handler.t b/testcases/t/235-wm-class-change-handler.t index e6cacded..3685b30c 100644 --- a/testcases/t/235-wm-class-change-handler.t +++ b/testcases/t/235-wm-class-change-handler.t @@ -31,16 +31,17 @@ EOT my $pid = launch_with_config($config); sub change_window_class { - my ($window, $class) = @_; + my ($window, $class, $length) = @_; my $atomname = $x->atom(name => 'WM_CLASS'); my $atomtype = $x->atom(name => 'STRING'); + $length ||= length($class) + 1; $x->change_property( PROP_MODE_REPLACE, $window->id, $atomname->id, $atomtype->id, 8, - length($class) + 1, + $length, $class ); sync_with_i3; @@ -65,6 +66,13 @@ is($con->{window_properties}->{instance}, 'special', is($con->{mark}, 'special_class_mark', 'A `for_window` assignment should run for a match when the window changes class'); +change_window_class($win, "abcdefghijklmnopqrstuv\0abcd", 24); + +$con = @{get_ws_content($ws)}[0]; + +is($con->{window_properties}->{class}, 'a', + 'Non-null-terminated strings should be handled correctly'); + exit_gracefully($pid); done_testing;