227989f3e9
This function was broken for conversions using more than one byte per character (e.g. UTF-16 or UTF-32) and also even for UTF-8 for strings containing NUL bytes as it used strlen() to determine the number of bytes to write out instead of using the really needed number. Fix this by using the wxCharBuffer::length() method which always returns the correct value. Also add a wxFile unit test verifying that it can correctly read back a string written using any of UTF-8, UTF-16 or UTF-32. Closes #11192. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
190 lines
6.0 KiB
XML
190 lines
6.0 KiB
XML
<?xml version="1.0" ?>
|
|
<!-- $Id$ -->
|
|
|
|
<makefile>
|
|
<!--
|
|
The use of PCH is disabled for samples by default but we do want to use
|
|
them for the test as this dramatically speeds up its compilation.
|
|
-->
|
|
<set var="WX_ENABLE_PRECOMP_HEADERS">1</set>
|
|
|
|
<include file="../build/bakefiles/common_samples.bkl"/>
|
|
|
|
<template id="wx_test">
|
|
<cppflags>$(CPPUNIT_CFLAGS)</cppflags>
|
|
<ldflags>$(CPPUNIT_LIBS)</ldflags>
|
|
|
|
<if cond="WX_DISABLE_PRECOMP_HEADERS=='0'">
|
|
<if cond="FORMAT!='autoconf' and TOOLKIT=='MSW'">
|
|
<sources>dummy.cpp</sources>
|
|
<precomp-headers-gen>dummy.cpp</precomp-headers-gen>
|
|
</if>
|
|
<precomp-headers-header>testprec.h</precomp-headers-header>
|
|
<precomp-headers>on</precomp-headers>
|
|
<precomp-headers-file>testprec_$(id)</precomp-headers-file>
|
|
</if>
|
|
</template>
|
|
|
|
<exe id="test" template="wx_sample_console,wx_test"
|
|
template_append="wx_append_base">
|
|
<sources>
|
|
test.cpp
|
|
archive/archivetest.cpp
|
|
archive/ziptest.cpp
|
|
archive/tartest.cpp
|
|
arrays/arrays.cpp
|
|
base64/base64.cpp
|
|
cmdline/cmdlinetest.cpp
|
|
config/fileconf.cpp
|
|
datetime/datetimetest.cpp
|
|
events/evthandler.cpp
|
|
events/timertest.cpp
|
|
exec/exec.cpp
|
|
file/filetest.cpp
|
|
filekind/filekind.cpp
|
|
filename/filenametest.cpp
|
|
filesys/filesystest.cpp
|
|
fontmap/fontmaptest.cpp
|
|
formatconverter/formatconvertertest.cpp
|
|
hashes/hashes.cpp
|
|
intl/intltest.cpp
|
|
lists/lists.cpp
|
|
log/logtest.cpp
|
|
longlong/longlongtest.cpp
|
|
mbconv/convautotest.cpp
|
|
mbconv/mbconvtest.cpp
|
|
misc/misctests.cpp
|
|
net/ipc.cpp
|
|
net/socket.cpp
|
|
regex/regextest.cpp
|
|
regex/wxregextest.cpp
|
|
scopeguard/scopeguardtest.cpp
|
|
strings/iostream.cpp
|
|
strings/strings.cpp
|
|
strings/stdstrings.cpp
|
|
strings/tokenizer.cpp
|
|
strings/unichar.cpp
|
|
strings/unicode.cpp
|
|
strings/vararg.cpp
|
|
strings/crt.cpp
|
|
strings/vsnprintf.cpp
|
|
streams/bstream.cpp
|
|
streams/datastreamtest.cpp
|
|
streams/ffilestream.cpp
|
|
streams/fileback.cpp
|
|
streams/filestream.cpp
|
|
streams/iostreams.cpp
|
|
streams/largefile.cpp
|
|
streams/memstream.cpp
|
|
streams/socketstream.cpp
|
|
streams/sstream.cpp
|
|
streams/stdstream.cpp
|
|
streams/tempfile.cpp
|
|
streams/textstreamtest.cpp
|
|
streams/zlibstream.cpp
|
|
textfile/textfiletest.cpp
|
|
thread/atomic.cpp
|
|
thread/queue.cpp
|
|
thread/tls.cpp
|
|
uris/uris.cpp
|
|
uris/url.cpp
|
|
vectors/vectors.cpp
|
|
weakref/evtconnection.cpp
|
|
weakref/weakref.cpp
|
|
xlocale/xlocale.cpp
|
|
xml/xmltest.cpp
|
|
</sources>
|
|
<wx-lib>net</wx-lib>
|
|
<wx-lib>xml</wx-lib>
|
|
<wx-lib>base</wx-lib>
|
|
</exe>
|
|
|
|
|
|
<exe id="test_gui" template="wx_sample,wx_test"
|
|
template_append="wx_append"
|
|
cond="USE_GUI=='1'">
|
|
|
|
<!-- link against GUI libraries, but be a console app: -->
|
|
<app-type>console</app-type>
|
|
|
|
<sources>
|
|
test.cpp
|
|
geometry/rect.cpp
|
|
geometry/size.cpp
|
|
geometry/point.cpp
|
|
graphics/measuring.cpp
|
|
config/config.cpp
|
|
controls/comboboxtest.cpp
|
|
controls/headerctrltest.cpp
|
|
controls/listctrltest.cpp
|
|
controls/textctrltest.cpp
|
|
controls/textentrytest.cpp
|
|
controls/treectrltest.cpp
|
|
events/clone.cpp
|
|
events/propagation.cpp
|
|
font/fonttest.cpp
|
|
image/image.cpp
|
|
image/rawbmp.cpp
|
|
html/htmlwindow.cpp
|
|
misc/guifuncs.cpp
|
|
misc/selstoretest.cpp
|
|
misc/garbage.cpp
|
|
misc/settings.cpp
|
|
<!--
|
|
This one is intentionally duplicated here (it is also part of
|
|
non-GUI test) as sockets behave differently in console and GUI
|
|
applications.
|
|
-->
|
|
net/socket.cpp
|
|
window/clientsize.cpp
|
|
window/setsize.cpp
|
|
</sources>
|
|
<wx-lib>media</wx-lib>
|
|
<wx-lib>xrc</wx-lib>
|
|
<wx-lib>xml</wx-lib>
|
|
<wx-lib>adv</wx-lib>
|
|
<wx-lib>html</wx-lib>
|
|
<wx-lib>core</wx-lib>
|
|
<wx-lib>net</wx-lib>
|
|
<wx-lib>base</wx-lib>
|
|
</exe>
|
|
|
|
|
|
<wx-data id="data">
|
|
<files>testdata.fc</files>
|
|
|
|
<!-- test data for image/image.cpp test unit: -->
|
|
<files>horse.ani horse.bmp horse.cur horse.gif horse.ico horse.jpg
|
|
horse.pcx horse.png horse.pnm horse.tga horse.tif horse.xpm</files>
|
|
</wx-data>
|
|
|
|
<template id="catalog">
|
|
<dstdir>$(BUILDDIR)/intl/$(id)</dstdir>
|
|
<srcdir>$(SRCDIR)/intl/$(id)</srcdir>
|
|
<files>internat.po internat.mo</files>
|
|
</template>
|
|
|
|
<wx-data id="fr" template="catalog"/>
|
|
|
|
|
|
<fragment format="autoconf">
|
|
# notice the ugly hack with using CXXWARNINGS: we can't use CPPFLAGS as
|
|
# currently the value in the makefile would be ignored if we did, but
|
|
# warnings don't matter when we expect compilation to fail anyhow so we can
|
|
# use this variable to enable the compilation of code which is supposed to
|
|
# fail
|
|
failtest:
|
|
@$(RM) test_evthandler.o
|
|
@for d in GLOBAL STATIC METHOD FUNCTOR NO_HANDLER DERIVED WRONG_CLASS; do \
|
|
if $(MAKE) CXXWARNINGS=-DTEST_INVALID_BIND_$$d test_evthandler.o 2>/dev/null; then \
|
|
echo "*** Compilation with TEST_INVALID_BIND_$$d unexpectedly succeeded.">&2; \
|
|
exit 1; \
|
|
fi; \
|
|
done; \
|
|
exit 0
|
|
|
|
.PHONY: failtest
|
|
</fragment>
|
|
|
|
</makefile>
|