Commit graph

104 commits

Author SHA1 Message Date
Vadim Zeitlin
cdf1ba9120 Don't accept strings too long to fit in char[N] with trailing NUL.
It was previously possible to assign "hello" to a variable backed by char[5]
storage in C, and the array contained the correct character data but without
the trailing NUL, which was unexpected in C.

This is not allowed any more, only "helo" can fit into a char[5] now and
anything else fails the type check, just as it already happened for the longer
strings before.

Closes #122
2013-12-23 21:13:25 +00:00
Vadim Zeitlin
88a0e228a9 Change the length of strings created from fixed-size buffers.
Use the usual C rule for NUL-terminated strings instead of discarding all the
trailing NUL characters.

This was unexpected (as buffers in C code are not necessarily always padded
with NULs to their full length) and also inconsistent among languages as this
was only done for those of them using typemaps/strings.swg but not for C# or
Java, for example, which terminated the string at the first NUL even before
this change.

Notice that this patch couldn't use strlen() or wcslen() with possibly not
NUL-terminated strings, so we had to add [our own equivalents of] strnlen()
and wcsnlen() and use them instead. This required adding yet another parameter
to string typemap macros, so update the example using them accordingly too.
2013-12-23 21:12:17 +00:00
Robert Stone
bb6ab0318c Merge remote branch 'upstream/master' into perl5-directors-minimal 2013-11-16 12:06:34 -08:00
Robert Stone
81ce0a723e fix "long long" tests for perl v5.6 2013-11-14 11:24:24 -08:00
Robert Stone
e0789366e7 prefer polymorphism on existing destructor over custom destructor method 2013-11-14 08:23:46 -08:00
Robert Stone
0901a3e867 steals python directors and adapts to perl5 2013-11-12 12:45:03 -08:00
Olly Betts
f9566ad2df Fix assorted typos.
From https://sourceforge.net/p/swig/patches/332/ and some others too.
2013-01-08 18:47:40 +13:00
Robert Stone
121086fb77 * revert perl5 li_typemaps run tests due to Windows regressions.
* stricter casting to sidestep compiler warnings on Windows.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13002 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-18 21:49:32 +00:00
Olly Betts
1d1e8650a3 Remove old copies of Perl Test::Builder and Test::More - these have been
included with Perl since 5.6.0.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12864 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-12-08 05:59:37 +00:00
Robert Stone
7d359b7895 Fix for SF bug #1481958.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-09-11 01:04:29 +00:00
William S Fulton
ea00ff974f Patch #3260265 fixing overloading of non-primitive types and integers in Perl 5.12 and later
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12691 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 19:31:39 +00:00
William S Fulton
527c3e0552 Test modifications of changed behaviour in perl 5.12 and 5.14 in reporting errors
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12690 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-19 18:48:57 +00:00
William S Fulton
ef865e06d5 Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and (char *STRING, int LENGTH) - Java patch is from Volker Grabsch. Elements of the primitive_types.i testcase for this moved into char_binary.i. Documentation for this enhanced.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12393 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-01-14 19:06:43 +00:00
Miklos Vajna
451f71d7b1 remove unnecessary extra semicolons in the tesuite
Basically just style cleanup, "fi;" or "fi; \" -> "fi".

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11523 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-09 22:52:08 +00:00
William S Fulton
56c5b52c1d remove unnecessary extra shells being spawned in the test-suite
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11522 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-09 22:39:51 +00:00
Miklos Vajna
88a934d7f0 PHP: fix for the wrapmacro testcase
'max' is a built-in function in PHP, so let's rename it to 'maximum'
instead.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11495 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-04 09:32:12 +00:00
William S Fulton
9064b08651 better way to provide custom commandline options for individual tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11356 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-07-03 22:23:43 +00:00
William S Fulton
7db0c01af0 rename byreference testcase to li_reference to follow normal test naming conventions of library files. Remove ability to add testcases into subdirectories (again) - not wanted
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11346 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-07-02 20:32:51 +00:00
William S Fulton
222b9e4710 remove perl specific modifications to the enum_thorough test
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11280 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-06-16 20:26:28 +00:00
William S Fulton
0a1c7c91b1 fix Java and C# enums when one of the enum items is ignored
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11279 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-06-16 19:29:08 +00:00
Robert Stone
1dc5175753 reference.i improvements, testcase coverage. language specific interface support for test-suite.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11247 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-06-05 18:47:30 +00:00
Robert Stone
6574067b72 Fix SF#2564192
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11110 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-05 15:47:42 +00:00
William S Fulton
1c4ec59e45 Apply patch #2143727 for Python from Serge Monkewitz to fix importing base classes when the package option is specified in %module and that module is %import'ed
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10960 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-02 20:21:16 +00:00
William S Fulton
db83e51441 modify test-suite (barring python atm) to not rely on the -I path to find the input .i file - removes the new warning 125 and sets up the test-suite for testing with ccache. This change required the use of -outcurrentdir and moving the .i files from the language subdirectories to the directory above along with some .i file name changes.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10949 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-11-26 21:35:15 +00:00
Robert Stone
2ee3d98d79 rollback 10737:10749, this work is better left on a branch until it is
in support a significant feature enhancement.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10794 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-08-19 07:09:29 +00:00
Robert Stone
2728e5a606 initial steps to clean up perl5 class methods (primarily constructors).
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10743 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-08-08 03:10:55 +00:00
Robert Stone
d5f16a867c Hopefully this provides more portable values for Infinity and NaN in Perl.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10616 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-06-30 23:41:27 +00:00
William S Fulton
f8ae12fe4d variable name changes to remove php keywords
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10575 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-06-24 20:11:46 +00:00
Robert Stone
072ee51942 run test cases in the Perl set by the --with-perl5 configure option.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10498 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-26 20:09:56 +00:00
William S Fulton
f06222b993 Add partialcheck make targets. Also add RUNTOOL, COMPILETOOL and SWIGTOOL variables for invoking tools when running tests, compiling or invoking swig
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10482 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-20 21:27:22 +00:00
William S Fulton
0df0a87981 rename package testcase to packageoption as package is a Java keyword
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10433 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-10 10:36:35 +00:00
Robert Stone
8b713d759d several testcases for perl
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10403 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-30 21:02:46 +00:00
Jason Stewart
bea5f1d47b package option for perl5
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10393 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-26 13:12:45 +00:00
Jason Stewart
36e9ba403f added test which breaks perl
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10342 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-04 10:30:49 +00:00
Jason Stewart
da4c710d60 added post- and pre- increment tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10340 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 12:03:04 +00:00
Jason Stewart
ad93f971ca new operator overload tests to locate bugs in pre- increment/decrement operators
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10338 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 11:48:41 +00:00
Jason Stewart
128880ea1d added __rsub__() and test for reversed subtraction operator
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10337 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 11:40:20 +00:00
Jason Stewart
ccff189174 fixed name typo
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10335 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 11:27:18 +00:00
Jason Stewart
e294f2e158 fixed test-name typo ; add tests for pre- increment/decrement
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10333 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 11:20:37 +00:00
William S Fulton
e9dc2e8dc9 Fix test since #1798728 was backed out
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10242 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-02-10 20:47:49 +00:00
William S Fulton
0d799435b8 Fix #1798728 - numbers can be passed to functions taking char *
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10190 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-12-12 19:26:22 +00:00
William S Fulton
0d7175fa1c modify unsigned long long test to use strings as this is portable across all builds of Perl
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10057 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-28 16:43:28 +00:00
William S Fulton
ede8b8c87a Remove cvs $Header$
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10007 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-17 21:56:11 +00:00
Olly Betts
e2d7f303b8 [perl5] Use sv_setpvn() to set a scalar from a pointer and length
- patch from SF#174460 by "matsubaray".


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9937 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-09-17 23:24:11 +00:00
William S Fulton
f5bdd056f7 Remove obscure mpointer example and replace with member_pointer.i testcase and runtime examples
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9887 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-08-09 23:47:13 +00:00
William S Fulton
e4bade15f3 fixes to use parallel make when running the examples and test-suite
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9875 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-07-24 21:26:54 +00:00
John Lenz
6dda6f8321 Remove cvsignore files: this is stored on svn:igonre property now
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9593 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-12-03 08:28:42 +00:00
William S Fulton
6c9455d440 Daniel Moore patch - more operator overloading support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9154 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-06-12 21:07:38 +00:00
Marcelo Matus
20339de8b4 more fixes/tests for empty strings
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9083 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-05-04 04:45:41 +00:00
William S Fulton
2d24918a97 ensure %apply with char*, unsigned char* and signed char* works
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9072 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-05-03 20:58:19 +00:00