diff --git a/testing/bin/ktest-to-cxx b/testing/bin/ktest-to-cxx index 50b64adf..db5d0ed1 100644 --- a/testing/bin/ktest-to-cxx +++ b/testing/bin/ktest-to-cxx @@ -51,6 +51,7 @@ sub load_from_text { chomp $line; $line =~ s/^\s+//; + $line =~ s/\s+$//; if ( $line eq '' ) { next; @@ -78,13 +79,13 @@ sub load_from_text { }, type => sub { my $type = shift; - $type =~ s/\s//g; + $type =~ s/\s(\w)/uc($1)/eg; $test->{type} = $type; return undef; }, name => sub { my $name = shift; - $name =~ s/\s//g; + $name =~ s/\s(\w)/uc($1)/eg; $test->{name} = $name; return undef; }, @@ -174,6 +175,7 @@ sub load_from_text { }; } + close ($text_fh); @script_lines = @content; } @@ -181,52 +183,13 @@ sub load_from_text { sub generate_test_file { -my $preface = <rel2abs( $text_filename ) ]} - -SETUP_GOOGLETEST(); - -namespace kaleidoscope { -namespace testing { -namespace { - -class KeyboardReports : public VirtualDeviceTest {}; -EOF - -for my $line (split/\n/,$preface) { - cxx($line); -} - - cxx( "TEST_F(" . $test->{type} . "," . $test->{name} . ") {" ); - indent(); +generate_preface(); generate_key_addrs(); + generate_script( ); - outdent(); - cxx("} // TEST_F"); - -my $postscript = <{type} . "," . $test->{name} . ") {" ); + indent(); + $reports_expected = 0; for my $entry (@script_lines) { @@ -264,9 +230,14 @@ sub generate_script { } } } + + if ($reports_expected) { generate_check_expected_reports(); } + + outdent(); + cxx("} // TEST_F"); } sub generate_run { @@ -318,6 +289,47 @@ sub generate_check_expected_reports { cxx(""); } +sub generate_preface { +my $preface = <rel2abs( $text_filename ) ]} + +SETUP_GOOGLETEST(); + +namespace kaleidoscope { +namespace testing { +namespace { + +class @{[$test->{type}]} : public VirtualDeviceTest {}; +EOF + +for my $line (split/\n/,$preface) { + cxx($line); +} +} +sub generate_postscript { + +my $postscript = <