From 1952e5494db6b773df6012de2d6ed889301a8d7b Mon Sep 17 00:00:00 2001 From: T Jake Luciani Date: Sun, 1 Feb 2009 04:47:30 +0000 Subject: [PATCH] THRIFT-199: integrate perl into automake git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@739697 13f79535-47bb-0310-9956-ffa450edef68 --- .gitignore | 9 +++++++++ configure.ac | 8 ++++++++ lib/Makefile.am | 5 ++++- lib/perl/Makefile.am | 33 +++++++++++++++++++++++++++++++++ lib/perl/test.pl | 6 ++++++ lib/perl/test/Makefile.am | 12 ++++++++++++ lib/perl/test/memory_buffer.t | 34 ++++++++++++++++++++++++++++++++++ 7 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 lib/perl/Makefile.am create mode 100644 lib/perl/test.pl create mode 100644 lib/perl/test/Makefile.am create mode 100644 lib/perl/test/memory_buffer.t diff --git a/.gitignore b/.gitignore index 8b35aa02..793d695b 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,15 @@ /lib/java/gen-java /lib/java/gen-javabean /lib/java/libthrift.jar +/lib/perl/MANIFEST +/lib/perl/Makefile +/lib/perl/Makefile.in +/lib/perl/Makefile-perl.mk +/lib/perl/blib +/lib/perl/pm_to_blib +/lib/perl/test/Makefile +/lib/perl/test/Makefile.in +/lib/perl/test/gen-perl /lib/py/Makefile /lib/py/Makefile.in /lib/py/build diff --git a/configure.ac b/configure.ac index cc9d05fa..7411bc8c 100644 --- a/configure.ac +++ b/configure.ac @@ -66,6 +66,12 @@ if test "$with_py" = "yes"; then fi AM_CONDITIONAL(WITH_PYTHON, [test -n "$PYTHON" -a "$PYTHON" != ":"]) +AX_THRIFT_LIB(perl, [Perl], yes) +if test "$with_perl" = "yes"; then + AC_PATH_PROG([PERL], [perl]) +fi +AM_CONDITIONAL(WITH_PERL, [test -n "$PERL"]) + AX_THRIFT_LIB(ruby, [Ruby], yes) if test "$with_ruby" = "yes"; then AC_PATH_PROG([RUBY], [ruby]) @@ -177,6 +183,8 @@ AC_CONFIG_FILES([ lib/cpp/thrift-z.pc lib/csharp/Makefile lib/java/Makefile + lib/perl/Makefile + lib/perl/test/Makefile lib/py/Makefile lib/rb/Makefile if/Makefile diff --git a/lib/Makefile.am b/lib/Makefile.am index 3cb592c5..5581ce08 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -21,13 +21,16 @@ if WITH_RUBY SUBDIRS += rb endif +if WITH_PERL +SUBDIRS += perl +endif + # All of the libs that don't use Automake need to go in here # so they will end up in our release tarballs. EXTRA_DIST = \ cocoa \ hs \ ocaml \ - perl \ php \ erl \ st diff --git a/lib/perl/Makefile.am b/lib/perl/Makefile.am new file mode 100644 index 00000000..0d775fa6 --- /dev/null +++ b/lib/perl/Makefile.am @@ -0,0 +1,33 @@ +SUBDIRS = test + +Makefile-perl.mk : Makefile.PL + $(PERL) Makefile.PL MAKEFILE=Makefile-perl.mk + +all-local: Makefile-perl.mk + $(MAKE) -f Makefile-perl.mk + find blib -name 'Makefile*' -exec rm -f {} \; + +check-local: + $(PERL) -Iblib/lib -I@abs_srcdir@ -I@builddir@/test/gen-perl \ + @abs_srcdir@/test.pl @abs_srcdir@/test/*.t + +install-exec-local: Makefile-perl.mk + $(MAKE) -f Makefile-perl.mk install DESTDIR=$(DESTDIR)/ + +clean-local: Makefile-perl.mk + $(MAKE) -f Makefile-perl.mk clean + rm -f Makefile-perl.mk.old + +EXTRA_DIST = MANIFEST \ + Makefile.PL \ + test.pl \ + lib/Thrift.pm \ + lib/Thrift.pm \ + lib/Thrift/BinaryProtocol.pm \ + lib/Thrift/BufferedTransport.pm \ + lib/Thrift/FramedTransport.pm \ + lib/Thrift/HttpClient.pm \ + lib/Thrift/MemoryBuffer.pm \ + lib/Thrift/Protocol.pm \ + lib/Thrift/Socket.pm \ + lib/Thrift/Transport.pm diff --git a/lib/perl/test.pl b/lib/perl/test.pl new file mode 100644 index 00000000..ff33f8ad --- /dev/null +++ b/lib/perl/test.pl @@ -0,0 +1,6 @@ +use strict; +use warnings; + +use Test::Harness; + +runtests(@ARGV); diff --git a/lib/perl/test/Makefile.am b/lib/perl/test/Makefile.am new file mode 100644 index 00000000..686b9092 --- /dev/null +++ b/lib/perl/test/Makefile.am @@ -0,0 +1,12 @@ +THRIFT = @top_builddir@/compiler/cpp/thrift +THRIFT_IF = @top_srcdir@/test/ThriftTest.thrift + +all-local: gen-perl/ThriftTest/Types.pm + +gen-perl/ThriftTest/Types.pm: $(THRIFT_IF) + $(THRIFT) --gen perl $(THRIFT_IF) + +clean-local: + rm -rf gen-perl + +EXTRA_DIST = memory_buffer.t diff --git a/lib/perl/test/memory_buffer.t b/lib/perl/test/memory_buffer.t new file mode 100644 index 00000000..89510c5b --- /dev/null +++ b/lib/perl/test/memory_buffer.t @@ -0,0 +1,34 @@ +use Test::More tests => 6; + +use strict; +use warnings; + +use Data::Dumper; + +use Thrift::BinaryProtocol; +use Thrift::MemoryBuffer; + +use ThriftTest::Types; + + +my $transport = Thrift::MemoryBuffer->new(); +my $protocol = Thrift::BinaryProtocol->new($transport); + +my $a = ThriftTest::Xtruct->new(); +$a->i32_thing(10); +$a->i64_thing(30); +$a->string_thing('Hello, world!'); +$a->write($protocol); + +my $b = ThriftTest::Xtruct->new(); +$b->read($protocol); +is($b->i32_thing, $a->i32_thing); +is($b->i64_thing, $a->i64_thing); +is($b->string_thing, $a->string_thing); + +$b->write($protocol); +my $c = ThriftTest::Xtruct->new(); +$c->read($protocol); +is($c->i32_thing, $a->i32_thing); +is($c->i64_thing, $a->i64_thing); +is($c->string_thing, $a->string_thing); -- 2.17.1