Author: jelmer
Date: 2007-02-25 09:55:57 +0000 (Sun, 25 Feb 2007)
New Revision: 21532

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

Log:
Add tests for StripPrefixes utility function.
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/pidl/TODO
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm
   branches/SAMBA_4_0/source/pidl/tests/wireshark-ndr.pl


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]
[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/TODO
===================================================================
--- branches/SAMBA_4_0/source/pidl/TODO 2007-02-25 09:35:32 UTC (rev 21531)
+++ branches/SAMBA_4_0/source/pidl/TODO 2007-02-25 09:55:57 UTC (rev 21532)
@@ -1,3 +1,5 @@
+- allow [public] on typedefs only
+
 - EJS output backend shouldn't use the NDR levels stuff but instead 
   as the "C levels" and NDR levels don't necessarily match.
 

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-25 09:35:32 UTC (rev 21531)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Wireshark/NDR.pm      
2007-02-25 09:55:57 UTC (rev 21532)
@@ -18,7 +18,7 @@
 
 use Exporter;
 @ISA = qw(Exporter);
[EMAIL PROTECTED] = qw(field2name @ett %res PrintIdl);
[EMAIL PROTECTED] = qw(field2name @ett %res PrintIdl StripPrefixes);
 
 use strict;
 use Parse::Pidl qw(error warning);
@@ -46,11 +46,11 @@
        "ptr" => "NDR_POINTER_PTR"
 );
 
-sub StripPrefixes($)
+sub StripPrefixes($$)
 {
-       my ($s) = @_;
+       my ($s, $prefixes) = @_;
 
-       foreach (@{$conformance->{strip_prefixes}}) {
+       foreach (@$prefixes) {
                $s =~ s/^$_\_//g;
        }
 
@@ -135,9 +135,9 @@
 {
        my ($e,$name,$ifname) = @_;
        my $valsstring = "$ifname\_$name\_vals";
-       my $dissectorname = "$ifname\_dissect\_enum\_".StripPrefixes($name);
+       my $dissectorname = "$ifname\_dissect\_enum\_".StripPrefixes($name, 
$conformance->{strip_prefixes});
 
-       return if (defined($conformance->{noemit}->{StripPrefixes($name)}));
+       return if (defined($conformance->{noemit}->{StripPrefixes($name, 
$conformance->{strip_prefixes})}));
 
        foreach (@{$e->{ELEMENTS}}) {
                if (/([^=]*)=(.*)/) {
@@ -176,7 +176,7 @@
 sub Bitmap($$$)
 {
        my ($e,$name,$ifname) = @_;
-       my $dissectorname = "$ifname\_dissect\_bitmap\_".StripPrefixes($name);
+       my $dissectorname = "$ifname\_dissect\_bitmap\_".StripPrefixes($name, 
$conformance->{strip_prefixes});
 
        register_ett("ett_$ifname\_$name");
 
@@ -272,7 +272,7 @@
                } elsif ($l->{LEVEL} eq "EMBEDDED") {
                        $type = "embedded";
                }
-               pidl_code "offset = dissect_ndr_$type\_pointer(tvb, offset, 
pinfo, tree, drep, $myname\_, $ptrtype_mappings{$l->{POINTER_TYPE}}, \"Pointer 
to ".field2name(StripPrefixes($e->{NAME})) . " ($e->{TYPE})\",$hf);";
+               pidl_code "offset = dissect_ndr_$type\_pointer(tvb, offset, 
pinfo, tree, drep, $myname\_, $ptrtype_mappings{$l->{POINTER_TYPE}}, \"Pointer 
to ".field2name(StripPrefixes($e->{NAME}, $conformance->{strip_prefixes})) . " 
($e->{TYPE})\",$hf);";
        } elsif ($l->{TYPE} eq "ARRAY") {
                if ($l->{IS_INLINE}) {
                        error($e->{ORIGINAL}, "Inline arrays not supported");
@@ -353,7 +353,7 @@
 {
        my ($e,$pn,$ifname) = @_;
 
-       my $dissectorname = 
"$ifname\_dissect\_element\_".StripPrefixes($pn)."\_".StripPrefixes($e->{NAME});
+       my $dissectorname = "$ifname\_dissect\_element\_".StripPrefixes($pn, 
$conformance->{strip_prefixes})."\_".StripPrefixes($e->{NAME}, 
$conformance->{strip_prefixes});
 
        my $call_code = "offset = $dissectorname(tvb, offset, pinfo, tree, 
drep);";
 
@@ -381,7 +381,7 @@
        my $hf = register_hf_field("hf_$ifname\_$pn\_$e->{NAME}", 
field2name($e->{NAME}), "$ifname.$pn.$e->{NAME}", $type->{FT_TYPE}, 
$type->{BASE_TYPE}, $type->{VALSSTRING}, $type->{MASK}, "");
        $hf_used{$hf} = 1;
 
-       my $eltname = StripPrefixes($pn) . ".$e->{NAME}";
+       my $eltname = StripPrefixes($pn, $conformance->{strip_prefixes}) . 
".$e->{NAME}";
        if (defined($conformance->{noemit}->{$eltname})) {
                return $call_code;
        }
@@ -513,9 +513,9 @@
 sub Struct($$$)
 {
        my ($e,$name,$ifname) = @_;
-       my $dissectorname = "$ifname\_dissect\_struct\_".StripPrefixes($name);
+       my $dissectorname = "$ifname\_dissect\_struct\_".StripPrefixes($name, 
$conformance->{strip_prefixes});
 
-       return if (defined($conformance->{noemit}->{StripPrefixes($name)}));
+       return if (defined($conformance->{noemit}->{StripPrefixes($name, 
$conformance->{strip_prefixes})}));
 
        register_ett("ett_$ifname\_$name");
 
@@ -563,9 +563,9 @@
 {
        my ($e,$name,$ifname) = @_;
 
-       my $dissectorname = "$ifname\_dissect_".StripPrefixes($name);
+       my $dissectorname = "$ifname\_dissect_".StripPrefixes($name, 
$conformance->{strip_prefixes});
 
-       return if (defined($conformance->{noemit}->{StripPrefixes($name)}));
+       return if (defined($conformance->{noemit}->{StripPrefixes($name, 
$conformance->{strip_prefixes})}));
        
        register_ett("ett_$ifname\_$name");
 

Modified: branches/SAMBA_4_0/source/pidl/tests/wireshark-ndr.pl
===================================================================
--- branches/SAMBA_4_0/source/pidl/tests/wireshark-ndr.pl       2007-02-25 
09:35:32 UTC (rev 21531)
+++ branches/SAMBA_4_0/source/pidl/tests/wireshark-ndr.pl       2007-02-25 
09:55:57 UTC (rev 21532)
@@ -5,12 +5,12 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3;
+use Test::More tests => 6;
 use FindBin qw($RealBin);
 use lib "$RealBin";
 use Util;
 use Parse::Pidl::Util qw(MyDumper);
-use Parse::Pidl::Wireshark::NDR qw(field2name %res PrintIdl);
+use Parse::Pidl::Wireshark::NDR qw(field2name %res PrintIdl StripPrefixes);
 
 is("Access Mask", field2name("access_mask"));
 is("Accessmask", field2name("AccessMask"));
@@ -21,3 +21,7 @@
 /* IDL: bar */
 
 ", $res{code});
+
+is("bla_foo", StripPrefixes("bla_foo", []));
+is("foo", StripPrefixes("bla_foo", ["bla"]));
+is("foo_bla", StripPrefixes("foo_bla", ["bla"]));

Reply via email to