pidl: fix parse_idl test after idl.yp changes
authorStefan Metzmacher <metze@samba.org>
Wed, 12 Aug 2009 08:24:01 +0000 (10:24 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 12 Aug 2009 08:27:20 +0000 (10:27 +0200)
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

index 9d43ddccc7ae3457e7f3e687737fbc98be0a880c..e06526dd1eb9aa32509d18d18b821d762a72898c 100755 (executable)
@@ -113,52 +113,127 @@ testok "cpp-quote", "cpp_quote(\"bla\")";
 
 my $x = Parse::Pidl::IDL::parse_string("interface foo { struct x {}; }", "<foo>");
 
 
 my $x = Parse::Pidl::IDL::parse_string("interface foo { struct x {}; }", "<foo>");
 
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', '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' => '<foo>',
+               'LINE' => 0
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);
 
 $x = Parse::Pidl::IDL::parse_string("interface foo { struct x; }", "<foo>");
 
 $x = Parse::Pidl::IDL::parse_string("interface foo { struct x; }", "<foo>");
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', 'NAME' => 'foo', 'DATA' => [ 
-                { 'NAME' => 'x', 'TYPE' => 'STRUCT' } ], 
-                'TYPE' => 'INTERFACE', 'LINE' => 0 } ]); 
+is_deeply($x, [ {
+       'TYPE' => 'INTERFACE',
+       'NAME' => 'foo',
+       'DATA' => [ {
+               'TYPE' => 'STRUCT',
+               'NAME' => 'x',
+               'FILE' => '<foo>',
+               'LINE' => 0
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);
 
 $x = Parse::Pidl::IDL::parse_string("cpp_quote(\"foobar\")", "<quote>");
 
 $x = Parse::Pidl::IDL::parse_string("cpp_quote(\"foobar\")", "<quote>");
-is_deeply($x, 
-        [ { 'FILE' => '<quote>', 'DATA' => '"foobar"',
-                'TYPE' => 'CPP_QUOTE', 'LINE' => 0 } ]); 
+is_deeply($x, [ {
+       'TYPE' => 'CPP_QUOTE',
+       'DATA' => '"foobar"',
+       'FILE' => '<quote>',
+       'LINE' => 0
+}]);
 
 # A typedef of a struct without body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct x y; }", "<foo>");
 
 
 # A typedef of a struct without body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct x y; }", "<foo>");
 
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', 'NAME' => 'foo', 'DATA' => [ 
-                { 'FILE' => '<foo>', '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' => '<foo>',
+                       'LINE' => 0,
+               },
+               'FILE' => '<foo>',
+               'LINE' => 0,
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);
 
 # A typedef of a struct with empty body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct {} y; }", "<foo>");
 
 
 # A typedef of a struct with empty body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef struct {} y; }", "<foo>");
 
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', 'NAME' => 'foo', 'DATA' => [ 
-                { 'FILE' => '<foo>', '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' => '<foo>',
+                       'LINE' => 0
+               },
+               'FILE' => '<foo>',
+               'LINE' => 0
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);
 
 # A typedef of a bitmap with no body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef bitmap x y; }", "<foo>");
 
 
 # A typedef of a bitmap with no body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef bitmap x y; }", "<foo>");
 
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', 'NAME' => 'foo', 'DATA' => [ 
-                { 'FILE' => '<foo>', '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' => '<foo>',
+                       'LINE' => 0
+               },
+               'FILE' => '<foo>',
+               'LINE' => 0
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);
 
 
 # A typedef of a union with no body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef union x y; }", "<foo>");
 
 
 
 # A typedef of a union with no body
 $x = Parse::Pidl::IDL::parse_string("interface foo { typedef union x y; }", "<foo>");
 
-is_deeply($x, 
-        [ { 'FILE' => '<foo>', 'NAME' => 'foo', 'DATA' => [ 
-                { 'FILE' => '<foo>', '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' => '<foo>',
+                       'LINE' => 0
+               },
+               'FILE' => '<foo>',
+               'LINE' => 0
+       } ],
+       'FILE' => '<foo>',
+       'LINE' => 0
+}]);