Mailing List Archive

r3827 - in trunk: boilerplater/lib/Boilerplater/Binding perl perl/buildlib/Lucy perl/lib/KinoSearch perl/t
Author: creamyg
Date: 2008-09-06 13:03:36 -0700 (Sat, 06 Sep 2008)
New Revision: 3827

Added:
trunk/perl/t/003-chaz_integers.t
trunk/perl/t/004-chaz_func_macro.t
trunk/perl/t/005-chaz_headers.t
trunk/perl/t/006-chaz_large_files.t
trunk/perl/t/007-chaz_unused_vars.t
trunk/perl/t/008-chaz_variadic_macros.t
Removed:
trunk/perl/t/003-charmonizer.t
Modified:
trunk/boilerplater/lib/Boilerplater/Binding/Perl.pm
trunk/perl/MANIFEST
trunk/perl/buildlib/Lucy/Build.pm
trunk/perl/lib/KinoSearch/Test.pm
Log:
Reduce hackery of Charmonizer testing, by bloating the main XS bundle with the
compiled Charmonizer/Test objects and invoking via XS rather than a
free-standing executable. (The bloat will go away if we break up KinoSearch
and KinoSearch::Test into separate XS bundles.)


Modified: trunk/boilerplater/lib/Boilerplater/Binding/Perl.pm
===================================================================
--- trunk/boilerplater/lib/Boilerplater/Binding/Perl.pm 2008-09-06 19:12:36 UTC (rev 3826)
+++ trunk/boilerplater/lib/Boilerplater/Binding/Perl.pm 2008-09-06 20:03:36 UTC (rev 3827)
@@ -233,6 +233,9 @@
#include "KinoSearch/Util/StringHelper.h"
#include "KinoSearch/Index/IndexFileNames.h"

+#include "Charmonizer/Test.h"
+#include "Charmonizer/Test/AllTests.h"
+
$xs

MODULE = KinoSearch PACKAGE = KinoSearch::Autobinding

Modified: trunk/perl/MANIFEST
===================================================================
--- trunk/perl/MANIFEST 2008-09-06 19:12:36 UTC (rev 3826)
+++ trunk/perl/MANIFEST 2008-09-06 20:03:36 UTC (rev 3827)
@@ -239,7 +239,12 @@
t/000-load.t
t/001-build_invindexes.t
t/002-kinosearch.t
-t/003-charmonizer.t
+t/003-chaz_integers.t
+t/004-chaz_func_macro.t
+t/005-chaz_headers.t
+t/006-chaz_large_files.t
+t/007-chaz_unused_vars.t
+t/008-chaz_variadic_macros.t
t/012-priority_queue.t
t/013-bit_vector.t
t/015-sort_external.t

Modified: trunk/perl/buildlib/Lucy/Build.pm
===================================================================
--- trunk/perl/buildlib/Lucy/Build.pm 2008-09-06 19:12:36 UTC (rev 3826)
+++ trunk/perl/buildlib/Lucy/Build.pm 2008-09-06 20:03:36 UTC (rev 3827)
@@ -205,59 +205,13 @@
$self->add_to_cleanup( $charmony_path, $charmony_in );
}

-sub ACTION_build_charm_test {
- my $self = shift;
-
- $self->dispatch('charmony');
-
- # collect source files
- my $source_path = catfile( $CHARMONIZER_ORIG_DIR, 'charm_test.c' );
- my $exe_path = "charm_test$Config{_exe}";
- my $test_source_dir
- = catdir( $CHARMONIZER_GEN_DIR, qw( Charmonizer Test ) );
- my $source_files = $self->rscan_dir( $CHARMONIZER_GEN_DIR,
- qr|Charmonizer/Test.*?\.c$| );
- push @$source_files, $source_path;
-
- # collect include dirs
- my @include_dirs = ( $CHARMONIZER_GEN_DIR, curdir() );
-
- # add Windows supplements
- if ( $Config{osname} =~ /mswin/i ) {
- my $win_compat_dir = catdir( $base_dir, 'c_src', 'compat' );
- push @include_dirs, $win_compat_dir;
- my $win_compat_files = $self->rscan_dir( $win_compat_dir, qr|\.c$| );
- push @$source_files, @$win_compat_files;
- }
-
- return if $self->up_to_date( $source_files, $exe_path );
-
- my $cbuilder = Lucy::Build::CBuilder->new;
-
- # compile and link "charm_test"
- my @o_files;
- for (@$source_files) {
- my $o_file = $cbuilder->object_file($_);
- $self->add_to_cleanup($o_file);
- $cbuilder->compile(
- source => $_,
- extra_compiler_flags => $EXTRA_CCFLAGS,
- include_dirs => \@include_dirs,
- );
- push @o_files, $o_file;
- }
- $self->add_to_cleanup($exe_path);
- $cbuilder->link_executable(
- objects => \@o_files,
- exe_file => $exe_path,
- );
-}
-
sub ACTION_boilerplater {
my $self = shift;
my $xs_code = "";
my %auto_xs;

+ $self->dispatch('charmony');
+
require Boilerplater::Session;
require Boilerplater::Binding::Perl;

@@ -417,6 +371,7 @@
# Compile C source files.
my $c_files = $self->rscan_dir( $C_SOURCE_DIR, qr/\.c$/ );
push @$c_files, @{ $self->rscan_dir( $XS_SOURCE_DIR, qr/\.c$/ ) };
+ push @$c_files, @{ $self->rscan_dir( $CHARMONIZER_GEN_DIR, qr/\.c$/ ) };
for my $c_file (@$c_files) {
my $o_file = $c_file;
$o_file =~ s/\.c/$Config{_o}/;
@@ -431,10 +386,6 @@
);
}

