List:Commits« Previous MessageNext Message »
From:jack andrews Date:May 28 2009 12:16pm
Subject:bzr commit into mysql-5.1-telco-7.0 branch (jack:2879) Bug#45099
View as plain text  
#At file:///C:/w/repo/mysql-5.1-telco-7.0-bug_44248/ based on revid:jack@asus-20090522104115-z8ruld2n072h7tus

 2879 jack andrews	2009-05-28
      bug#45099  back port unittest/ files from mysql-6.0 for windows port.  run BaseString-t.exe OK.

    modified:
      storage/ndb/src/common/util/CMakeLists.txt
      unittest/mytap/tap.c
      unittest/mytap/tap.h
      unittest/unit.pl
=== modified file 'storage/ndb/src/common/util/CMakeLists.txt'
--- a/storage/ndb/src/common/util/CMakeLists.txt	2008-10-08 05:55:44 +0000
+++ b/storage/ndb/src/common/util/CMakeLists.txt	2009-05-28 12:16:04 +0000
@@ -56,3 +56,9 @@ ADD_LIBRARY(ndbgeneral STATIC
 	    ndbinfo.c
 )
 TARGET_LINK_LIBRARIES(ndbgeneral zlib)
+
+ADD_EXECUTABLE(BaseString-t BaseString.cpp)
+SET_TARGET_PROPERTIES(BaseString-t
+                      PROPERTIES COMPILE_FLAGS "-DTEST_BASE_STRING")
+TARGET_LINK_LIBRARIES(BaseString-t ndbgeneral)
+

=== modified file 'unittest/mytap/tap.c'
--- a/unittest/mytap/tap.c	2006-12-27 01:23:51 +0000
+++ b/unittest/mytap/tap.c	2009-05-28 12:16:04 +0000
@@ -19,7 +19,7 @@
 
 #include "tap.h"
 
-#include "my_config.h"
+#include "my_global.h"
 
 #include <stdlib.h>
 #include <stdarg.h>
@@ -27,6 +27,16 @@
 #include <string.h>
 #include <signal.h>
 
+/*
+  Visual Studio 2003 does not know vsnprintf but knows _vsnprintf.
+  We don't put this #define in config-win.h because we prefer
+  my_vsnprintf everywhere instead, except when linking with libmysys
+  is not desirable - the case here.
+*/
+#if defined(_MSC_VER) && ( _MSC_VER == 1310 )
+#define vsnprintf _vsnprintf
+#endif
+
 /**
    @defgroup MyTAP_Internal MyTAP Internals
 
@@ -150,8 +160,10 @@ static signal_entry install_signal[]= {
   { SIGILL,  handle_core_signal },
   { SIGABRT, handle_core_signal },
   { SIGFPE,  handle_core_signal },
-  { SIGSEGV, handle_core_signal },
-  { SIGBUS,  handle_core_signal }
+  { SIGSEGV, handle_core_signal }
+#ifdef SIGBUS
+  , { SIGBUS,  handle_core_signal }
+#endif
 #ifdef SIGXCPU
   , { SIGXCPU, handle_core_signal }
 #endif
@@ -166,13 +178,22 @@ static signal_entry install_signal[]= {
 #endif
 };
 
+int skip_big_tests= 1;
+
 void
 plan(int const count)
 {
+  char *config= getenv("MYTAP_CONFIG");
+  size_t i;
+
+  if (config)
+    skip_big_tests= strcmp(config, "big");
+
+  setvbuf(tapout, 0, _IONBF, 0);  /* provide output at once */
   /*
     Install signal handler
   */
-  size_t i;
+
   for (i= 0; i < sizeof(install_signal)/sizeof(*install_signal); ++i)
     signal(install_signal[i].signo, install_signal[i].handler);
 

