From: Francesco Montorsi Date: Sun, 11 Jan 2009 00:39:22 +0000 (+0000) Subject: add the 'GarbageTestCase' which helped me to spot some buggy load routines X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9e48b1f56c3e51b4c68d5ae5bdacac91e27c07c7 add the 'GarbageTestCase' which helped me to spot some buggy load routines git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/Makefile.in b/tests/Makefile.in index 62aeef8bb9..a8253fdd87 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -14,6 +14,7 @@ INSTALL = @INSTALL@ EXEEXT = @EXEEXT@ WINDRES = @WINDRES@ SETFILE = @SETFILE@ +ICC_PCH_USE_SWITCH = @ICC_PCH_USE_SWITCH@ BK_DEPS = @BK_DEPS@ BK_MAKE_PCH = @BK_MAKE_PCH@ srcdir = @srcdir@ @@ -33,7 +34,9 @@ TOOLCHAIN_FULLNAME = @TOOLCHAIN_FULLNAME@ EXTRALIBS = @EXTRALIBS@ EXTRALIBS_XML = @EXTRALIBS_XML@ EXTRALIBS_HTML = @EXTRALIBS_HTML@ +EXTRALIBS_MEDIA = @EXTRALIBS_MEDIA@ EXTRALIBS_GUI = @EXTRALIBS_GUI@ +EXTRALIBS_SDL = @EXTRALIBS_SDL@ CXXWARNINGS = @CXXWARNINGS@ HOST_SUFFIX = @HOST_SUFFIX@ SAMPLES_RPATH_FLAG = @SAMPLES_RPATH_FLAG@ @@ -132,6 +135,7 @@ TEST_GUI_OBJECTS = \ test_gui_htmlwindow.o \ test_gui_guifuncs.o \ test_gui_selstoretest.o \ + test_gui_garbage.o \ test_gui_socket.o \ test_gui_clientsize.o \ test_gui_setsize.o @@ -148,6 +152,7 @@ PRINTFBENCH_ODEP = $(_____pch_testprec_printfbench_testprec_h_gch___depname) @COND_DEPS_TRACKING_0@CXXC = $(CXX) @COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX) +@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL) @COND_USE_GUI_0@PORTNAME = base @COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION) @COND_TOOLKIT_MAC@WXBASEPORT = _carbon @@ -163,13 +168,10 @@ PRINTFBENCH_ODEP = $(_____pch_testprec_printfbench_testprec_h_gch___depname) @COND_PLATFORM_MAC_1@__test___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test$(EXEEXT) @COND_GCC_PCH_1@__test_PCH_INC = -I./.pch/testprec_test -@COND_ICC_PCH_1@__test_PCH_INC = -use_pch \ +@COND_ICC_PCH_1@__test_PCH_INC = $(ICC_PCH_USE_SWITCH) \ @COND_ICC_PCH_1@ ./.pch/testprec_test/testprec.h.gch @COND_USE_PCH_1@_____pch_testprec_test_testprec_h_gch___depname \ @COND_USE_PCH_1@ = ./.pch/testprec_test/testprec.h.gch -COND_MONOLITHIC_0___WXLIB_XML_p = \ - -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml-$(WX_RELEASE)$(HOST_SUFFIX) -@COND_MONOLITHIC_0@__WXLIB_XML_p = $(COND_MONOLITHIC_0___WXLIB_XML_p) @COND_USE_GUI_1@__test_gui___depname = test_gui$(EXEEXT) @COND_PLATFORM_MAC_0@__test_gui___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_gui___mac_setfilecmd = \ @@ -199,10 +201,19 @@ COND_MONOLITHIC_0___WXLIB_XML_p = \ @COND_TOOLKIT_COCOA@____test_gui_BUNDLE_TGT_REF_DEP = \ @COND_TOOLKIT_COCOA@ $(__test_gui_app_Contents_PkgInfo___depname) @COND_GCC_PCH_1@__test_gui_PCH_INC = -I./.pch/testprec_test_gui -@COND_ICC_PCH_1@__test_gui_PCH_INC = -use_pch \ +@COND_ICC_PCH_1@__test_gui_PCH_INC = $(ICC_PCH_USE_SWITCH) \ @COND_ICC_PCH_1@ ./.pch/testprec_test_gui/testprec.h.gch @COND_USE_PCH_1@_____pch_testprec_test_gui_testprec_h_gch___depname \ @COND_USE_PCH_1@ = ./.pch/testprec_test_gui/testprec.h.gch +COND_MONOLITHIC_0_USE_MEDIA_1___WXLIB_MEDIA_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0_USE_MEDIA_1@__WXLIB_MEDIA_p = $(COND_MONOLITHIC_0_USE_MEDIA_1___WXLIB_MEDIA_p) +COND_MONOLITHIC_0___WXLIB_XRC_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_XRC_p = $(COND_MONOLITHIC_0___WXLIB_XRC_p) +COND_MONOLITHIC_0___WXLIB_ADV_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_ADV_p = $(COND_MONOLITHIC_0___WXLIB_ADV_p) COND_MONOLITHIC_0___WXLIB_HTML_p = \ -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html-$(WX_RELEASE)$(HOST_SUFFIX) @COND_MONOLITHIC_0@__WXLIB_HTML_p = $(COND_MONOLITHIC_0___WXLIB_HTML_p) @@ -222,13 +233,17 @@ COND_MONOLITHIC_0___WXLIB_CORE_p = \ @COND_PLATFORM_MAC_1@__printfbench___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL printfbench$(EXEEXT) @COND_GCC_PCH_1@__printfbench_PCH_INC = -I./.pch/testprec_printfbench -@COND_ICC_PCH_1@__printfbench_PCH_INC = -use_pch \ +@COND_ICC_PCH_1@__printfbench_PCH_INC = \ +@COND_ICC_PCH_1@ $(ICC_PCH_USE_SWITCH) \ @COND_ICC_PCH_1@ ./.pch/testprec_printfbench/testprec.h.gch @COND_USE_PCH_1@_____pch_testprec_printfbench_testprec_h_gch___depname \ @COND_USE_PCH_1@ = ./.pch/testprec_printfbench/testprec.h.gch COND_MONOLITHIC_0___WXLIB_NET_p = \ -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net-$(WX_RELEASE)$(HOST_SUFFIX) @COND_MONOLITHIC_0@__WXLIB_NET_p = $(COND_MONOLITHIC_0___WXLIB_NET_p) +COND_MONOLITHIC_0___WXLIB_XML_p = \ + -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_XML_p = $(COND_MONOLITHIC_0___WXLIB_XML_p) @COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ @COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS @COND_USE_RTTI_0@__RTTI_DEFINE_p = -DwxNO_RTTI @@ -279,7 +294,7 @@ test$(EXEEXT): $(TEST_OBJECTS) @COND_USE_PCH_1@ $(BK_MAKE_PCH) ./.pch/testprec_test/testprec.h.gch testprec.h $(CXX) $(TEST_CXXFLAGS) @COND_USE_GUI_1@test_gui$(EXEEXT): $(TEST_GUI_OBJECTS) $(__test_gui___win32rc) -@COND_USE_GUI_1@ $(CXX) -o $@ $(TEST_GUI_OBJECTS) -L$(LIBDIRNAME) $(SAMPLES_RPATH_FLAG) $(CPPUNIT_LIBS) $(LDFLAGS) $(__WXLIB_HTML_p) $(EXTRALIBS_HTML) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS) +@COND_USE_GUI_1@ $(CXX) -o $@ $(TEST_GUI_OBJECTS) -L$(LIBDIRNAME) $(SAMPLES_RPATH_FLAG) $(CPPUNIT_LIBS) $(LDFLAGS) $(__WXLIB_MEDIA_p) $(EXTRALIBS_MEDIA) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(EXTRALIBS_XML) $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_HTML_p) $(EXTRALIBS_HTML) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS) @COND_USE_GUI_1@ @COND_USE_GUI_1@ $(__test_gui___mac_setfilecmd) @COND_USE_GUI_1@ $(SAMPLES_RPATH_POSTLINK) @@ -564,6 +579,9 @@ test_gui_guifuncs.o: $(srcdir)/misc/guifuncs.cpp $(TEST_GUI_ODEP) test_gui_selstoretest.o: $(srcdir)/misc/selstoretest.cpp $(TEST_GUI_ODEP) $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/misc/selstoretest.cpp +test_gui_garbage.o: $(srcdir)/misc/garbage.cpp $(TEST_GUI_ODEP) + $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/misc/garbage.cpp + test_gui_socket.o: $(srcdir)/net/socket.cpp $(TEST_GUI_ODEP) $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/net/socket.cpp diff --git a/tests/makefile.bcc b/tests/makefile.bcc index 5230af9161..cf776115eb 100644 --- a/tests/makefile.bcc +++ b/tests/makefile.bcc @@ -119,6 +119,7 @@ TEST_GUI_OBJECTS = \ $(OBJS)\test_gui_htmlwindow.obj \ $(OBJS)\test_gui_guifuncs.obj \ $(OBJS)\test_gui_selstoretest.obj \ + $(OBJS)\test_gui_garbage.obj \ $(OBJS)\test_gui_socket.obj \ $(OBJS)\test_gui_clientsize.obj \ $(OBJS)\test_gui_setsize.obj @@ -168,10 +169,6 @@ EXTRALIBS_FOR_BASE = !if "$(MONOLITHIC)" == "1" EXTRALIBS_FOR_BASE = !endif -!if "$(MONOLITHIC)" == "0" -__WXLIB_XML_p = \ - wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib -!endif !if "$(USE_GUI)" == "1" __test_gui___depname = $(OBJS)\test_gui.exe !endif @@ -208,6 +205,18 @@ __GFXCTX_DEFINE_p_3 = -dwxUSE_GRAPHICS_CONTEXT=1 !if "$(SHARED)" == "1" __DLLFLAG_p_3 = -dWXUSINGDLL !endif +!if "$(MONOLITHIC)" == "0" && "$(USE_MEDIA)" == "1" +__WXLIB_MEDIA_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XRC_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_ADV_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif !if "$(MONOLITHIC)" == "0" __WXLIB_HTML_p = \ wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib @@ -229,6 +238,10 @@ __LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib __WXLIB_NET_p = \ wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib !endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XML_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif !if "$(BUILD)" == "debug" __OPTIMIZEFLAG = -Od !endif @@ -359,7 +372,7 @@ $(OBJS)\test.exe: $(OBJS)\test_dummy.obj $(TEST_OBJECTS) !if "$(USE_GUI)" == "1" $(OBJS)\test_gui.exe: $(OBJS)\test_gui_dummy.obj $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample.res ilink32 -Tpe -q -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) $(CPPUNIT_LIBS) -ap $(LDFLAGS) @&&| - c0x32.obj $(TEST_GUI_OBJECTS),$@,, $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_1).lib,, $(OBJS)\test_gui_sample.res + c0x32.obj $(TEST_GUI_OBJECTS),$@,, $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_ADV_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_1).lib,, $(OBJS)\test_gui_sample.res | !endif @@ -604,6 +617,9 @@ $(OBJS)\test_gui_guifuncs.obj: .\misc\guifuncs.cpp $(OBJS)\test_gui_selstoretest.obj: .\misc\selstoretest.cpp $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\misc\selstoretest.cpp +$(OBJS)\test_gui_garbage.obj: .\misc\garbage.cpp + $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\misc\garbage.cpp + $(OBJS)\test_gui_socket.obj: .\net\socket.cpp $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp diff --git a/tests/makefile.gcc b/tests/makefile.gcc index e37162f1df..0ee3124158 100644 --- a/tests/makefile.gcc +++ b/tests/makefile.gcc @@ -112,6 +112,7 @@ TEST_GUI_OBJECTS = \ $(OBJS)\test_gui_htmlwindow.o \ $(OBJS)\test_gui_guifuncs.o \ $(OBJS)\test_gui_selstoretest.o \ + $(OBJS)\test_gui_garbage.o \ $(OBJS)\test_gui_socket.o \ $(OBJS)\test_gui_clientsize.o \ $(OBJS)\test_gui_setsize.o @@ -166,10 +167,6 @@ endif ifeq ($(MONOLITHIC),1) EXTRALIBS_FOR_BASE = endif -ifeq ($(MONOLITHIC),0) -__WXLIB_XML_p = \ - -lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml -endif ifeq ($(USE_GUI),1) __test_gui___depname = $(OBJS)\test_gui.exe endif @@ -209,6 +206,20 @@ ifeq ($(SHARED),1) __DLLFLAG_p_3 = --define WXUSINGDLL endif ifeq ($(MONOLITHIC),0) +ifeq ($(USE_MEDIA),1) +__WXLIB_MEDIA_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media +endif +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_XRC_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_ADV_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv +endif +ifeq ($(MONOLITHIC),0) __WXLIB_HTML_p = \ -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html endif @@ -229,6 +240,10 @@ ifeq ($(MONOLITHIC),0) __WXLIB_NET_p = \ -lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net endif +ifeq ($(MONOLITHIC),0) +__WXLIB_XML_p = \ + -lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml +endif ifeq ($(BUILD),debug) __OPTIMIZEFLAG = -O0 endif @@ -340,7 +355,7 @@ $(OBJS)\test.exe: $(TEST_OBJECTS) ifeq ($(USE_GUI),1) $(OBJS)\test_gui.exe: $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample_rc.o - $(CXX) -o $@ $(TEST_GUI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(CPPUNIT_LIBS) $(LDFLAGS) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 + $(CXX) -o $@ $(TEST_GUI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(CPPUNIT_LIBS) $(LDFLAGS) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_ADV_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 endif data: @@ -582,6 +597,9 @@ $(OBJS)\test_gui_guifuncs.o: ./misc/guifuncs.cpp $(OBJS)\test_gui_selstoretest.o: ./misc/selstoretest.cpp $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\test_gui_garbage.o: ./misc/garbage.cpp + $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\test_gui_socket.o: ./net/socket.cpp $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $< diff --git a/tests/makefile.vc b/tests/makefile.vc index 621259febf..da711557f1 100644 --- a/tests/makefile.vc +++ b/tests/makefile.vc @@ -115,6 +115,7 @@ TEST_GUI_OBJECTS = \ $(OBJS)\test_gui_htmlwindow.obj \ $(OBJS)\test_gui_guifuncs.obj \ $(OBJS)\test_gui_selstoretest.obj \ + $(OBJS)\test_gui_garbage.obj \ $(OBJS)\test_gui_socket.obj \ $(OBJS)\test_gui_clientsize.obj \ $(OBJS)\test_gui_setsize.obj @@ -196,10 +197,6 @@ __RUNTIME_LIBS_8 = D !if "$(RUNTIME_LIBS)" == "static" __RUNTIME_LIBS_8 = $(__THREADSFLAG) !endif -!if "$(MONOLITHIC)" == "0" -__WXLIB_XML_p = \ - wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib -!endif !if "$(USE_GUI)" == "1" __test_gui___depname = $(OBJS)\test_gui.exe !endif @@ -260,6 +257,18 @@ __GFXCTX_DEFINE_p_3 = /d wxUSE_GRAPHICS_CONTEXT=1 !if "$(SHARED)" == "1" __DLLFLAG_p_3 = /d WXUSINGDLL !endif +!if "$(MONOLITHIC)" == "0" && "$(USE_MEDIA)" == "1" +__WXLIB_MEDIA_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XRC_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_ADV_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif !if "$(MONOLITHIC)" == "0" __WXLIB_HTML_p = \ wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib @@ -287,6 +296,10 @@ __RUNTIME_LIBS_38 = $(__THREADSFLAG) __WXLIB_NET_p = \ wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib !endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XML_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif !if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default" __DEBUGINFO = /Zi !endif @@ -444,7 +457,7 @@ $(OBJS)\test.exe: $(OBJS)\test_dummy.obj $(TEST_OBJECTS) !if "$(USE_GUI)" == "1" $(OBJS)\test_gui.exe: $(OBJS)\test_gui_dummy.obj $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample.res link /NOLOGO /OUT:$@ $(__DEBUGINFO_2) /pdb:"$(OBJS)\test_gui.pdb" $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) $(CPPUNIT_LIBS) /SUBSYSTEM:CONSOLE $(LDFLAGS) @<< - $(TEST_GUI_OBJECTS) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib + $(TEST_GUI_OBJECTS) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_ADV_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib << !endif @@ -689,6 +702,9 @@ $(OBJS)\test_gui_guifuncs.obj: .\misc\guifuncs.cpp $(OBJS)\test_gui_selstoretest.obj: .\misc\selstoretest.cpp $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\misc\selstoretest.cpp +$(OBJS)\test_gui_garbage.obj: .\misc\garbage.cpp + $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\misc\garbage.cpp + $(OBJS)\test_gui_socket.obj: .\net\socket.cpp $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp diff --git a/tests/makefile.wat b/tests/makefile.wat index 1e1b503802..4f2ed87290 100644 --- a/tests/makefile.wat +++ b/tests/makefile.wat @@ -69,15 +69,27 @@ EXTRALIBS_FOR_BASE = !ifeq MONOLITHIC 1 EXTRALIBS_FOR_BASE = !endif -__WXLIB_XML_p = -!ifeq MONOLITHIC 0 -__WXLIB_XML_p = & - wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib -!endif __test_gui___depname = !ifeq USE_GUI 1 __test_gui___depname = $(OBJS)\test_gui.exe !endif +__WXLIB_MEDIA_p = +!ifeq MONOLITHIC 0 +!ifeq USE_MEDIA 1 +__WXLIB_MEDIA_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.lib +!endif +!endif +__WXLIB_XRC_p = +!ifeq MONOLITHIC 0 +__WXLIB_XRC_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.lib +!endif +__WXLIB_ADV_p = +!ifeq MONOLITHIC 0 +__WXLIB_ADV_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif __WXLIB_HTML_p = !ifeq MONOLITHIC 0 __WXLIB_HTML_p = & @@ -105,6 +117,11 @@ __WXLIB_NET_p = __WXLIB_NET_p = & wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib !endif +__WXLIB_XML_p = +!ifeq MONOLITHIC 0 +__WXLIB_XML_p = & + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif __DEBUGINFO = !ifeq BUILD debug !ifeq DEBUG_INFO default @@ -329,6 +346,7 @@ TEST_GUI_OBJECTS = & $(OBJS)\test_gui_htmlwindow.obj & $(OBJS)\test_gui_guifuncs.obj & $(OBJS)\test_gui_selstoretest.obj & + $(OBJS)\test_gui_garbage.obj & $(OBJS)\test_gui_socket.obj & $(OBJS)\test_gui_clientsize.obj & $(OBJS)\test_gui_setsize.obj @@ -382,7 +400,7 @@ $(OBJS)\test_gui.exe : $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample.res @%append $(OBJS)\test_gui.lbc option caseexact @%append $(OBJS)\test_gui.lbc $(__DEBUGINFO_2) libpath $(LIBDIRNAME) $(CPPUNIT_LIBS) system nt ref 'main_' $(LDFLAGS) @for %i in ($(TEST_GUI_OBJECTS)) do @%append $(OBJS)\test_gui.lbc file %i - @for %i in ( $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\test_gui.lbc library %i + @for %i in ( $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_ADV_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\test_gui.lbc library %i @%append $(OBJS)\test_gui.lbc option resource=$(OBJS)\test_gui_sample.res @for %i in () do @%append $(OBJS)\test_gui.lbc option stack=%i wlink @$(OBJS)\test_gui.lbc @@ -636,6 +654,9 @@ $(OBJS)\test_gui_guifuncs.obj : .AUTODEPEND .\misc\guifuncs.cpp $(OBJS)\test_gui_selstoretest.obj : .AUTODEPEND .\misc\selstoretest.cpp $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $< +$(OBJS)\test_gui_garbage.obj : .AUTODEPEND .\misc\garbage.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $< + $(OBJS)\test_gui_socket.obj : .AUTODEPEND .\net\socket.cpp $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $< diff --git a/tests/misc/garbage.cpp b/tests/misc/garbage.cpp new file mode 100644 index 0000000000..591fef32e5 --- /dev/null +++ b/tests/misc/garbage.cpp @@ -0,0 +1,183 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: tests/misc/garbage.cpp +// Purpose: test if loading garbage fails +// Author: Francesco Montorsi +// Created: 2009-01-10 +// RCS-ID: $Id$ +// Copyright: (c) 2009 Francesco Montorsi +/////////////////////////////////////////////////////////////////////////////// + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#include "testprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/filename.h" +#include "wx/image.h" +#include "wx/animate.h" +#include "wx/mstream.h" +#include "wx/dynlib.h" +#include "wx/mediactrl.h" +#include "wx/html/htmlwin.h" +#include "wx/xrc/xmlres.h" + +#define GARBAGE_DATA_SIZE 1000000 // in bytes; ~ 1MB + +// ---------------------------------------------------------------------------- +// test class +// ---------------------------------------------------------------------------- + +class GarbageTestCase : public CppUnit::TestCase +{ +public: + GarbageTestCase() { } + +private: + CPPUNIT_TEST_SUITE( GarbageTestCase ); + CPPUNIT_TEST( LoadGarbage ); + CPPUNIT_TEST_SUITE_END(); + + void LoadGarbage(); + void DoLoadFile(const wxString& fullname); + void DoLoadStream(wxInputStream& stream); + + DECLARE_NO_COPY_CLASS(GarbageTestCase) +}; + +// register in the unnamed registry so that these tests are run by default +CPPUNIT_TEST_SUITE_REGISTRATION( GarbageTestCase ); + +// also include in it's own registry so that these tests can be run alone +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( GarbageTestCase, "GarbageTestCase" ); + + +void GarbageTestCase::LoadGarbage() +{ + srand(1234); + + wxInitAllImageHandlers(); + + for (size_t size = 1; size < GARBAGE_DATA_SIZE; size *= size+1) + { + // first, generate some garbage data + unsigned char *data = new unsigned char[size]; + for (size_t i = 0; i < size; i++) + data[i] = rand(); + + // write it to a file + wxString garbagename = wxFileName::CreateTempFileName("garbage"); + CPPUNIT_ASSERT( !garbagename.empty() ); + + wxFile garbage(garbagename, wxFile::write); + CPPUNIT_ASSERT( garbage.IsOpened() ); + + CPPUNIT_ASSERT( garbage.Write(data, size) == size ); + garbage.Close(); + + // try to load it by name + DoLoadFile(garbagename); + + // try to load it from a wxInputStream + wxMemoryInputStream stream(data, size); + DoLoadStream(stream); + + wxDELETEA(data); + } +} + +void GarbageTestCase::DoLoadFile(const wxString& fullname) +{ + // test wxImage + wxImage img; + CPPUNIT_ASSERT( img.LoadFile(fullname) == false ); + // test with the default wxBITMAP_TYPE_ANY + + for (int type = wxBITMAP_TYPE_BMP; type < wxBITMAP_TYPE_ANY; type++) + CPPUNIT_ASSERT( img.LoadFile(fullname, (wxBitmapType)type) == false ); + // test with all other possible wxBITMAP_TYPE_* flags + + // test wxBitmap + wxBitmap bmp; + CPPUNIT_ASSERT( bmp.LoadFile(fullname) == false ); + // test with the default wxBITMAP_TYPE_ANY + + for (int type = wxBITMAP_TYPE_BMP; type < wxBITMAP_TYPE_ANY; type++) + CPPUNIT_ASSERT( bmp.LoadFile(fullname, (wxBitmapType)type) == false ); + // test with all other possible wxBITMAP_TYPE_* flags + + // test wxIcon + wxIcon icon; + CPPUNIT_ASSERT( icon.LoadFile(fullname) == false ); + // test with the default wxICON_DEFAULT_TYPE + + for (int type = wxBITMAP_TYPE_BMP; type < wxBITMAP_TYPE_ANY; type++) + CPPUNIT_ASSERT( icon.LoadFile(fullname, (wxBitmapType)type) == false ); + // test with all other possible wxBITMAP_TYPE_* flags + + + // test wxAnimation + wxAnimation anim; + CPPUNIT_ASSERT( anim.LoadFile(fullname) == false ); + // test with the default wxANIMATION_TYPE_ANY + + for (int type = wxANIMATION_TYPE_INVALID+1; type < wxANIMATION_TYPE_ANY; type++) + CPPUNIT_ASSERT( anim.LoadFile(fullname, (wxAnimationType)type) == false ); + // test with all other possible wxANIMATION_TYPE_* flags + + + // test wxDynamicLibrary + wxDynamicLibrary lib; + CPPUNIT_ASSERT( lib.Load(fullname) == false ); + // test with the default wxANIMATION_TYPE_ANY +/* +#if wxUSE_MEDIACTRL + // test wxMediaCtrl + wxMediaCtrl *media = new wxMediaCtrl(wxTheApp->GetTopWindow()); + CPPUNIT_ASSERT( media->Load(fullname) == false ); +#endif + + // test wxHtmlWindow + wxHtmlWindow *htmlwin = new wxHtmlWindow(wxTheApp->GetTopWindow()); + CPPUNIT_ASSERT( htmlwin->LoadFile(fullname) == false ); + delete htmlwin; +*/ + // test wxXmlResource + CPPUNIT_ASSERT( wxXmlResource::Get()->Load(fullname) == false ); +} + +void GarbageTestCase::DoLoadStream(wxInputStream& stream) +{ + // NOTE: not all classes tested by DoLoadFile() supports loading + // from an input stream! + + // test wxImage + wxImage img; + CPPUNIT_ASSERT( img.LoadFile(stream) == false ); + // test with the default wxBITMAP_TYPE_ANY + + for (int type = wxBITMAP_TYPE_INVALID+1; type < wxBITMAP_TYPE_ANY; type++) + CPPUNIT_ASSERT( img.LoadFile(stream, (wxBitmapType)type) == false ); + // test with all other possible wxBITMAP_TYPE_* flags + + + // test wxAnimation + wxAnimation anim; + CPPUNIT_ASSERT( anim.Load(stream) == false ); + // test with the default wxANIMATION_TYPE_ANY + + for (int type = wxANIMATION_TYPE_INVALID+1; type < wxANIMATION_TYPE_ANY; type++) + CPPUNIT_ASSERT( anim.Load(stream, (wxAnimationType)type) == false ); + // test with all other possible wxANIMATION_TYPE_* flags +/* + // test wxHtmlWindow + wxHtmlWindow *htmlwin = new wxHtmlWindow(wxTheApp->GetTopWindow()); + CPPUNIT_ASSERT( htmlwin->LoadFile(fullname) == false ); + delete htmlwin; +*/ +} + diff --git a/tests/test.bkl b/tests/test.bkl index cade5f1400..d7e0581953 100644 --- a/tests/test.bkl +++ b/tests/test.bkl @@ -116,6 +116,7 @@ html/htmlwindow.cpp misc/guifuncs.cpp misc/selstoretest.cpp + misc/garbage.cpp + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -683,439 +632,155 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/tests/test_vc7_test_gui.vcproj b/tests/test_vc7_test_gui.vcproj index d7a2de9d87..686064c4a3 100644 --- a/tests/test_vc7_test_gui.vcproj +++ b/tests/test_vc7_test_gui.vcproj @@ -47,7 +47,7 @@ + + diff --git a/tests/test_vc8_test_gui.vcproj b/tests/test_vc8_test_gui.vcproj index a674547399..d246b82f44 100644 --- a/tests/test_vc8_test_gui.vcproj +++ b/tests/test_vc8_test_gui.vcproj @@ -79,7 +79,7 @@ + + diff --git a/tests/test_vc9_test_gui.vcproj b/tests/test_vc9_test_gui.vcproj index 0c2cfe36c3..477bf540ec 100644 --- a/tests/test_vc9_test_gui.vcproj +++ b/tests/test_vc9_test_gui.vcproj @@ -79,7 +79,7 @@ + +