1#!/usr/bin/perl 2# (C) 2007 Jelmer Vernooij <jelmer@samba.org> 3# Published under the GNU General Public License 4use strict; 5use warnings; 6 7use Test::More tests => 6; 8use FindBin qw($RealBin); 9use lib "$RealBin"; 10use Util; 11use Parse::Pidl::Samba4::TDR qw(ParserType); 12 13my $tdr = new Parse::Pidl::Samba4::TDR(); 14 15$tdr->ParserType({TYPE => "STRUCT", NAME => "foo", PROPERTIES => {public => 1}}, "pull"); 16is($tdr->{ret}, "NTSTATUS tdr_pull_foo (struct tdr_pull *tdr, TALLOC_CTX *mem_ctx, struct foo *v) 17{ 18 return NT_STATUS_OK; 19} 20 21"); 22is($tdr->{ret_hdr}, "NTSTATUS tdr_pull_foo (struct tdr_pull *tdr, TALLOC_CTX *mem_ctx, struct foo *v);\n"); 23 24 25$tdr = new Parse::Pidl::Samba4::TDR(); 26$tdr->ParserType({TYPE => "UNION", NAME => "bar", PROPERTIES => {public => 1}}, "pull"); 27is($tdr->{ret}, "NTSTATUS tdr_pull_bar(struct tdr_pull *tdr, TALLOC_CTX *mem_ctx, int level, union bar *v) 28{ 29 switch (level) { 30 } 31 return NT_STATUS_OK; 32 33} 34 35"); 36is($tdr->{ret_hdr}, "NTSTATUS tdr_pull_bar(struct tdr_pull *tdr, TALLOC_CTX *mem_ctx, int level, union bar *v);\n"); 37 38$tdr = new Parse::Pidl::Samba4::TDR(); 39$tdr->ParserType({TYPE => "UNION", NAME => "bar", PROPERTIES => {}}, "pull"); 40is($tdr->{ret}, "static NTSTATUS tdr_pull_bar(struct tdr_pull *tdr, TALLOC_CTX *mem_ctx, int level, union bar *v) 41{ 42 switch (level) { 43 } 44 return NT_STATUS_OK; 45 46} 47 48"); 49is($tdr->{ret_hdr}, ""); 50