svn commit: samba r6859 - in branches/SAMBA_4_0/source: build/pidl build/pidl/tests script/tests

jelmer at samba.org jelmer at samba.org
Tue May 17 13:50:51 GMT 2005


Author: jelmer
Date: 2005-05-17 13:50:47 +0000 (Tue, 17 May 2005)
New Revision: 6859

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

Log:
Add ndr_align tests, use environment variables ($CC, $CFLAGS, $LDFLAGS)
where possible.

Added:
   branches/SAMBA_4_0/source/build/pidl/tests/ndr_align.pl
Modified:
   branches/SAMBA_4_0/source/build/pidl/test.pm
   branches/SAMBA_4_0/source/build/pidl/tests/ndr_simple.pl
   branches/SAMBA_4_0/source/script/tests/test_pidl.sh


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/test.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/test.pm	2005-05-17 13:50:18 UTC (rev 6858)
+++ branches/SAMBA_4_0/source/build/pidl/test.pm	2005-05-17 13:50:47 UTC (rev 6859)
@@ -8,7 +8,12 @@
 use util;
 
 my $idl_path = "./build/pidl/pidl.pl";
+my $cc = $ENV{CC};
+my @cflags = split / /, $ENV{CFLAGS};
+my @ldflags = split / /, $ENV{LDFLAGS};
 
+$cc = "cc" if ($cc eq "");
+
 sub generate_cfile($$$)
 {
 	my ($filename, $fragment, $incfiles) = @_;
@@ -30,7 +35,6 @@
 int main(int argc, char **argv)
 {
 	TALLOC_CTX *mem_ctx = talloc_init(NULL);
-	int ndr_flags = 0;
 	';
 	print OUT $fragment;
 	print OUT "\treturn 0;\n}\n";
@@ -76,16 +80,14 @@
 {
 	my ($filename) = @_;
 
-	print "Compiling C file $filename\n";
-
-	return system("cc", '-I.', '-Iinclude', '-c', $filename);
+	return system($cc, @cflags, '-I.', '-Iinclude', '-c', $filename);
 }
 
 sub link_files($$)
 {
 	my ($exe_name,$objs) = @_;
 
-	return system("cc", '-I.', '-Iinclude', '-Lbin', '-lrpc', '-o', $exe_name, @$objs);
+	return system($cc, @ldflags, '-I.', '-Iinclude', '-Lbin', '-lrpc', '-o', $exe_name, @$objs);
 }
 
 sub test_idl($$$$)
@@ -109,9 +111,10 @@
 	my @srcs = ($c_filename);
 	push (@srcs, @{$settings->{'ExtraFiles'}});
 
-#	foreach (@srcs) {
-#		return -1 if (compile_cfile($_) == -1);
-#	}
+	foreach (@srcs) {
+		next unless /\.c$/;
+		return -1 if (compile_cfile($_) == -1);
+	}
 
 	return -1 if (link_files($exe_filename, \@srcs) == -1);
 

Added: branches/SAMBA_4_0/source/build/pidl/tests/ndr_align.pl
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/tests/ndr_align.pl	2005-05-17 13:50:18 UTC (rev 6858)
+++ branches/SAMBA_4_0/source/build/pidl/tests/ndr_align.pl	2005-05-17 13:50:47 UTC (rev 6859)
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+# NDR alignment tests
+# (C) 2005 Jelmer Vernooij. Published under the GNU GPL
+use strict;
+
+use FindBin qw($RealBin);
+use lib "$RealBin/..";
+use test;
+
+my %settings = (
+	'IDL-Arguments' => ['--quiet', '--parse', '--parser=ndr_test.c', '--header=ndr_test.h'],
+	'IncludeFiles' => ['ndr_test.h'],
+	'ExtraFiles' => ['ndr_test.c'],
+);
+
+Test::test_idl('align-uint8-uint16', \%settings,
+'
+	typedef [public] struct { 
+		uint8 x;
+		uint16 y;
+	} bla;
+',
+'
+	struct ndr_push *ndr = ndr_push_init();
+	struct bla r;
+	uint8_t expected[] = { 0x0D, 0x00, 0xbe, 0xef };
+	DATA_BLOB expected_blob = { expected, 4 };
+	DATA_BLOB result_blob;
+	r.x = 13;
+	r.y = 0xbeef;
+
+	if (NT_STATUS_IS_ERR(ndr_push_bla(ndr, NDR_SCALARS|NDR_BUFFERS, &r)))
+		return 1;
+
+	result_blob = ndr_push_blob(ndr);
+	
+	if (!data_blob_equal(&result_blob, &expected_blob)) 
+		return 2;
+');


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

Modified: branches/SAMBA_4_0/source/build/pidl/tests/ndr_simple.pl
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/tests/ndr_simple.pl	2005-05-17 13:50:18 UTC (rev 6858)
+++ branches/SAMBA_4_0/source/build/pidl/tests/ndr_simple.pl	2005-05-17 13:50:47 UTC (rev 6859)
@@ -32,7 +32,7 @@
 	b.length = 1;
 	ndr = ndr_pull_init_blob(&b, mem_ctx);
 
-	if (NT_STATUS_IS_ERR(ndr_pull_uint8(ndr, ndr_flags, &result)))
+	if (NT_STATUS_IS_ERR(ndr_pull_uint8(ndr, NDR_SCALARS, &result)))
 		return 1;
 
 	if (result != 0x02) 

Modified: branches/SAMBA_4_0/source/script/tests/test_pidl.sh
===================================================================
--- branches/SAMBA_4_0/source/script/tests/test_pidl.sh	2005-05-17 13:50:18 UTC (rev 6858)
+++ branches/SAMBA_4_0/source/script/tests/test_pidl.sh	2005-05-17 13:50:47 UTC (rev 6859)
@@ -1,3 +1,4 @@
 #!/bin/sh
 ./build/pidl/tests/ndr_simple.pl
+./build/pidl/tests/ndr_align.pl
 ./build/pidl/tests/ndr_refptr.pl



More information about the samba-cvs mailing list