Commit graph

2,751 commits

Author SHA1 Message Date
Brant K. Kyser
0f1e73fd26 Add test case to demonstrate the name collision that occurs in the generated C# code when a namespace is named System. 2013-10-15 13:55:35 -05:00
Vadim Zeitlin
72afb74f47 Add support for case conversion characters in regex substitutions.
Allow using Perl-like \l, \L, \u, \U and \E escape sequences in the
substitution string used with %rename("%(regex:/pattern/subst/)s").
This is useful for e.g. title casing all string after removing some prefix.

Closes #82
2013-10-15 07:17:56 +01:00
William S Fulton
b17456e617 Merge branch 'gsoc2009-matevz' into master - C++11 support
* gsoc2009-matevz:
  Minor cleanup prior to merging to master
  Add gsoc2009-matevz for Travis testing
  C++11 testing moved to a configure option
  Rename all C++0x to C++11 and cpp0x to cpp11
  Grab .travis.yml file from master to turn on Travis testing
  Suppress leaking memory warnings in rvalue reference tests
  Add support for extern "C++" - no warning should be issued as was previously occurring
  Add support for extern "C" thread_local
  Fixes detecting if a variable is extern when using 'extern thread_local'
  Add support for thread_local when specified with other legitimate storage class specifiers - extern and static
  Remove test tokens
  User defined literals: fix for %rename and update docs
  Add ability to suppress variadic template first argumnet warning
  Add template aliasing and type aliasing into symbol table and enable explicit warning suppression for these. They still need to be added into the parse tree and dealt with.
  Add lambda functions to the symbol tables and add ability to suppress lambda warnings.
  Rework std::initializer_list handling to warn about usage in any method, not just constructors. A typemap is used to issue the warning and can be overridden with user defined behaviour.
  Initialization list doc updates and new tests. Fix functions with default arguments that are initializer lists
  Better clarification about polymorphic wrappers for function objects - std::function
  Remove generated output that should not be checked in2
  Fix shift/shift and shift/reduce errors around variadic templates since merge
  Variadic templates doc update
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Add rvalue reference typemaps
  Use CXXFLAGS for c++ code for Go examples
  Add missing static member to testcase
  More rvalue reference typemaps
  Fix generated code for rvalue references by converting functions returning an rvalue reference into something that can be taken the address of - via a const ref cast. Now the rvalue_reference tests compile under g++-4.7 (C# only atm)
  Remove recently added %expect in parser in case of backward compatibility problems
  Cosmetic changes to previous (unicode literals) commit
  Fixes to previous (unicode literals) commit
  Unicode literals
  Add check-cpp11 target for testing c++11 only tests
  Improve detection of C++11 compiler and set appropriate flags to use C++11/C++0x features
  Modify autoconf macro to be more flexible about how it is used - sets CXX11FLAGS, HAVE_CXX11_COMPILER and option to not error out
  Autoconf archive macro to detect c++11 - as downloaded from archive
  Update variadic templates
  result_of not working
  Add lambda tests to test-suite - gcc-4.7 supports these
  One more lambda test using constexpr
  More lambda support - for optional lambda declarators
  Add in support for initialising auto variables from lambda expressions
  Lambda expressions: parse exception specification in lambda functions. Fix lambda testcase for gcc-4.7.
  Delegating constructors and inheriting constructors clarification and split of tests
  gcc-4.7 now supports alias templates
  Update on C++11 user-defined literal status
  Fix unrestricted unions testcase and add runtime example
  Minor doc tweaks for unrestricted unions
  Some updates to c++11 warning messages and update docs on alias templates
  Provide unique c++11 warnings which were previously hijacking another warning
  Tidy up test and docs on template double brackets
  Better clarify C++11 smart pointer support
  Update c++0x tests run by default for g++-4.6
  Improve nullptr constant wrapping
  Add scoped enums into correct correct scope in type system. Note that cpp0x_strongly_typed_enumerations.i still shows further language symbol table problems which need fixing.
  Using C++11 enum classes with just a forward reference.
  Add support for c++11 strongly typed enums inheriting from non standard primitive types
  Fix parsing of forward declaration of C++0x enums
  html fixes
  sort out c++0x lambda tests and reorder cpp0x tests
  Improved C++0x rvalue reference implementation differentiating lvalue and rvalue references. The previous implementation treated rvalue references as lvalue references which leads to a number of different wrapping issues.
  simple formatting changes
  Warning suppression for explicit template instantiations
  Raw string literal changes in paper N3077 changes delimiters to use round brackets instead of square brackets
  add in more raw string literals for gcc-4.5
  typo fix
  minor warning message changes
  Add new GPL license headers to all source files in this branch
  merge revisions 11872:11876 from trunk to gsoc2009-matevz branch - license changes
  Grammar and formatting improvements
  Added developer documentation for C++0x.
  Fixed testcase warnings.
  Documented C++0x testcases.
  Updated C++0x User's manual.
  Removed decr-- Hash tables feature. Added some comments.
  Added draft user documentation for the C++0x.
  Added warning for initializer_list introduced in C++0x. Added testcase cpp0x_initializer_list.
  Fixed cpp0x_result_of testcase. Added testcase cpp0x_sizeof_object.
  Added testcase for default/delete arguments introduced in C++0x.
  Added cpp0x_result_of testcase.
  Added syntax support for template aliasing and new 'using' syntax for typedefs introduced in C++0x. Added testcase cpp0x_template_typedefs.
  Added testcase cpp0x_constructors for delegating constructors and constructor inheritance.
  Added initial support for C++0x decltype(). Added testcase cpp0x_decltype.
  Added support for user-defined string literals. Added testcase cpp0x_userdefined_literals.i
  Fixed compilation error.
  Added syntax for lambda expressions and closures introduced in C++0x. Added testcase cpp0x_lambda_functions.i.
  Fixed variadic template argument warning.
  Enabled support for variadic %template directive.
  Enabled alternate function syntax and added runtime testcases. Added support for null pointer constant introduced in C++0x.
  Fixed S/R and R/R conflicts. Fixed testcase for rvalue reference.
  Added variadic '...' syntax for inheritance introduced in C++0x. Added sizeof... syntax introduced in C++0x.
  Added initial support for variadic templates.
  Added partial support for unordered_ STL types.
  Added support for C++0x rvalue and move semantics. Added testcase.
  Added initial support for parsing C++0x strongly typed enumerations.
  Fixed bug in cpp0x testcase.
  Added testcase for cpp0x unrestricted unions.
  Disabled alternate function syntax testcase.
  Added testcase for function objects.
  Added initial support for hash tables unordered_ types.
  Added C++0x test case for the hash_tables.
  Added support for C++0x alternate function syntax. Added testcase.
  Added support for cpp0x uniform initialization. Added testcases.
  Fixed cpp0x_raw_string_literals.i test case.
  Added testcase for shared_ptr, unique_ptr and weak_ptr.
  Added keyword 'thread_local' to Swig. Added testcase.
  Added test case.
  Added C++0x support for 'extern' explicit template instantiation without the translation unit. Added test cases.
  Added support for C++0x static_assert().
  Added support for custom string delimiters.
  Added support for unicode strings and fixed support for wstrings. Added test case cpp0x_raw_string_literals.i.
  Added test case for explicit conversion operators. Some cosmetic fixes.
  Added constexpr keywords and CONSTEXPR terminal to Swig parser. Added cpp0x_constexpr.i testcase. Fixed compilation bug of cpp0x_template_double_brackets.i testcase. Removed obsolete cpp0x_template_double_brackets_broken.
  Introduced new CXXFLAGS symbol for the compilation of test suite. Added -std=c++0x to g++ compiler to enable compilation of the new C++0x tests.
  Renamed template_double_brackets -> cpp0x_template_double_brackets. Added CPP0X_TEST_CASES and CPP0X_TEST_BROKEN in common.mk.
  Added support for template double brackets for C++0x. Added test cases.
2013-10-11 21:52:05 +01:00
William S Fulton
e5f9f91807 Add naturalvar_more testcase runtime test 2013-10-11 19:42:19 +01:00
William S Fulton
bcb7aee022 Merge branch 'master' into gsoc2009-matevz
Conflicts:
	Examples/Makefile.in
	Examples/guile/Makefile.in
	Lib/php/php.swg
	Makefile.in
	Source/CParse/parser.y
	configure.ac
2013-10-10 07:26:09 +01:00
William S Fulton
de5e0c8655 C++11 testing moved to a configure option
Use './configure --enable-cpp11-testing' to enable the C++11 test.
Off by default for now.
2013-10-08 20:12:18 +01:00
William S Fulton
738cc36aab Rename all C++0x to C++11 and cpp0x to cpp11 2013-10-07 20:37:00 +01:00
William S Fulton
3fcbb40af9 Remove incorrectly and newly introduced assert
Was failing in li_boost_shared_ptr.i for some languages. A similar
testcase has been added into naturalvar_more.i.
2013-10-05 02:16:02 +01:00
William S Fulton
e186d2176a Fix %naturalvar and templated methods using enums
%naturalvar was not being picked up - use the symbol table instead for
looking up the feature.

use_naturalvar_mode() has been moved to Language class (not strictly necessary though)
2013-10-04 23:08:33 +01:00
Oliver Buchtala
6dcbbf07db Conflicts:
.gitignore
	.project
	.travis.yml
	Examples/Makefile.in
	Examples/test-suite/director_nspace.i
2013-09-27 02:29:02 +02:00
Oliver Buchtala
c2d3da2eec Fix test configuration. 2013-09-26 05:14:34 +02:00
Oliver Buchtala
7adf93ef0f Fix test configuration for nodejs. 2013-09-26 04:13:32 +02:00
Oliver Buchtala
2efe63ebb2 Add some test runners. 2013-09-24 01:50:33 +02:00
Oliver Buchtala
8bf966a65c Fix %nspace support and activated relevant tests. 2013-09-24 01:47:13 +02:00
Oliver Buchtala
d34a6da08c Disable warnings for some v8 test-cases. 2013-09-17 01:53:22 +02:00
Oliver Buchtala
dd4ed7f3d6 Disable testcase 'typemap_variables' for v8.
It uses output typemaps that are not compatible with the
v8 API.
2013-09-16 11:46:52 +02:00
William S Fulton
0431664b18 Guile OUTPUT typemap fix
Fixes 'attempt to free a non-heap object' in some OUTPUT typemaps.
2013-09-15 10:43:49 +01:00
William S Fulton
cb4a23b2df Cygwin test-suite fix for tcl 8.5 on Cygwin 2013-09-14 15:52:42 -07:00
Artem Serebriyskiy
c3f3880d0c Lua static member access improvements.
1) Static members and static functions inside class can be accessed as ModuleName.ClassName.FunctionName (MemberName respectively). Old way aka ModuleName.ClassName_FunctionName still works.
2) Same goes for enums inside classes: ModuleName.ClassName.EnumValue1 etc.
3) More 'runme' tests for lua + modifications to existing tests to test new changes.

