Author: jelmer
Date: 2007-02-18 16:46:59 +0000 (Sun, 18 Feb 2007)
New Revision: 21431

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21431

Log:
More tests, work on support in wireshark for tagged types.
Added:
   branches/SAMBA_4_0/source/pidl/tests/dump.pl
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Dump.pm
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:merge
   - [EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]

   + [EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]


Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Dump.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Dump.pm       2007-02-18 
16:21:28 UTC (rev 21430)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Dump.pm       2007-02-18 
16:46:59 UTC (rev 21431)
@@ -24,7 +24,7 @@
 use vars qw($VERSION);
 $VERSION = '0.01';
 @ISA = qw(Exporter);
[EMAIL PROTECTED] = qw(DumpTypedef DumpStruct DumpEnum DumpBitmap DumpUnion 
DumpFunction);
[EMAIL PROTECTED] = qw(DumpType DumpTypedef DumpStruct DumpEnum DumpBitmap 
DumpUnion DumpFunction);
 
 use strict;
 use Parse::Pidl::Util qw(has_property);
@@ -87,7 +87,12 @@
     my($struct) = shift;
     my($res);
 
-    $res .= "struct {\n";
+    $res .= "struct ";
+       if ($struct->{NAME}) {
+               $res.="$struct->{NAME} ";
+       }
+       
+       $res.="{\n";
     if (defined $struct->{ELEMENTS}) {
                foreach (@{$struct->{ELEMENTS}}) {
                    $res .= "\t" . DumpElement($_) . ";\n";
@@ -185,18 +190,15 @@
 sub DumpType($)
 {
     my($data) = shift;
-    my($res);
 
     if (ref($data) eq "HASH") {
-       ($data->{TYPE} eq "STRUCT") && ($res .= DumpStruct($data));
-       ($data->{TYPE} eq "UNION") && ($res .= DumpUnion($data));
-       ($data->{TYPE} eq "ENUM") && ($res .= DumpEnum($data));
-       ($data->{TYPE} eq "BITMAP") && ($res .= DumpBitmap($data));
+               return DumpStruct($data) if ($data->{TYPE} eq "STRUCT");
+               return DumpUnion($data) if ($data->{TYPE} eq "UNION");
+               return DumpEnum($data) if ($data->{TYPE} eq "ENUM");
+               return DumpBitmap($data) if ($data->{TYPE} eq "BITMAP");
     } else {
-       $res .= "$data";
+               return $data;
     }
-
-    return $res;
 }
 
 #####################################################################

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm      
2007-02-18 16:21:28 UTC (rev 21430)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm      
2007-02-18 16:46:59 UTC (rev 21431)
@@ -25,7 +25,7 @@
 use Parse::Pidl::Typelist qw(getType);
 use Parse::Pidl::Util qw(has_property property_matches make_str);
 use Parse::Pidl::NDR qw(ContainsString GetNextLevel);
-use Parse::Pidl::Dump qw(DumpTypedef DumpFunction);
+use Parse::Pidl::Dump qw(DumpType DumpFunction);
 use Parse::Pidl::Wireshark::Conformance qw(ReadConformance);
 use File::Basename;    
 
@@ -127,7 +127,7 @@
 {
        my($interface) = @_;
        Const($_,$interface->{NAME}) foreach (@{$interface->{CONSTS}});
-       Typedef($_,$interface->{NAME}) foreach (@{$interface->{TYPES}});
+       Type($_, $_->{NAME}, $interface->{NAME}) foreach 
(@{$interface->{TYPES}});
        Function($_,$interface->{NAME}) foreach (@{$interface->{FUNCTIONS}});
 }
 
@@ -637,18 +637,26 @@
        }
 }
 
-sub Typedef($$)
+sub Typedef($$$)
 {
-       my ($e,$ifname) = @_;
+       my ($e,$name,$ifname) = @_;
 
-       PrintIdl DumpTypedef($e->{ORIGINAL});
+       Type($e->{DATA}, $name, $ifname);
+}
 
+sub Type($$$)
+{
+       my ($e, $name, $ifname) = @_;
+
+       PrintIdl DumpType($e->{ORIGINAL});
+
        {
                ENUM => \&Enum,
                STRUCT => \&Struct,
                UNION => \&Union,
-               BITMAP => \&Bitmap
-       }->{$e->{DATA}->{TYPE}}->($e->{DATA}, $e->{NAME}, $ifname);
+               BITMAP => \&Bitmap,
+               TYPEDEF => \&Typedef
+       }->{$e->{TYPE}}->($e, $name, $ifname);
 }
 
 sub RegisterInterface($)

Added: branches/SAMBA_4_0/source/pidl/tests/dump.pl
===================================================================
--- branches/SAMBA_4_0/source/pidl/tests/dump.pl        2007-02-18 16:21:28 UTC 
(rev 21430)
+++ branches/SAMBA_4_0/source/pidl/tests/dump.pl        2007-02-18 16:46:59 UTC 
(rev 21431)
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+# (C) 2007 Jelmer Vernooij <[EMAIL PROTECTED]>
+# Published under the GNU General Public License
+use strict;
+use warnings;
+
+use Test::More tests => 1;
+use FindBin qw($RealBin);
+use lib "$RealBin";
+use Util;
+use Parse::Pidl::Dump qw(DumpStruct);
+
+is (DumpStruct({ NAME => "foo", ELEMENTS => []}), 
+       "struct foo {\n}");
+


Property changes on: branches/SAMBA_4_0/source/pidl/tests/dump.pl
___________________________________________________________________
Name: svn:executable
   + *

Reply via email to