- # Add already-compiled Charmonizer/Test object.
- push @objects, catfile($CHARMONIZER_GEN_DIR, "Charmonizer",
- "Test$Config{_o}");
-
# .xs => .c
my $ks_c_file = 'KinoSearch.c';
$self->add_to_cleanup($ks_c_file);
@@ -497,7 +448,6 @@
sub ACTION_code {
my $self = shift;

- $self->dispatch('build_charm_test');
$self->dispatch('boilerplater');
$self->dispatch('write_typemap');
$self->dispatch('compile_custom_xs');
@@ -515,27 +465,9 @@
catdir( $self->blib, 'arch' ),
catdir( $self->blib, 'lib' ),
],
- exec => sub {
- my ( $harness, $test_file ) = @_;
- if ( $test_file =~ /charm_test/ ) {
- return [$test_file];
- }
- return undef;
- },
}
);
- my @test_files = @{ $self->test_files };
- if ( grep {m/charmonizer/} @test_files ) {
- unshift @test_files, map { "charm_test $_" } qw(
- integers
- func_macro
- headers
- large_files
- unused_vars
- variadic_macros
- );
- }
- $harness->runtests(@test_files);
+ $harness->runtests( @{ $self->test_files } );
}

# copied from Module::Build::Base.pm, added exclude '#' and follow symlinks

Modified: trunk/perl/lib/KinoSearch/Test.pm
===================================================================
--- trunk/perl/lib/KinoSearch/Test.pm 2008-09-06 19:12:36 UTC (rev 3826)
+++ trunk/perl/lib/KinoSearch/Test.pm 2008-09-06 20:03:36 UTC (rev 3827)
@@ -30,6 +30,42 @@
PPCODE:
kino_TestQPLogic_run_tests(invindex);

+MODULE = KinoSearch PACKAGE = KinoSearch::Test::TestCharmonizer
+
+void
+run_tests(which)
+ char *which;
+PPCODE:
+{
+ chaz_TestBatch *batch = NULL;
+ chaz_Test_init();
+
+ if (strcmp(which, "integers") == 0) {
+ batch = chaz_TIntegers_prepare();
+ }
+ else if (strcmp(which, "func_macro") == 0) {
+ batch = chaz_TFuncMacro_prepare();
+ }
+ else if (strcmp(which, "headers") == 0) {
+ batch = chaz_THeaders_prepare();
+ }
+ else if (strcmp(which, "large_files") == 0) {
+ batch = chaz_TLargeFiles_prepare();
+ }
+ else if (strcmp(which, "unused_vars") == 0) {
+ batch = chaz_TUnusedVars_prepare();
+ }
+ else if (strcmp(which, "variadic_macros") == 0) {
+ batch = chaz_TVariadicMacros_prepare();
+ }
+ else {
+ CONFESS("Unknown test identifier: '%s'", which);
+ }
+
+ batch->run_test(batch);
+ batch->destroy(batch);
+}
+
__COPYRIGHT__

Copyright 2005-2008 Marvin Humphrey

Deleted: trunk/perl/t/003-charmonizer.t
===================================================================
--- trunk/perl/t/003-charmonizer.t 2008-09-06 19:12:36 UTC (rev 3826)
+++ trunk/perl/t/003-charmonizer.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -1,5 +0,0 @@
-use strict;
-use warnings;
-use Test::More tests => 1;
-pass("Dummy test");
-

Added: trunk/perl/t/003-chaz_integers.t
===================================================================
--- trunk/perl/t/003-chaz_integers.t (rev 0)
+++ trunk/perl/t/003-chaz_integers.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("integers");
+

Added: trunk/perl/t/004-chaz_func_macro.t
===================================================================
--- trunk/perl/t/004-chaz_func_macro.t (rev 0)
+++ trunk/perl/t/004-chaz_func_macro.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("func_macro");
+

Added: trunk/perl/t/005-chaz_headers.t
===================================================================
--- trunk/perl/t/005-chaz_headers.t (rev 0)
+++ trunk/perl/t/005-chaz_headers.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("headers");
+

Added: trunk/perl/t/006-chaz_large_files.t
===================================================================
--- trunk/perl/t/006-chaz_large_files.t (rev 0)
+++ trunk/perl/t/006-chaz_large_files.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("large_files");
+

Added: trunk/perl/t/007-chaz_unused_vars.t
===================================================================
--- trunk/perl/t/007-chaz_unused_vars.t (rev 0)
+++ trunk/perl/t/007-chaz_unused_vars.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("unused_vars");
+

Added: trunk/perl/t/008-chaz_variadic_macros.t
===================================================================
--- trunk/perl/t/008-chaz_variadic_macros.t (rev 0)
+++ trunk/perl/t/008-chaz_variadic_macros.t 2008-09-06 20:03:36 UTC (rev 3827)
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+use KinoSearch::Test;
+KinoSearch::Test::TestCharmonizer::run_tests("variadic_macros");
+


_______________________________________________
kinosearch-commits mailing list
kinosearch-commits@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch-commits