Code is loosely based upon python implemenation of the same thing.

Patch #62.
2013-09-12 21:32:26 +01:00
William S Fulton
a91cd0bc5c Infinity is now by default an acceptable value for type 'float'.
This fix makes the handling of type 'float' and 'double' the same. The implementation requires the
C99 isfinite() macro, or otherwise some platform dependent equivalents, to be available.
2013-09-12 07:28:12 +01:00
Oliver Buchtala
c53e3e4dab Fix configuration for nodejs based tests.
- use $(SWIGOPT)
- less verbose
2013-09-10 14:45:33 +03:00
Oliver Buchtala
001f38c6a9 Fix settings for building nodejs tests.
Removed the `-node` command line flag.
Instead one has to use `-v8 -DBUILDING_NODE_EXTENSION=1`.
2013-09-10 13:29:16 +03:00
Oliver Buchtala
e5ad9cdc05 Added two more Javascript tests.
- `abstract_inherit`
- `char_strings`
2013-09-09 22:26:30 +03:00
Oliver Buchtala
3c5946d998 Redefined set of Javascript smoke tests. 2013-09-09 17:38:44 +03:00
Oliver Buchtala
b6c9c97b96 Fix Javascript generator to use %renamed variable names. 2013-09-09 15:05:11 +03:00
Oliver Buchtala
108143951d Activate Javascript test-cases rename_simple and rename_scope.
These reveal current deficiencies in the Javascript generator with `%rename`ing.
2013-09-09 13:55:08 +03:00
Oliver Buchtala
64da1173dd Activate Javascript testcases rename1-4. 2013-09-09 13:23:47 +03:00
Oliver Buchtala
1438d0cfb4 Add infinity test-case to list of smoke tests. 2013-09-09 13:17:38 +03:00
Eric Wing
e01e337d75 Added unit test using C99 INFINITY. This test actually tests a float
conversion bug where converting to float imposed overflow checking which
should not be there and causes this program to error out. This was seen
originally in Javascript, but it turns out Python has the same bug. Lua
does not have this bug. Other generators have not been tested.

