diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-12-25 01:33:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:47:42 -0500 |
commit | 620d375320e143abcf6775a392f9bde3146f2baa (patch) | |
tree | 9d477da925be390502d8a49eb53cdd98c4ae5dec /source4/pidl/tests | |
parent | 68ef82aac72c351f6e166b92bbb4573e8bcdbc86 (diff) | |
download | samba-620d375320e143abcf6775a392f9bde3146f2baa.tar.gz samba-620d375320e143abcf6775a392f9bde3146f2baa.tar.bz2 samba-620d375320e143abcf6775a392f9bde3146f2baa.zip |
r12465: Merge Parse::Pidl::Samba4::NDR::Header into Parse::Pidl::Samba4::NDR::Parser.
Small optimization to avoid including NDR headers multiple times
(This used to be commit 6967b9884970b6f1d7617196ab024d401628a13c)
Diffstat (limited to 'source4/pidl/tests')
-rwxr-xr-x | source4/pidl/tests/ndr_simple.pl | 70 |
1 files changed, 43 insertions, 27 deletions
diff --git a/source4/pidl/tests/ndr_simple.pl b/source4/pidl/tests/ndr_simple.pl index 96e213ede9..5bdd02b763 100755 --- a/source4/pidl/tests/ndr_simple.pl +++ b/source4/pidl/tests/ndr_simple.pl @@ -4,45 +4,61 @@ # Published under the GNU General Public License use strict; -use Test::Simple tests => 4; +use Test::Simple tests => 6; use FindBin qw($RealBin); use lib "$RealBin/../lib"; use Parse::Pidl::IDL; use Parse::Pidl::NDR; use Parse::Pidl::Samba4::NDR::Parser; +use Parse::Pidl::Samba4::Header; my $pidl = Parse::Pidl::IDL::parse_string( "interface test { void Test(); }; ", "<test>"); ok (defined($pidl)); my $pndr = Parse::Pidl::NDR::Parse($pidl); ok(defined($pndr)); -my ($header,$parser) = Parse::Pidl::Samba4::NDR::Parser($pndr); +my $header = Parse::Pidl::Samba4::Header::Parse($pidl); ok(defined($header)); +my ($ndrheader,$parser) = Parse::Pidl::Samba4::NDR::Parser::Parse($pndr, "foo"); ok(defined($parser)); +ok(defined($ndrheader)); +my $outfile = "test"; -#Parse::Pidl::Test::test_idl( -# # Name -# 'UInt8', -# -# # Settings -# \%settings, -# -# -# # C Test -# ' -# uint8_t data[] = { 0x02 }; -# uint8_t result; -# DATA_BLOB b; -# struct ndr_pull *ndr; -# -# b.data = data; -# b.length = 1; -# ndr = ndr_pull_init_blob(&b, mem_ctx); -# -# if (NT_STATUS_IS_ERR(ndr_pull_uint8(ndr, NDR_SCALARS, &result))) -# return 1; -# -# if (result != 0x02) -# return 2; -#'); +#my $cflags = $ENV{CFLAGS}; +my $cflags = "-Iinclude -I."; + +open CC, "|cc -x c -o $outfile $cflags -"; +#open CC, ">foo"; +print CC "#include \"includes.h\""; +print CC $header; +print CC $ndrheader; +print CC $parser; +print CC + ' +int main(int argc, const char **argv) +{ + uint8_t data[] = { 0x02 }; + uint8_t result; + DATA_BLOB b; + struct ndr_pull *ndr; + TALLOC_CTX *mem_ctx = talloc_init(NULL); + + b.data = data; + b.length = 1; + ndr = ndr_pull_init_blob(&b, mem_ctx); + + if (NT_STATUS_IS_ERR(ndr_pull_uint8(ndr, NDR_SCALARS, &result))) + return 1; + + if (result != 0x02) + return 2; + + talloc_free(mem_ctx); + + return 0; +} +'; +close CC; + +ok(-f $outfile); |