=== modified file 'unittest/mytap/tap.h'
--- a/unittest/mytap/tap.h	2006-12-27 01:23:51 +0000
+++ b/unittest/mytap/tap.h	2009-05-28 12:16:04 +0000
@@ -62,6 +62,24 @@ extern "C" {
 #endif
 
 /**
+   Defines whether "big" tests should be skipped.
+
+   This variable is set by plan() function unless MYTAP_CONFIG environment
+   variable is set to the string "big".  It is supposed to be used as
+
+   @code
+   if (skip_big_tests) {
+     skip(1, "Big test skipped");
+   } else {
+     ok(life_universe_and_everything() == 42, "The answer is CORRECT");
+   }
+   @endcode
+
+   @see SKIP_BIG_TESTS
+*/
+extern int skip_big_tests;
+
+/**
   @defgroup MyTAP_API MyTAP API
 
   MySQL support for performing unit tests according to TAP.
@@ -81,10 +99,15 @@ extern "C" {
    that generate a core, so if you want to override these signals, do
    it <em>after</em> you have called the plan() function.
 
-   @param count The planned number of tests to run. 
+   It will also set skip_big_tests variable if MYTAP_CONFIG environment
+   variable is defined.
+
+   @see skip_big_tests
+
+   @param count The planned number of tests to run.
 */
 
-void plan(int count);
+void plan(int const count);
 
 
 /**
@@ -103,7 +126,7 @@ void plan(int count);
                which case nothing is printed.
 */
 
-void ok(int pass, char const *fmt, ...)
+void ok(int const pass, char const *fmt, ...)
   __attribute__((format(printf,2,3)));
 
 
@@ -135,7 +158,7 @@ void ok(int pass, char const *fmt, ...)
    @param reason     A reason for skipping the tests
  */
 
-void skip(int how_many, char const *reason, ...)
+void skip(int how_many, char const *const reason, ...)
     __attribute__((format(printf,2,3)));
 
 
@@ -161,6 +184,24 @@ void skip(int how_many, char const *reas
 
 
 /**
+   Helper macro to skip a group of "big" tests. It is used in the following
+   manner:
+
+   @code
+   SKIP_BIG_TESTS(1)
+   {
+     ok(life_universe_and_everything() == 42, "The answer is CORRECT");
+   }
+   @endcode
+
+   @see skip_big_tests
+ */
+
+#define SKIP_BIG_TESTS(COUNT) \
+  if (skip_big_tests) skip((COUNT), "big test"); else
+
+
+/**
    Print a diagnostics message.
 
    @param fmt  Diagnostics message in printf() format.

=== modified file 'unittest/unit.pl'
--- a/unittest/unit.pl	2006-12-31 01:29:11 +0000
+++ b/unittest/unit.pl	2009-05-28 12:16:04 +0000
@@ -14,8 +14,9 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-use Test::Harness qw(&runtests $verbose);
+use Test::Harness;
 use File::Find;
+use Getopt::Long;
 
 use strict;
 
@@ -31,10 +32,19 @@ unit - Run unit tests in directory
 
 =head1 SYNOPSIS
 
-  unit run
+  unit [--[no]big] [--[no]verbose] run [tests to run]
 
 =cut
 
+my $big= $ENV{'MYTAP_CONFIG'} eq 'big';
+
+my $result = GetOptions (
+  "big!"        => \$big,
+  "verbose!"    => \$Test::Harness::verbose,
+);
+
+$ENV{'MYTAP_CONFIG'} = $big ? 'big' : '';
+
 my $cmd = shift;
 
 if (defined $cmd && exists $dispatch{$cmd}) {
@@ -56,7 +66,7 @@ sub _find_test_files (@) {
     my @files;
     find sub { 
         $File::Find::prune = 1 if /^SCCS$/;
-        push(@files, $File::Find::name) if -x _ && /-t\z/;
+        push(@files, $File::Find::name) if -x _ && (/-t\z/ || /-t\.exe\z/);
     }, @dirs;
     return @files;
 }
@@ -92,7 +102,7 @@ sub run_cmd (@) {
     if (@files > 0) {
         # Removing the first './' from the file names
         foreach (@files) { s!^\./!! }
-        $ENV{'HARNESS_PERL_SWITCHES'} .= q" -e 'exec @ARGV'";
+        $ENV{'HARNESS_PERL_SWITCHES'} .= ' -e "exec @ARGV"';
         runtests @files;
     }
 }


Attachment: [text/bzr-bundle] bzr/jack@sun.com-20090528121604-lluzf0dazmt75uy3.bundle
Thread
bzr commit into mysql-5.1-telco-7.0 branch (jack:2879) Bug#45099jack andrews28 May