wxWidgets/tests/makefile.vc

1326 lines
51 KiB
Plaintext
Raw Normal View History

# =========================================================================
# This makefile was generated by
# Bakefile 0.2.11 (http://www.bakefile.org)
# Do not modify, all changes will be overwritten!
# =========================================================================
!include <../build/msw/config.vc>
# -------------------------------------------------------------------------
# Do not modify the rest of this file!
# -------------------------------------------------------------------------
### Variables: ###
WX_RELEASE_NODOT = 31
COMPILER_PREFIX = vc
OBJS = \
$(COMPILER_PREFIX)$(COMPILER_VERSION)_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)$(ARCH_SUFFIX)
LIBDIRNAME = \
.\..\lib\$(COMPILER_PREFIX)$(COMPILER_VERSION)$(ARCH_SUFFIX)_$(LIBTYPE_SUFFIX)$(CFG)
SETUPHDIR = \
$(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
TEST_CXXFLAGS = /M$(__RUNTIME_LIBS_10)$(__DEBUGRUNTIME) /DWIN32 $(__DEBUGINFO) \
/Fd$(OBJS)\test.pdb $(____DEBUGRUNTIME) $(__OPTIMIZEFLAG) \
/D_CRT_SECURE_NO_DEPRECATE=1 /D_CRT_NON_CONFORMING_SWPRINTFS=1 \
/D_SCL_SECURE_NO_WARNINGS=1 $(__NO_VC_CRTDBG_p) /D__WXMSW__ \
$(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) \
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
$(__UNICODE_DEFINE_p) /I$(SETUPHDIR) /I.\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) /W4 /I. $(__DLLFLAG_p) /D_CONSOLE \
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
/DwxUSE_GUI=0 /I.\..\3rdparty\catch\include $(__RTTIFLAG) \
$(__EXCEPTIONSFLAG) /Yu"testprec.h" /Fp"$(OBJS)\testprec_test.pch" \
$(CPPFLAGS) $(CXXFLAGS)
TEST_OBJECTS = \
$(OBJS)\test_dummy.obj \
$(OBJS)\test_test.obj \
$(OBJS)\test_anytest.obj \
$(OBJS)\test_archivetest.obj \
$(OBJS)\test_ziptest.obj \
$(OBJS)\test_tartest.obj \
$(OBJS)\test_arrays.obj \
$(OBJS)\test_base64.obj \
$(OBJS)\test_cmdlinetest.obj \
$(OBJS)\test_fileconf.obj \
$(OBJS)\test_regconf.obj \
$(OBJS)\test_datetimetest.obj \
$(OBJS)\test_evthandler.obj \
$(OBJS)\test_evtlooptest.obj \
$(OBJS)\test_evtsource.obj \
$(OBJS)\test_stopwatch.obj \
$(OBJS)\test_timertest.obj \
$(OBJS)\test_exec.obj \
$(OBJS)\test_dir.obj \
$(OBJS)\test_filefn.obj \
$(OBJS)\test_filetest.obj \
$(OBJS)\test_filekind.obj \
$(OBJS)\test_filenametest.obj \
$(OBJS)\test_filesystest.obj \
$(OBJS)\test_fontmaptest.obj \
$(OBJS)\test_formatconvertertest.obj \
$(OBJS)\test_fswatchertest.obj \
$(OBJS)\test_hashes.obj \
$(OBJS)\test_output.obj \
$(OBJS)\test_input.obj \
$(OBJS)\test_intltest.obj \
$(OBJS)\test_lists.obj \
$(OBJS)\test_logtest.obj \
$(OBJS)\test_longlongtest.obj \
$(OBJS)\test_convautotest.obj \
$(OBJS)\test_mbconvtest.obj \
$(OBJS)\test_dynamiclib.obj \
$(OBJS)\test_environ.obj \
$(OBJS)\test_metatest.obj \
$(OBJS)\test_misctests.obj \
$(OBJS)\test_module.obj \
$(OBJS)\test_pathlist.obj \
$(OBJS)\test_typeinfotest.obj \
$(OBJS)\test_ipc.obj \
$(OBJS)\test_socket.obj \
$(OBJS)\test_regextest.obj \
$(OBJS)\test_wxregextest.obj \
$(OBJS)\test_scopeguardtest.obj \
$(OBJS)\test_iostream.obj \
$(OBJS)\test_numformatter.obj \
$(OBJS)\test_strings.obj \
$(OBJS)\test_stdstrings.obj \
$(OBJS)\test_tokenizer.obj \
$(OBJS)\test_unichar.obj \
$(OBJS)\test_unicode.obj \
$(OBJS)\test_vararg.obj \
$(OBJS)\test_crt.obj \
$(OBJS)\test_vsnprintf.obj \
2017-02-23 14:01:48 -05:00
$(OBJS)\test_hexconv.obj \
$(OBJS)\test_datastreamtest.obj \
$(OBJS)\test_ffilestream.obj \
$(OBJS)\test_fileback.obj \
$(OBJS)\test_filestream.obj \
$(OBJS)\test_iostreams.obj \
$(OBJS)\test_largefile.obj \
$(OBJS)\test_lzmastream.obj \
$(OBJS)\test_memstream.obj \
$(OBJS)\test_socketstream.obj \
$(OBJS)\test_sstream.obj \
$(OBJS)\test_stdstream.obj \
$(OBJS)\test_tempfile.obj \
$(OBJS)\test_textstreamtest.obj \
$(OBJS)\test_zlibstream.obj \
$(OBJS)\test_textfiletest.obj \
$(OBJS)\test_atomic.obj \
$(OBJS)\test_misc.obj \
$(OBJS)\test_queue.obj \
$(OBJS)\test_tls.obj \
$(OBJS)\test_ftp.obj \
$(OBJS)\test_uris.obj \
$(OBJS)\test_url.obj \
$(OBJS)\test_vectors.obj \
$(OBJS)\test_evtconnection.obj \
$(OBJS)\test_weakref.obj \
$(OBJS)\test_xlocale.obj \
$(OBJS)\test_xmltest.obj
TEST_DRAWING_CXXFLAGS = /M$(__RUNTIME_LIBS_27)$(__DEBUGRUNTIME) /DWIN32 \
$(__DEBUGINFO) /Fd$(OBJS)\test_drawing.pdb $(____DEBUGRUNTIME) \
$(__OPTIMIZEFLAG) /D_CRT_SECURE_NO_DEPRECATE=1 \
/D_CRT_NON_CONFORMING_SWPRINTFS=1 /D_SCL_SECURE_NO_WARNINGS=1 \
$(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
$(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) /I$(SETUPHDIR) /I.\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) /W4 /I. $(__DLLFLAG_p) /D_CONSOLE \
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
/DwxUSE_GUI=0 /I.\..\3rdparty\catch\include $(__RTTIFLAG) \
$(__EXCEPTIONSFLAG) /Yu"testprec.h" /Fp"$(OBJS)\testprec_test_drawing.pch" \
$(CPPFLAGS) $(CXXFLAGS)
TEST_DRAWING_OBJECTS = \
$(OBJS)\test_drawing_dummy.obj \
$(OBJS)\test_drawing_test.obj \
$(OBJS)\test_drawing_drawing.obj \
$(OBJS)\test_drawing_plugindriver.obj \
$(OBJS)\test_drawing_basictest.obj \
$(OBJS)\test_drawing_fonttest.obj
TEST_DRAWINGPLUGIN_CXXFLAGS = /M$(__RUNTIME_LIBS_45)$(__DEBUGRUNTIME) /DWIN32 \
$(__DEBUGINFO) /Fd$(OBJS)\test_drawingplugin.pdb $(____DEBUGRUNTIME) \
$(__OPTIMIZEFLAG) /D_CRT_SECURE_NO_DEPRECATE=1 \
/D_CRT_NON_CONFORMING_SWPRINTFS=1 /D_SCL_SECURE_NO_WARNINGS=1 \
$(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
$(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) /I$(SETUPHDIR) /I.\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) /W4 $(__DLLFLAG_p) $(__RTTIFLAG) \
$(__EXCEPTIONSFLAG) $(CPPFLAGS) $(CXXFLAGS)
TEST_DRAWINGPLUGIN_OBJECTS = \
$(OBJS)\test_drawingplugin_pluginsample.obj
TEST_GUI_CXXFLAGS = /M$(__RUNTIME_LIBS_59)$(__DEBUGRUNTIME) /DWIN32 \
$(__DEBUGINFO) /Fd$(OBJS)\test_gui.pdb $(____DEBUGRUNTIME) \
$(__OPTIMIZEFLAG) /D_CRT_SECURE_NO_DEPRECATE=1 \
/D_CRT_NON_CONFORMING_SWPRINTFS=1 /D_SCL_SECURE_NO_WARNINGS=1 \
$(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
$(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) /I$(SETUPHDIR) /I.\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) /W4 /I. $(__DLLFLAG_p) /I.\..\samples \
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
/DNOPCH /I.\..\3rdparty\catch\include /D_CONSOLE $(__RTTIFLAG) \
$(__EXCEPTIONSFLAG) /Yu"testprec.h" /Fp"$(OBJS)\testprec_test_gui.pch" \
$(CPPFLAGS) $(CXXFLAGS)
TEST_GUI_OBJECTS = \
$(OBJS)\test_gui_dummy.obj \
$(OBJS)\test_gui_asserthelper.obj \
$(OBJS)\test_gui_test.obj \
$(OBJS)\test_gui_testableframe.obj \
$(OBJS)\test_gui_rect.obj \
$(OBJS)\test_gui_size.obj \
$(OBJS)\test_gui_point.obj \
$(OBJS)\test_gui_region.obj \
$(OBJS)\test_gui_bitmap.obj \
$(OBJS)\test_gui_colour.obj \
$(OBJS)\test_gui_ellipsization.obj \
$(OBJS)\test_gui_measuring.obj \
$(OBJS)\test_gui_affinematrix.obj \
$(OBJS)\test_gui_boundingbox.obj \
$(OBJS)\test_gui_clippingbox.obj \
$(OBJS)\test_gui_graphmatrix.obj \
$(OBJS)\test_gui_graphpath.obj \
$(OBJS)\test_gui_config.obj \
$(OBJS)\test_gui_auitest.obj \
$(OBJS)\test_gui_bitmapcomboboxtest.obj \
$(OBJS)\test_gui_bitmaptogglebuttontest.obj \
$(OBJS)\test_gui_bookctrlbasetest.obj \
$(OBJS)\test_gui_buttontest.obj \
$(OBJS)\test_gui_checkboxtest.obj \
$(OBJS)\test_gui_checklistboxtest.obj \
$(OBJS)\test_gui_choicebooktest.obj \
$(OBJS)\test_gui_choicetest.obj \
$(OBJS)\test_gui_comboboxtest.obj \
$(OBJS)\test_gui_dataviewctrltest.obj \
$(OBJS)\test_gui_datepickerctrltest.obj \
$(OBJS)\test_gui_frametest.obj \
$(OBJS)\test_gui_gaugetest.obj \
$(OBJS)\test_gui_gridtest.obj \
$(OBJS)\test_gui_headerctrltest.obj \
$(OBJS)\test_gui_htmllboxtest.obj \
$(OBJS)\test_gui_hyperlinkctrltest.obj \
$(OBJS)\test_gui_itemcontainertest.obj \
$(OBJS)\test_gui_label.obj \
$(OBJS)\test_gui_listbasetest.obj \
$(OBJS)\test_gui_listbooktest.obj \
$(OBJS)\test_gui_listboxtest.obj \
$(OBJS)\test_gui_listctrltest.obj \
$(OBJS)\test_gui_listviewtest.obj \
$(OBJS)\test_gui_markuptest.obj \
$(OBJS)\test_gui_notebooktest.obj \
$(OBJS)\test_gui_ownerdrawncomboboxtest.obj \
$(OBJS)\test_gui_pickerbasetest.obj \
$(OBJS)\test_gui_pickertest.obj \
$(OBJS)\test_gui_radioboxtest.obj \
$(OBJS)\test_gui_radiobuttontest.obj \
$(OBJS)\test_gui_rearrangelisttest.obj \
$(OBJS)\test_gui_richtextctrltest.obj \
$(OBJS)\test_gui_searchctrltest.obj \
$(OBJS)\test_gui_simplebooktest.obj \
$(OBJS)\test_gui_slidertest.obj \
$(OBJS)\test_gui_spinctrldbltest.obj \
$(OBJS)\test_gui_spinctrltest.obj \
$(OBJS)\test_gui_styledtextctrltest.obj \
$(OBJS)\test_gui_textctrltest.obj \
$(OBJS)\test_gui_textentrytest.obj \
$(OBJS)\test_gui_togglebuttontest.obj \
$(OBJS)\test_gui_toolbooktest.obj \
$(OBJS)\test_gui_treebooktest.obj \
$(OBJS)\test_gui_treectrltest.obj \
$(OBJS)\test_gui_treelistctrltest.obj \
$(OBJS)\test_gui_virtlistctrltest.obj \
$(OBJS)\test_gui_webtest.obj \
$(OBJS)\test_gui_windowtest.obj \
$(OBJS)\test_gui_dialogtest.obj \
$(OBJS)\test_gui_clone.obj \
$(OBJS)\test_gui_evtlooptest.obj \
$(OBJS)\test_gui_propagation.obj \
$(OBJS)\test_gui_keyboard.obj \
$(OBJS)\test_gui_exec.obj \
$(OBJS)\test_gui_fonttest.obj \
$(OBJS)\test_gui_image.obj \
$(OBJS)\test_gui_rawbmp.obj \
$(OBJS)\test_gui_htmlparser.obj \
$(OBJS)\test_gui_htmlwindow.obj \
$(OBJS)\test_gui_htmprint.obj \
$(OBJS)\test_gui_accelentry.obj \
$(OBJS)\test_gui_menu.obj \
$(OBJS)\test_gui_guifuncs.obj \
$(OBJS)\test_gui_selstoretest.obj \
$(OBJS)\test_gui_garbage.obj \
$(OBJS)\test_gui_safearrayconverttest.obj \
$(OBJS)\test_gui_settings.obj \
$(OBJS)\test_gui_socket.obj \
$(OBJS)\test_gui_tlw.obj \
$(OBJS)\test_gui_dataview.obj \
$(OBJS)\test_gui_rowheightcachetest.obj \
$(OBJS)\test_gui_boxsizer.obj \
$(OBJS)\test_gui_gridsizer.obj \
$(OBJS)\test_gui_wrapsizer.obj \
$(OBJS)\test_gui_toplevel.obj \
$(OBJS)\test_gui_valnum.obj \
$(OBJS)\test_gui_valtext.obj \
$(OBJS)\test_gui_clientsize.obj \
$(OBJS)\test_gui_setsize.obj \
$(OBJS)\test_gui_xrctest.obj
TEST_GUI_RESOURCES = \
$(OBJS)\test_gui_sample.res
### Conditionally set variables: ###
!if "$(TARGET_CPU)" == "AMD64"
ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "ARM64"
ARCH_SUFFIX = _arm64
!endif
!if "$(TARGET_CPU)" == "IA64"
ARCH_SUFFIX = _ia64
!endif
!if "$(TARGET_CPU)" == "X64"
ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "amd64"
ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "arm64"
ARCH_SUFFIX = _arm64
!endif
!if "$(TARGET_CPU)" == "ia64"
ARCH_SUFFIX = _ia64
!endif
!if "$(TARGET_CPU)" == "x64"
ARCH_SUFFIX = _x64
!endif
!if "$(USE_GUI)" == "0"
PORTNAME = base
!endif
!if "$(USE_GUI)" == "1"
PORTNAME = msw$(TOOLKIT_VERSION)
!endif
!if "$(OFFICIAL_BUILD)" == "1"
COMPILER_VERSION = ERROR-COMPILER-VERSION-MUST-BE-SET-FOR-OFFICIAL-BUILD
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
WXDEBUGFLAG = d
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
WXDEBUGFLAG = d
!endif
!if "$(UNICODE)" == "1"
WXUNICODEFLAG = u
!endif
!if "$(WXUNIV)" == "1"
WXUNIVNAME = univ
!endif
!if "$(SHARED)" == "1"
WXDLLFLAG = dll
!endif
!if "$(SHARED)" == "0"
LIBTYPE_SUFFIX = lib
!endif
!if "$(SHARED)" == "1"
LIBTYPE_SUFFIX = dll
!endif
!if "$(TARGET_CPU)" == "AMD64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "ARM64"
LINK_TARGET_CPU = /MACHINE:ARM64
!endif
!if "$(TARGET_CPU)" == "IA64"
LINK_TARGET_CPU = /MACHINE:IA64
!endif
!if "$(TARGET_CPU)" == "X64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "amd64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "arm64"
LINK_TARGET_CPU = /MACHINE:ARM64
!endif
!if "$(TARGET_CPU)" == "ia64"
LINK_TARGET_CPU = /MACHINE:IA64
!endif
!if "$(TARGET_CPU)" == "x64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(MONOLITHIC)" == "0"
EXTRALIBS_FOR_BASE =
!endif
!if "$(MONOLITHIC)" == "1"
EXTRALIBS_FOR_BASE =
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_2 = $(__DEBUGRUNTIME_2)
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_2 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_2 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_2 = $(__DEBUGRUNTIME_2)
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_10 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_10 = $(__THREADSFLAG)
!endif
!if "$(MONOLITHIC)" == "1"
__LIB_PNG_IF_MONO_p = $(__LIB_PNG_p)
!endif
!if "$(USE_GUI)" == "1"
__test_drawing___depname = $(OBJS)\test_drawing.exe
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_19 = $(__DEBUGRUNTIME_2)
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_19 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_19 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_19 = $(__DEBUGRUNTIME_2)
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_27 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_27 = $(__THREADSFLAG)
!endif
!if "$(SHARED)" == "1" && "$(USE_GUI)" == "1"
__test_drawingplugin___depname = $(OBJS)\test_drawingplugin.dll
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_37 = $(__DEBUGRUNTIME_2)
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_37 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_37 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_37 = $(__DEBUGRUNTIME_2)
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_45 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_45 = $(__THREADSFLAG)
!endif
!if "$(USE_GUI)" == "1"
__test_gui___depname = $(OBJS)\test_gui.exe
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_51 = $(__DEBUGRUNTIME_2)
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_51 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_51 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_51 = $(__DEBUGRUNTIME_2)
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_52_p_1 = /d _DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_52_p_1 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
____DEBUGRUNTIME_52_p_1 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
____DEBUGRUNTIME_52_p_1 = /d _DEBUG
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_59 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_59 = $(__THREADSFLAG)
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
__NO_VC_CRTDBG_p_7 = /d __NO_VC_CRTDBG__
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
__NO_VC_CRTDBG_p_7 = /d __NO_VC_CRTDBG__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p_7 = /d __WXUNIVERSAL__
!endif
!if "$(DEBUG_FLAG)" == "0"
__DEBUG_DEFINE_p_7 = /d wxDEBUG_LEVEL=0
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__NDEBUG_DEFINE_p_7 = /d NDEBUG
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
__NDEBUG_DEFINE_p_7 = /d NDEBUG
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p_7 = /d wxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p_7 = /d wxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p_7 = /d wxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p_7 = /d wxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p_7 = /d _UNICODE
!endif
!if "$(USE_CAIRO)" == "1"
____CAIRO_INCLUDEDIR_FILENAMES_7_p = /i $(CAIRO_ROOT)\include\cairo
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p_7 = /d WXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0" && "$(USE_WEBVIEW)" == "1"
__WXLIB_WEBVIEW_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.lib
!endif
!if "$(MONOLITHIC)" == "0" && "$(USE_STC)" == "1"
__WXLIB_STC_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_AUI_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_RICHTEXT_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.lib
!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_HTML_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_XML_p = \
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_NET_p = \
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO = /Zi
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO = /Zi
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_4 = /DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_4 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_4 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_4 = /DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME = /D_DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
____DEBUGRUNTIME =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
____DEBUGRUNTIME = /D_DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__DEBUGRUNTIME = d
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__DEBUGRUNTIME =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
__DEBUGRUNTIME =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
__DEBUGRUNTIME = d
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__DEBUGRUNTIME_2 =
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__DEBUGRUNTIME_2 = /opt:ref /opt:icf
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
__DEBUGRUNTIME_2 = /opt:ref /opt:icf
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
__DEBUGRUNTIME_2 =
!endif
!if "$(BUILD)" == "debug"
__OPTIMIZEFLAG = /Od
!endif
!if "$(BUILD)" == "release"
__OPTIMIZEFLAG = /O2
!endif
!if "$(USE_THREADS)" == "0"
__THREADSFLAG = L
!endif
!if "$(USE_THREADS)" == "1"
__THREADSFLAG = T
!endif
!if "$(USE_RTTI)" == "0"
__RTTIFLAG = /GR-
!endif
!if "$(USE_RTTI)" == "1"
__RTTIFLAG = /GR
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONSFLAG =
!endif
!if "$(USE_EXCEPTIONS)" == "1"
__EXCEPTIONSFLAG = /EHsc
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p = /D__WXUNIVERSAL__
!endif
!if "$(DEBUG_FLAG)" == "0"
__DEBUG_DEFINE_p = /DwxDEBUG_LEVEL=0
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__NDEBUG_DEFINE_p = /DNDEBUG
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
__NDEBUG_DEFINE_p = /DNDEBUG
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p = /DwxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p = /DwxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p = /DwxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p = /DwxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p = /D_UNICODE
!endif
!if "$(USE_CAIRO)" == "1"
____CAIRO_INCLUDEDIR_FILENAMES = /I$(CAIRO_ROOT)\include\cairo
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p = /DWXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_CORE_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_BASE_p = \
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
!if "$(MONOLITHIC)" == "1"
__WXLIB_MONO_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
!if "$(MONOLITHIC)" == "1" && "$(USE_STC)" == "1"
__LIB_SCINTILLA_IF_MONO_p = wxscintilla$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
!if "$(USE_CAIRO)" == "1"
__CAIRO_LIB_p = cairo.lib
!endif
!if "$(USE_CAIRO)" == "1"
____CAIRO_LIBDIR_FILENAMES = /LIBPATH:$(CAIRO_ROOT)\lib
!endif
all: $(OBJS)
$(OBJS):
-if not exist $(OBJS) mkdir $(OBJS)
### Targets: ###
all: $(OBJS)\test.exe $(__test_drawing___depname) $(__test_drawingplugin___depname) $(__test_gui___depname) data data-images fr ja
clean:
-if exist $(OBJS)\*.obj del $(OBJS)\*.obj
-if exist $(OBJS)\*.res del $(OBJS)\*.res
-if exist $(OBJS)\*.pch del $(OBJS)\*.pch
-if exist $(OBJS)\test.exe del $(OBJS)\test.exe
-if exist $(OBJS)\test.ilk del $(OBJS)\test.ilk
-if exist $(OBJS)\test.pdb del $(OBJS)\test.pdb
-if exist $(OBJS)\test_drawing.exe del $(OBJS)\test_drawing.exe
-if exist $(OBJS)\test_drawing.ilk del $(OBJS)\test_drawing.ilk
-if exist $(OBJS)\test_drawing.pdb del $(OBJS)\test_drawing.pdb
-if exist $(OBJS)\test_drawingplugin.dll del $(OBJS)\test_drawingplugin.dll
-if exist $(OBJS)\test_drawingplugin.ilk del $(OBJS)\test_drawingplugin.ilk
-if exist $(OBJS)\test_drawingplugin.pdb del $(OBJS)\test_drawingplugin.pdb
-if exist $(OBJS)\test_gui.exe del $(OBJS)\test_gui.exe
-if exist $(OBJS)\test_gui.ilk del $(OBJS)\test_gui.ilk
-if exist $(OBJS)\test_gui.pdb del $(OBJS)\test_gui.pdb
$(OBJS)\test.exe: $(OBJS)\test_dummy.obj $(TEST_OBJECTS)
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
link /NOLOGO /OUT:$@ $(__DEBUGINFO_4) /pdb:"$(OBJS)\test.pdb" $(__DEBUGINFO_2) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:CONSOLE $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<<
$(TEST_OBJECTS) $(__WXLIB_NET_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib wsock32.lib wininet.lib
<<
!if "$(USE_GUI)" == "1"
$(OBJS)\test_drawing.exe: $(OBJS)\test_drawing_dummy.obj $(TEST_DRAWING_OBJECTS)
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
link /NOLOGO /OUT:$@ $(__DEBUGINFO_4) /pdb:"$(OBJS)\test_drawing.pdb" $(__DEBUGINFO_19) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:CONSOLE $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<<
$(TEST_DRAWING_OBJECTS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib wsock32.lib wininet.lib
<<
!endif
!if "$(SHARED)" == "1" && "$(USE_GUI)" == "1"
$(OBJS)\test_drawingplugin.dll: $(TEST_DRAWINGPLUGIN_OBJECTS)
link /DLL /NOLOGO /OUT:$@ $(__DEBUGINFO_4) /pdb:"$(OBJS)\test_drawingplugin.pdb" $(__DEBUGINFO_37) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<<
$(TEST_DRAWINGPLUGIN_OBJECTS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib wsock32.lib wininet.lib
<<
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\test_gui.exe: $(OBJS)\test_gui_dummy.obj $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample.res
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
link /NOLOGO /OUT:$@ $(__DEBUGINFO_4) /pdb:"$(OBJS)\test_gui.pdb" $(__DEBUGINFO_51) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:CONSOLE $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<<
$(TEST_GUI_OBJECTS) $(TEST_GUI_RESOURCES) $(__WXLIB_WEBVIEW_p) $(__WXLIB_STC_p) $(__WXLIB_AUI_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib wsock32.lib wininet.lib
<<
!endif
data:
if not exist $(OBJS) mkdir $(OBJS)
for %f in (horse.ani horse.bmp horse.cur horse.gif horse.ico horse.jpg horse.pcx horse.png horse.pnm horse.tga horse.tif horse.xpm) do if not exist $(OBJS)\%f copy .\%f $(OBJS)
data-images:
if not exist image mkdir image
for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp horse_bicubic_50x50.png horse_bicubic_100x100.png horse_bicubic_150x150.png horse_bicubic_300x300.png horse_bilinear_50x50.png horse_bilinear_100x100.png horse_bilinear_150x150.png horse_bilinear_300x300.png horse_box_average_50x50.png horse_box_average_100x100.png horse_box_average_150x150.png horse_box_average_300x300.png cross_bicubic_256x256.png cross_bilinear_256x256.png cross_box_average_256x256.png cross_nearest_neighb_256x256.png) do if not exist image\%f copy .\image\%f image
fr:
if not exist $(OBJS)\intl\fr mkdir $(OBJS)\intl\fr
for %f in (internat.po internat.mo) do if not exist $(OBJS)\intl\fr\%f copy .\intl\fr\%f $(OBJS)\intl\fr
ja:
if not exist $(OBJS)\intl\ja mkdir $(OBJS)\intl\ja
for %f in (internat.po internat.mo) do if not exist $(OBJS)\intl\ja\%f copy .\intl\ja\%f $(OBJS)\intl\ja
$(OBJS)\test_dummy.obj: .\dummy.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) /Yctestprec.h .\dummy.cpp
$(OBJS)\test_test.obj: .\test.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\test.cpp
$(OBJS)\test_anytest.obj: .\any\anytest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\any\anytest.cpp
$(OBJS)\test_archivetest.obj: .\archive\archivetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\archive\archivetest.cpp
$(OBJS)\test_ziptest.obj: .\archive\ziptest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\archive\ziptest.cpp
$(OBJS)\test_tartest.obj: .\archive\tartest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\archive\tartest.cpp
$(OBJS)\test_arrays.obj: .\arrays\arrays.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\arrays\arrays.cpp
$(OBJS)\test_base64.obj: .\base64\base64.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\base64\base64.cpp
$(OBJS)\test_cmdlinetest.obj: .\cmdline\cmdlinetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\cmdline\cmdlinetest.cpp
$(OBJS)\test_fileconf.obj: .\config\fileconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\config\fileconf.cpp
$(OBJS)\test_regconf.obj: .\config\regconf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\config\regconf.cpp
$(OBJS)\test_datetimetest.obj: .\datetime\datetimetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\datetime\datetimetest.cpp
$(OBJS)\test_evthandler.obj: .\events\evthandler.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\events\evthandler.cpp
$(OBJS)\test_evtlooptest.obj: .\events\evtlooptest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\events\evtlooptest.cpp
$(OBJS)\test_evtsource.obj: .\events\evtsource.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\events\evtsource.cpp
$(OBJS)\test_stopwatch.obj: .\events\stopwatch.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\events\stopwatch.cpp
$(OBJS)\test_timertest.obj: .\events\timertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\events\timertest.cpp
$(OBJS)\test_exec.obj: .\exec\exec.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\exec\exec.cpp
$(OBJS)\test_dir.obj: .\file\dir.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\file\dir.cpp
$(OBJS)\test_filefn.obj: .\file\filefn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\file\filefn.cpp
$(OBJS)\test_filetest.obj: .\file\filetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\file\filetest.cpp
$(OBJS)\test_filekind.obj: .\filekind\filekind.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\filekind\filekind.cpp
$(OBJS)\test_filenametest.obj: .\filename\filenametest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\filename\filenametest.cpp
$(OBJS)\test_filesystest.obj: .\filesys\filesystest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\filesys\filesystest.cpp
$(OBJS)\test_fontmaptest.obj: .\fontmap\fontmaptest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\fontmap\fontmaptest.cpp
$(OBJS)\test_formatconvertertest.obj: .\formatconverter\formatconvertertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\formatconverter\formatconvertertest.cpp
$(OBJS)\test_fswatchertest.obj: .\fswatcher\fswatchertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\fswatcher\fswatchertest.cpp
$(OBJS)\test_hashes.obj: .\hashes\hashes.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\hashes\hashes.cpp
$(OBJS)\test_output.obj: .\interactive\output.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\interactive\output.cpp
$(OBJS)\test_input.obj: .\interactive\input.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\interactive\input.cpp
$(OBJS)\test_intltest.obj: .\intl\intltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\intl\intltest.cpp
$(OBJS)\test_lists.obj: .\lists\lists.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\lists\lists.cpp
$(OBJS)\test_logtest.obj: .\log\logtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\log\logtest.cpp
$(OBJS)\test_longlongtest.obj: .\longlong\longlongtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\longlong\longlongtest.cpp
$(OBJS)\test_convautotest.obj: .\mbconv\convautotest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\mbconv\convautotest.cpp
$(OBJS)\test_mbconvtest.obj: .\mbconv\mbconvtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\mbconv\mbconvtest.cpp
$(OBJS)\test_dynamiclib.obj: .\misc\dynamiclib.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\dynamiclib.cpp
$(OBJS)\test_environ.obj: .\misc\environ.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\environ.cpp
$(OBJS)\test_metatest.obj: .\misc\metatest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\metatest.cpp
$(OBJS)\test_misctests.obj: .\misc\misctests.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\misctests.cpp
$(OBJS)\test_module.obj: .\misc\module.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\module.cpp
$(OBJS)\test_pathlist.obj: .\misc\pathlist.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\pathlist.cpp
$(OBJS)\test_typeinfotest.obj: .\misc\typeinfotest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\misc\typeinfotest.cpp
$(OBJS)\test_ipc.obj: .\net\ipc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\net\ipc.cpp
$(OBJS)\test_socket.obj: .\net\socket.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\net\socket.cpp
$(OBJS)\test_regextest.obj: .\regex\regextest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\regex\regextest.cpp
$(OBJS)\test_wxregextest.obj: .\regex\wxregextest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\regex\wxregextest.cpp
$(OBJS)\test_scopeguardtest.obj: .\scopeguard\scopeguardtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\scopeguard\scopeguardtest.cpp
$(OBJS)\test_iostream.obj: .\strings\iostream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\iostream.cpp
$(OBJS)\test_numformatter.obj: .\strings\numformatter.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\numformatter.cpp
$(OBJS)\test_strings.obj: .\strings\strings.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\strings.cpp
$(OBJS)\test_stdstrings.obj: .\strings\stdstrings.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\stdstrings.cpp
$(OBJS)\test_tokenizer.obj: .\strings\tokenizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\tokenizer.cpp
$(OBJS)\test_unichar.obj: .\strings\unichar.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\unichar.cpp
$(OBJS)\test_unicode.obj: .\strings\unicode.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\unicode.cpp
$(OBJS)\test_vararg.obj: .\strings\vararg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\vararg.cpp
$(OBJS)\test_crt.obj: .\strings\crt.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\crt.cpp
$(OBJS)\test_vsnprintf.obj: .\strings\vsnprintf.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\vsnprintf.cpp
2017-02-23 14:01:48 -05:00
$(OBJS)\test_hexconv.obj: .\strings\hexconv.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\strings\hexconv.cpp
$(OBJS)\test_datastreamtest.obj: .\streams\datastreamtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\datastreamtest.cpp
$(OBJS)\test_ffilestream.obj: .\streams\ffilestream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\ffilestream.cpp
$(OBJS)\test_fileback.obj: .\streams\fileback.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\fileback.cpp
$(OBJS)\test_filestream.obj: .\streams\filestream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\filestream.cpp
$(OBJS)\test_iostreams.obj: .\streams\iostreams.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\iostreams.cpp
$(OBJS)\test_largefile.obj: .\streams\largefile.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\largefile.cpp
$(OBJS)\test_lzmastream.obj: .\streams\lzmastream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\lzmastream.cpp
$(OBJS)\test_memstream.obj: .\streams\memstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\memstream.cpp
$(OBJS)\test_socketstream.obj: .\streams\socketstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\socketstream.cpp
$(OBJS)\test_sstream.obj: .\streams\sstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\sstream.cpp
$(OBJS)\test_stdstream.obj: .\streams\stdstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\stdstream.cpp
$(OBJS)\test_tempfile.obj: .\streams\tempfile.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\tempfile.cpp
$(OBJS)\test_textstreamtest.obj: .\streams\textstreamtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\textstreamtest.cpp
$(OBJS)\test_zlibstream.obj: .\streams\zlibstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\streams\zlibstream.cpp
$(OBJS)\test_textfiletest.obj: .\textfile\textfiletest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\textfile\textfiletest.cpp
$(OBJS)\test_atomic.obj: .\thread\atomic.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\thread\atomic.cpp
$(OBJS)\test_misc.obj: .\thread\misc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\thread\misc.cpp
$(OBJS)\test_queue.obj: .\thread\queue.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\thread\queue.cpp
$(OBJS)\test_tls.obj: .\thread\tls.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\thread\tls.cpp
$(OBJS)\test_ftp.obj: .\uris\ftp.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\uris\ftp.cpp
$(OBJS)\test_uris.obj: .\uris\uris.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\uris\uris.cpp
$(OBJS)\test_url.obj: .\uris\url.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\uris\url.cpp
$(OBJS)\test_vectors.obj: .\vectors\vectors.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\vectors\vectors.cpp
$(OBJS)\test_evtconnection.obj: .\weakref\evtconnection.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\weakref\evtconnection.cpp
$(OBJS)\test_weakref.obj: .\weakref\weakref.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\weakref\weakref.cpp
$(OBJS)\test_xlocale.obj: .\xlocale\xlocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\xlocale\xlocale.cpp
$(OBJS)\test_xmltest.obj: .\xml\xmltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\xml\xmltest.cpp
$(OBJS)\test_drawing_dummy.obj: .\dummy.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) /Yctestprec.h .\dummy.cpp
$(OBJS)\test_drawing_test.obj: .\test.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) .\test.cpp
$(OBJS)\test_drawing_drawing.obj: .\drawing\drawing.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) .\drawing\drawing.cpp
$(OBJS)\test_drawing_plugindriver.obj: .\drawing\plugindriver.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) .\drawing\plugindriver.cpp
$(OBJS)\test_drawing_basictest.obj: .\drawing\basictest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) .\drawing\basictest.cpp
$(OBJS)\test_drawing_fonttest.obj: .\drawing\fonttest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWING_CXXFLAGS) .\drawing\fonttest.cpp
$(OBJS)\test_drawingplugin_pluginsample.obj: .\drawing\pluginsample.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_DRAWINGPLUGIN_CXXFLAGS) .\drawing\pluginsample.cpp
$(OBJS)\test_gui_dummy.obj: .\dummy.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) /Yctestprec.h .\dummy.cpp
$(OBJS)\test_gui_sample.res: .\..\samples\sample.rc
Replace CppUnit with Catch for unit tests Drop the legacy CppUnit testing framework used for the unit tests. Replacing it with Catch has the advantage of not requiring CppUnit libraries to be installed on the system in order to be able to run tests (Catch is header-only and a copy of it is now included in the main repository itself) and, in the future, of being able to write the tests in a much more natural way. For now, however, avoid changing the existing tests code as much as [reasonably] possible to avoid introducing bugs in them and provide the CppUnit compatibility macros in the new wx/catch_cppunit.h header which allow to preserve the 99% of the existing code unchanged. Some of the required changes are: - Decompose asserts using "a && b" conditions into multiple asserts checking "a" and "b" independently. This would have been better even with CppUnit (to know which part of condition exactly failed) and is required with Catch. - Use extra parentheses around such conditions when they can't be easily decomposed in the arrays test, due to the use of macros. This is not ideal from the point of view of messages given when the tests fail but will do for now. - Rewrite asserts using "a || b" as a combination of condition checks and assert macros. Again, this is better anyhow, and is required with Catch. Incidentally, this allowed to fix a bug in the "exec" unit test which didn't leave enough time for the new process to be launched before trying to kill it. - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros, our emulation of this macro can be used only once. - Provide string conversions using Catch-specific StringMaker for a couple of types. - Replace custom wxImage comparison with a Catch-specific matcher class. - Remove most of test running logic from test.cpp, in particular don't parse command line ourselves any longer but use Catch built-in command line parser. This is a source of a minor regression: previously, both "Foo" and "FooTestCase" could be used as the name of the test to run, but now only the latter is accepted.
2017-11-01 14:15:24 -04:00
rc /fo$@ /d WIN32 $(____DEBUGRUNTIME_52_p_1) /d _CRT_SECURE_NO_DEPRECATE=1 /d _CRT_NON_CONFORMING_SWPRINTFS=1 /d _SCL_SECURE_NO_WARNINGS=1 $(__NO_VC_CRTDBG_p_7) /d __WXMSW__ $(__WXUNIV_DEFINE_p_7) $(__DEBUG_DEFINE_p_7) $(__NDEBUG_DEFINE_p_7) $(__EXCEPTIONS_DEFINE_p_7) $(__RTTI_DEFINE_p_7) $(__THREAD_DEFINE_p_7) $(__UNICODE_DEFINE_p_7) /i $(SETUPHDIR) /i .\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_7_p) /i . $(__DLLFLAG_p_7) /i .\..\samples /d NOPCH /i .\..\3rdparty\catch\include /d _CONSOLE .\..\samples\sample.rc
$(OBJS)\test_gui_asserthelper.obj: .\asserthelper.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\asserthelper.cpp
$(OBJS)\test_gui_test.obj: .\test.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\test.cpp
$(OBJS)\test_gui_testableframe.obj: .\testableframe.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\testableframe.cpp
$(OBJS)\test_gui_rect.obj: .\geometry\rect.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\geometry\rect.cpp
$(OBJS)\test_gui_size.obj: .\geometry\size.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\geometry\size.cpp
$(OBJS)\test_gui_point.obj: .\geometry\point.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\geometry\point.cpp
$(OBJS)\test_gui_region.obj: .\geometry\region.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\geometry\region.cpp
$(OBJS)\test_gui_bitmap.obj: .\graphics\bitmap.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\bitmap.cpp
$(OBJS)\test_gui_colour.obj: .\graphics\colour.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\colour.cpp
$(OBJS)\test_gui_ellipsization.obj: .\graphics\ellipsization.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\ellipsization.cpp
$(OBJS)\test_gui_measuring.obj: .\graphics\measuring.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\measuring.cpp
$(OBJS)\test_gui_affinematrix.obj: .\graphics\affinematrix.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\affinematrix.cpp
$(OBJS)\test_gui_boundingbox.obj: .\graphics\boundingbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\boundingbox.cpp
$(OBJS)\test_gui_clippingbox.obj: .\graphics\clippingbox.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\clippingbox.cpp
$(OBJS)\test_gui_graphmatrix.obj: .\graphics\graphmatrix.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\graphmatrix.cpp
$(OBJS)\test_gui_graphpath.obj: .\graphics\graphpath.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\graphics\graphpath.cpp
$(OBJS)\test_gui_config.obj: .\config\config.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\config\config.cpp
$(OBJS)\test_gui_auitest.obj: .\controls\auitest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\auitest.cpp
$(OBJS)\test_gui_bitmapcomboboxtest.obj: .\controls\bitmapcomboboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\bitmapcomboboxtest.cpp
$(OBJS)\test_gui_bitmaptogglebuttontest.obj: .\controls\bitmaptogglebuttontest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\bitmaptogglebuttontest.cpp
$(OBJS)\test_gui_bookctrlbasetest.obj: .\controls\bookctrlbasetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\bookctrlbasetest.cpp
$(OBJS)\test_gui_buttontest.obj: .\controls\buttontest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\buttontest.cpp
$(OBJS)\test_gui_checkboxtest.obj: .\controls\checkboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\checkboxtest.cpp
$(OBJS)\test_gui_checklistboxtest.obj: .\controls\checklistboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\checklistboxtest.cpp
$(OBJS)\test_gui_choicebooktest.obj: .\controls\choicebooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\choicebooktest.cpp
$(OBJS)\test_gui_choicetest.obj: .\controls\choicetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\choicetest.cpp
$(OBJS)\test_gui_comboboxtest.obj: .\controls\comboboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\comboboxtest.cpp
$(OBJS)\test_gui_dataviewctrltest.obj: .\controls\dataviewctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\dataviewctrltest.cpp
$(OBJS)\test_gui_datepickerctrltest.obj: .\controls\datepickerctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\datepickerctrltest.cpp
$(OBJS)\test_gui_frametest.obj: .\controls\frametest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\frametest.cpp
$(OBJS)\test_gui_gaugetest.obj: .\controls\gaugetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\gaugetest.cpp
$(OBJS)\test_gui_gridtest.obj: .\controls\gridtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\gridtest.cpp
$(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp
$(OBJS)\test_gui_htmllboxtest.obj: .\controls\htmllboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\htmllboxtest.cpp
$(OBJS)\test_gui_hyperlinkctrltest.obj: .\controls\hyperlinkctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\hyperlinkctrltest.cpp
$(OBJS)\test_gui_itemcontainertest.obj: .\controls\itemcontainertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\itemcontainertest.cpp
$(OBJS)\test_gui_label.obj: .\controls\label.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\label.cpp
$(OBJS)\test_gui_listbasetest.obj: .\controls\listbasetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listbasetest.cpp
$(OBJS)\test_gui_listbooktest.obj: .\controls\listbooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listbooktest.cpp
$(OBJS)\test_gui_listboxtest.obj: .\controls\listboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listboxtest.cpp
$(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp
$(OBJS)\test_gui_listviewtest.obj: .\controls\listviewtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listviewtest.cpp
$(OBJS)\test_gui_markuptest.obj: .\controls\markuptest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\markuptest.cpp
$(OBJS)\test_gui_notebooktest.obj: .\controls\notebooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\notebooktest.cpp
$(OBJS)\test_gui_ownerdrawncomboboxtest.obj: .\controls\ownerdrawncomboboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\ownerdrawncomboboxtest.cpp
$(OBJS)\test_gui_pickerbasetest.obj: .\controls\pickerbasetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\pickerbasetest.cpp
$(OBJS)\test_gui_pickertest.obj: .\controls\pickertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\pickertest.cpp
$(OBJS)\test_gui_radioboxtest.obj: .\controls\radioboxtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\radioboxtest.cpp
$(OBJS)\test_gui_radiobuttontest.obj: .\controls\radiobuttontest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\radiobuttontest.cpp
$(OBJS)\test_gui_rearrangelisttest.obj: .\controls\rearrangelisttest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\rearrangelisttest.cpp
$(OBJS)\test_gui_richtextctrltest.obj: .\controls\richtextctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\richtextctrltest.cpp
$(OBJS)\test_gui_searchctrltest.obj: .\controls\searchctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\searchctrltest.cpp
$(OBJS)\test_gui_simplebooktest.obj: .\controls\simplebooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\simplebooktest.cpp
$(OBJS)\test_gui_slidertest.obj: .\controls\slidertest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\slidertest.cpp
$(OBJS)\test_gui_spinctrldbltest.obj: .\controls\spinctrldbltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\spinctrldbltest.cpp
$(OBJS)\test_gui_spinctrltest.obj: .\controls\spinctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\spinctrltest.cpp
$(OBJS)\test_gui_styledtextctrltest.obj: .\controls\styledtextctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\styledtextctrltest.cpp
$(OBJS)\test_gui_textctrltest.obj: .\controls\textctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\textctrltest.cpp
$(OBJS)\test_gui_textentrytest.obj: .\controls\textentrytest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\textentrytest.cpp
$(OBJS)\test_gui_togglebuttontest.obj: .\controls\togglebuttontest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\togglebuttontest.cpp
$(OBJS)\test_gui_toolbooktest.obj: .\controls\toolbooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\toolbooktest.cpp
$(OBJS)\test_gui_treebooktest.obj: .\controls\treebooktest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\treebooktest.cpp
$(OBJS)\test_gui_treectrltest.obj: .\controls\treectrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\treectrltest.cpp
$(OBJS)\test_gui_treelistctrltest.obj: .\controls\treelistctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\treelistctrltest.cpp
$(OBJS)\test_gui_virtlistctrltest.obj: .\controls\virtlistctrltest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\virtlistctrltest.cpp
$(OBJS)\test_gui_webtest.obj: .\controls\webtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\webtest.cpp
$(OBJS)\test_gui_windowtest.obj: .\controls\windowtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\windowtest.cpp
$(OBJS)\test_gui_dialogtest.obj: .\controls\dialogtest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\dialogtest.cpp
$(OBJS)\test_gui_clone.obj: .\events\clone.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\events\clone.cpp
$(OBJS)\test_gui_evtlooptest.obj: .\events\evtlooptest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\events\evtlooptest.cpp
$(OBJS)\test_gui_propagation.obj: .\events\propagation.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\events\propagation.cpp
$(OBJS)\test_gui_keyboard.obj: .\events\keyboard.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\events\keyboard.cpp
$(OBJS)\test_gui_exec.obj: .\exec\exec.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\exec\exec.cpp
$(OBJS)\test_gui_fonttest.obj: .\font\fonttest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\font\fonttest.cpp
$(OBJS)\test_gui_image.obj: .\image\image.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\image\image.cpp
$(OBJS)\test_gui_rawbmp.obj: .\image\rawbmp.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\image\rawbmp.cpp
$(OBJS)\test_gui_htmlparser.obj: .\html\htmlparser.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\html\htmlparser.cpp
$(OBJS)\test_gui_htmlwindow.obj: .\html\htmlwindow.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\html\htmlwindow.cpp
$(OBJS)\test_gui_htmprint.obj: .\html\htmprint.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\html\htmprint.cpp
$(OBJS)\test_gui_accelentry.obj: .\menu\accelentry.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\menu\accelentry.cpp
$(OBJS)\test_gui_menu.obj: .\menu\menu.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\menu\menu.cpp
$(OBJS)\test_gui_guifuncs.obj: .\misc\guifuncs.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\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_safearrayconverttest.obj: .\misc\safearrayconverttest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\misc\safearrayconverttest.cpp
$(OBJS)\test_gui_settings.obj: .\misc\settings.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\misc\settings.cpp
$(OBJS)\test_gui_socket.obj: .\net\socket.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp
$(OBJS)\test_gui_tlw.obj: .\persistence\tlw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\persistence\tlw.cpp
$(OBJS)\test_gui_dataview.obj: .\persistence\dataview.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\persistence\dataview.cpp
$(OBJS)\test_gui_rowheightcachetest.obj: .\rowheightcache\rowheightcachetest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\rowheightcache\rowheightcachetest.cpp
$(OBJS)\test_gui_boxsizer.obj: .\sizers\boxsizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\sizers\boxsizer.cpp
$(OBJS)\test_gui_gridsizer.obj: .\sizers\gridsizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\sizers\gridsizer.cpp
$(OBJS)\test_gui_wrapsizer.obj: .\sizers\wrapsizer.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\sizers\wrapsizer.cpp
$(OBJS)\test_gui_toplevel.obj: .\toplevel\toplevel.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\toplevel\toplevel.cpp
$(OBJS)\test_gui_valnum.obj: .\validators\valnum.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\validators\valnum.cpp
$(OBJS)\test_gui_valtext.obj: .\validators\valtext.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\validators\valtext.cpp
$(OBJS)\test_gui_clientsize.obj: .\window\clientsize.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\window\clientsize.cpp
$(OBJS)\test_gui_setsize.obj: .\window\setsize.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\window\setsize.cpp
$(OBJS)\test_gui_xrctest.obj: .\xml\xrctest.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\xml\xrctest.cpp