This test also tests the rename feature. The Javascript generator was
not renaming the variable correctly.
2013-09-09 12:53:37 +03:00
Oliver Buchtala
0facc7ecf9 Allow to run the test suite with our list of smoke tests.
The javascript generator can not deal with the whole test-suite.
Moreover, during development I want to have immediate feedback using
a set of smoke tests.
2013-09-06 15:59:43 +03:00
Oliver Buchtala
492d3010ff Javascript V8 test-cases always create cpp wrappers. 2013-09-06 01:40:23 +03:00
Oliver Buchtala
26b5acbbe8 Test-suite Makefile now supports testing for all three Javascript variants.
- node.js
- custom JavascriptCore interpreter
- custom V8 interpreter
2013-09-06 00:42:56 +03:00
Oliver Buchtala
8b0ee5491a Added missing template configuration files for nodejs based tests. 2013-09-04 18:04:40 +02:00
Oliver Buchtala
fec11a8def Allow exceptions in generated example/test node extensions. 2013-09-04 13:07:07 +02:00
Oliver Buchtala
54dd7e96c0 Fix cleanup configuration for javascript test-suite. 2013-09-04 12:47:24 +02:00
Oliver Buchtala
8778146b4b Relax type check in SWIG_AsVal_int.
The array_member test-case revealed that integers
come in as `Numbers`.
2013-09-04 12:10:08 +02:00
Oliver Buchtala
8bbd928831 Make javascript test-suite work with nodejs. 2013-09-03 16:57:40 +02:00
Oliver Buchtala
04cdde0563 Add test to check javascript unicode strings. 2013-08-31 03:34:37 +02:00
William S Fulton
ada7dd92e4 Fix testcase name 2013-08-29 22:49:59 +01:00
William S Fulton
f55ff50dd5 Skip the UTF-8 BOM of including files.
For avoiding illegal token error when parsing include files which have the UTF-8 BOM.

