From 5796da6948379ffc101e813a4d68676e4a661c61 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 12 Aug 2009 10:24:01 +0200 Subject: pidl: fix parse_idl test after idl.yp changes We now generate 'FILE' and 'LINE' elements for each layer. This change makes the expected PIDL trees human readable:-) metze --- pidl/tests/parse_idl.pl | 131 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 103 insertions(+), 28 deletions(-) (limited to 'pidl/tests') diff --git a/pidl/tests/parse_idl.pl b/pidl/tests/parse_idl.pl index 9d43ddccc7..e06526dd1e 100755 --- a/pidl/tests/parse_idl.pl +++ b/pidl/tests/parse_idl.pl @@ -113,52 +113,127 @@ testok "cpp-quote", "cpp_quote(\"bla\")"; my $x = Parse::Pidl::IDL::parse_string("interface foo { struct x {}; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'NAME' => 'x', 'TYPE' => 'STRUCT', ELEMENTS => [] } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'STRUCT', + 'NAME' => 'x', + 'ELEMENTS' => [], + 'FILE' => '', + 'LINE' => 0 + } ], + 'FILE' => '', + 'LINE' => 0 +}]); $x = Parse::Pidl::IDL::parse_string("interface foo { struct x; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'NAME' => 'x', 'TYPE' => 'STRUCT' } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'STRUCT', + 'NAME' => 'x', + 'FILE' => '', + 'LINE' => 0 + } ], + 'FILE' => '', + 'LINE' => 0 +}]); $x = Parse::Pidl::IDL::parse_string("cpp_quote(\"foobar\")", ""); -is_deeply($x, - [ { 'FILE' => '', 'DATA' => '"foobar"', - 'TYPE' => 'CPP_QUOTE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'CPP_QUOTE', + 'DATA' => '"foobar"', + 'FILE' => '', + 'LINE' => 0 +}]); # A typedef of a struct without body $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct x y; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'FILE' => '', 'LINE' => 0, 'NAME' => 'y', 'TYPE' => 'TYPEDEF', DATA => { - TYPE => 'STRUCT', NAME => 'x' } } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'TYPEDEF', + 'NAME' => 'y', + 'DATA' => { + 'TYPE' => 'STRUCT', + 'NAME' => 'x', + 'FILE' => '', + 'LINE' => 0, + }, + 'FILE' => '', + 'LINE' => 0, + } ], + 'FILE' => '', + 'LINE' => 0 +}]); # A typedef of a struct with empty body $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct {} y; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'FILE' => '', 'LINE' => 0, 'NAME' => 'y', 'TYPE' => 'TYPEDEF', DATA => { TYPE => 'STRUCT', ELEMENTS => [] } } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'TYPEDEF', + 'NAME' => 'y', + 'DATA' => { + 'TYPE' => 'STRUCT', + 'ELEMENTS' => [], + 'FILE' => '', + 'LINE' => 0 + }, + 'FILE' => '', + 'LINE' => 0 + } ], + 'FILE' => '', + 'LINE' => 0 +}]); # A typedef of a bitmap with no body $x = Parse::Pidl::IDL::parse_string("interface foo { typedef bitmap x y; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'FILE' => '', 'LINE' => 0, 'NAME' => 'y', 'TYPE' => 'TYPEDEF', DATA => { TYPE => 'BITMAP', NAME => 'x' } } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'TYPEDEF', + 'NAME' => 'y', + 'DATA' => { + 'TYPE' => 'BITMAP', + 'NAME' => 'x', + 'FILE' => '', + 'LINE' => 0 + }, + 'FILE' => '', + 'LINE' => 0 + } ], + 'FILE' => '', + 'LINE' => 0 +}]); # A typedef of a union with no body $x = Parse::Pidl::IDL::parse_string("interface foo { typedef union x y; }", ""); -is_deeply($x, - [ { 'FILE' => '', 'NAME' => 'foo', 'DATA' => [ - { 'FILE' => '', 'LINE' => 0, 'NAME' => 'y', 'TYPE' => 'TYPEDEF', DATA => { TYPE => 'UNION', NAME => 'x' } } ], - 'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); +is_deeply($x, [ { + 'TYPE' => 'INTERFACE', + 'NAME' => 'foo', + 'DATA' => [ { + 'TYPE' => 'TYPEDEF', + 'NAME' => 'y', + 'DATA' => { + 'TYPE' => 'UNION', + 'NAME' => 'x', + 'FILE' => '', + 'LINE' => 0 + }, + 'FILE' => '', + 'LINE' => 0 + } ], + 'FILE' => '', + 'LINE' => 0 +}]); -- cgit