Closes #75.
2013-08-29 19:22:50 +01:00
William S Fulton
b58dabced9 %implicitconv is improved for overloaded functions.
Like in C++, the methods with the actual types are considered before trying implicit conversions.
2013-08-28 20:30:46 +01:00
William S Fulton
1cc735df5e %implicitconv will now accept None where the implicit conversion takes a C/C++ pointer.
Problem highlighted by Bo Peng on the swig-user mailing list. SF patch #230.
2013-08-28 20:28:15 +01:00
William S Fulton
80f8d1d922 Fix for missing C++ code in std::multimap wrappers.
%template for a std::multimap generated uncompilable code unless a
%template for a std::map of the same template types was also coded up.

This patch is needed in conjunction with previous commit - 5f1fff1849

Closes #64
Closes #65
2013-08-06 07:02:49 +01:00
Karl Wette
479df82616 Octave: more robust configuration
- do not rely on --eval argument to find mkoctfile, instead assume it
  is in the same directory as octave itself (which it always should be)
- check Octave options to make sure they are supported, including
  --no-window-system to prevent warnings if building without an X server
- disable Octave if any vital tests fail
2013-07-16 20:59:50 +01:00
joequant
e8c6384f77 add regression tests for SEXP return values 2013-07-14 20:29:37 +08:00
William S Fulton
d0af4f50d3 Add %pythonbegin directive.
For adding code at the beginning of the generated .py file.
2013-07-05 06:30:16 +01:00
William S Fulton
1c44078751 Improve testing of %pythonprepend and %pythonappend 2013-07-02 20:00:17 +01:00
William S Fulton
ace8fcd972 SWIG_AsWCharPtrAndSize improper operation if cptr NULL
SF bug #1327

This doesn't have any noticeable effect with the usage of
SWIG_AsWCharPtrAndSize as shipped by SWIG, but could be a problem if a
user is using this function with cptr equal to zero and psize is non-zero
 - the length would be incorrectly set due to the call to PyUnicode_GetSize
failing.
2013-07-02 18:58:56 +01:00
William S Fulton
112d7aa6d0 Go examples and test-suite format fixes
Patch has the results of find . -name *.go -exec gofmt -w {} \;

SF Patch #339.
2013-07-01 20:13:36 +01:00
Paweł Tomulik
c9295401da clean all .py files generated by python-test-suite
Closes #49
2013-06-04 22:23:53 +01:00