diff --git a/include/wx/process.h b/include/wx/process.h
index 814f3e06a5..12d1dcce7c 100644
--- a/include/wx/process.h
+++ b/include/wx/process.h
@@ -104,9 +104,14 @@ public:
wxInputStream *errStream);
#endif // wxUSE_STREAMS
+ // implementation only - don't use!
+ // --------------------------------
+
+ // needs to be public since it needs to be used from wxExecute() global func
+ void SetPid(long pid) { m_pid = pid; }
+
protected:
void Init(wxEvtHandler *parent, int id, int flags);
- void SetPid(long pid) { m_pid = pid; }
int m_id;
long m_pid;
diff --git a/interface/wx/process.h b/interface/wx/process.h
index a0f1c11b84..4a5585f81a 100644
--- a/interface/wx/process.h
+++ b/interface/wx/process.h
@@ -51,11 +51,14 @@ enum wxKillError
notified about the process termination and also retrieve its exit status which is
unavailable from ::wxExecute() in the case of asynchronous execution.
- @note If the process termination notification is processed by the
- parent, it is responsible for deleting the wxProcess object which sent it.
- However, if it is not processed, the object will delete itself and so the
- library users should only delete those objects whose notifications have been
- processed (and call wxProcess::Detach for others).
+ @note
+ If the @c wxEVT_END_PROCESS event sent after termination is processed by the
+ parent, then it is responsible for deleting the wxProcess object which sent it.
+ However, if it is not processed, the object will delete itself and so the
+ library users should only delete those objects whose notifications have been
+ processed (and call wxProcess::Detach for others).
+ This also means that unless you're going to process the @c wxEVT_END_PROCESS event,
+ you must allocate the wxProcess class on the heap.
wxProcess also supports IO redirection of the child process. For this, you have
to call its Redirect() method before passing it to ::wxExecute().
@@ -119,15 +122,20 @@ public:
void CloseOutput();
/**
+ Detaches this event handler from the parent specified in the constructor
+ (see wxEvtHandler::Unlink() for a similar but not identic function).
+
Normally, a wxProcess object is deleted by its parent when it receives the
- notification about the process termination. However, it might happen that the
- parent object is destroyed before the external process is terminated (e.g. a
- window from which this external process was launched is closed by the user)
- and in this case it @b should not delete the wxProcess object, but
- @b should call Detach() instead. After the wxProcess object is detached
- from its parent, no notification events will be sent to the parent and the
- object will delete itself upon reception of the process termination
- notification.
+ notification about the process termination.
+
+ However, it might happen that the parent object is destroyed before the external
+ process is terminated (e.g. a window from which this external process was launched
+ is closed by the user) and in this case it @b should not delete the wxProcess
+ object, but @b should call Detach() instead.
+
+ After the wxProcess object is detached from its parent, no notification events
+ will be sent to the parent and the object will delete itself upon reception of
+ the process termination notification.
*/
void Detach();
@@ -161,7 +169,8 @@ public:
wxOutputStream* GetOutputStream() const;
/**
- Returns the process ID of the process launched by Open().
+ Returns the process ID of the process launched by Open() or set by
+ wxExecute() (if you passed this wxProcess as argument).
*/
long GetPid() const;
@@ -214,6 +223,8 @@ public:
/**
It is called when the process with the pid @a pid finishes.
It raises a wxWidgets event when it isn't overridden.
+
+ Note that this function won't be called if you Kill() the process.
@param pid
The pid of the process which has just terminated.
diff --git a/samples/console/console.cpp b/samples/console/console.cpp
index 3dc7031200..f27d836a45 100644
--- a/samples/console/console.cpp
+++ b/samples/console/console.cpp
@@ -110,7 +110,6 @@
#define TEST_DIR
#define TEST_DYNLIB
#define TEST_ENVIRON
- #define TEST_EXECUTE
#define TEST_FILE
#define TEST_FILECONF
#define TEST_FILENAME
@@ -575,93 +574,6 @@ static void TestEnvironment()
#endif // TEST_ENVIRON
-// ----------------------------------------------------------------------------
-// wxExecute
-// ----------------------------------------------------------------------------
-
-#ifdef TEST_EXECUTE
-
-#include "wx/utils.h"
-
-static void TestExecute()
-{
- wxPuts(_T("*** testing wxExecute ***"));
-
-#ifdef __UNIX__
- #define COMMAND "echo hi"
- #define ASYNC_COMMAND "xclock"
- #define SHELL_COMMAND "echo hi from shell"
- #define REDIRECT_COMMAND "cat -n Makefile"
-#elif defined(__WXMSW__)
- #define COMMAND "command.com /c echo hi"
- #define ASYNC_COMMAND "notepad"
- #define SHELL_COMMAND "echo hi"
- #define REDIRECT_COMMAND COMMAND
-#else
- #error "no command to exec"
-#endif // OS
-
- wxPrintf(_T("Testing wxShell: "));
- fflush(stdout);
- if ( wxShell(_T(SHELL_COMMAND)) )
- wxPuts(_T("Ok."));
- else
- wxPuts(_T("ERROR."));
-
- wxPrintf(_T("Testing wxExecute: "));
- fflush(stdout);
- if ( wxExecute(_T(COMMAND), wxEXEC_SYNC) == 0 )
- wxPuts(_T("Ok."));
- else
- wxPuts(_T("ERROR."));
-
- wxPrintf(_T("Testing async wxExecute: "));
- fflush(stdout);
- int pid = wxExecute(ASYNC_COMMAND);
- if ( pid != 0 )
- {
- wxPuts(_T("Ok (command launched)."));
- if ( wxKill(pid) == -1 )
- wxPuts("ERROR: failed to kill child process.");
- }
- else
- wxPuts(_T("ERROR."));
-
- wxPrintf(_T("Testing wxExecute with redirection:\n"));
- wxArrayString output;
- if ( wxExecute(_T(REDIRECT_COMMAND), output) != 0 )
- {
- wxPuts(_T("ERROR."));
- }
- else
- {
- // don't show too much output, MAX_LINES is enough
- static const unsigned MAX_LINES = 20;
-
- const unsigned count = output.size();
- for ( unsigned n = 0;
- n < (count > MAX_LINES ? MAX_LINES/2 : count);
- n++ )
- {
- wxPrintf("%04u:\t%s\n", n + 1, output[n]);
- }
-
- if ( count > MAX_LINES )
- {
- wxPrintf("... skipping %u lines...\n", count - MAX_LINES);
-
- for ( unsigned n = count - MAX_LINES/2; n < count; n++ )
- {
- wxPrintf("%04u:\t%s\n", n + 1, output[n]);
- }
- }
-
- wxPuts(_T("Ok."));
- }
-}
-
-#endif // TEST_EXECUTE
-
// ----------------------------------------------------------------------------
// file
// ----------------------------------------------------------------------------
@@ -4340,10 +4252,6 @@ int main(int argc, char **argv)
TestEnvironment();
#endif // TEST_ENVIRON
-#ifdef TEST_EXECUTE
- TestExecute();
-#endif // TEST_EXECUTE
-
#ifdef TEST_FILECONF
TestFileConfRead();
#endif // TEST_FILECONF
diff --git a/src/common/process.cpp b/src/common/process.cpp
index 9bdda8b638..26e14c560e 100644
--- a/src/common/process.cpp
+++ b/src/common/process.cpp
@@ -102,7 +102,13 @@ void wxProcess::OnTerminate(int pid, int status)
void wxProcess::Detach()
{
- SetNextHandler(NULL);
+ // we just detach from the next handler of the chain (i.e. our "parent" -- see ctor)
+ // not also from the previous handler like wxEvtHandler::Unlink() would do:
+
+ if (m_nextHandler)
+ m_nextHandler->SetPreviousHandler(m_previousHandler);
+
+ m_nextHandler = NULL;
}
// ----------------------------------------------------------------------------
diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp
index 0269180d9a..aaf6176b1c 100644
--- a/src/msw/utilsexc.cpp
+++ b/src/msw/utilsexc.cpp
@@ -899,6 +899,9 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
{
// may be NULL or not
data->handler = handler;
+
+ if (handler)
+ handler->SetPid(pi.dwProcessId);
}
DWORD tid;
diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp
index f4918245fb..1c92ba8982 100644
--- a/src/unix/utilsunx.cpp
+++ b/src/unix/utilsunx.cpp
@@ -601,6 +601,8 @@ long wxExecute(char **argv, int flags, wxProcess *process)
{
// save it for WaitForChild() use
execData.pid = pid;
+ if (execData.process)
+ execData.process->SetPid(pid); // and also in the wxProcess
// prepare for IO redirection
diff --git a/tests/Makefile.in b/tests/Makefile.in
index dc430291e1..829f622e99 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@
@@ -63,6 +64,7 @@ TEST_OBJECTS = \
test_datetimetest.o \
test_evthandler.o \
test_timertest.o \
+ test_exec.o \
test_filekind.o \
test_filenametest.o \
test_filesystest.o \
@@ -171,7 +173,7 @@ 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
@@ -204,7 +206,7 @@ PRINTFBENCH_ODEP = $(_____pch_testprec_printfbench_testprec_h_gch___depname)
@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
@@ -236,7 +238,8 @@ 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
@@ -389,6 +392,9 @@ test_evthandler.o: $(srcdir)/events/evthandler.cpp $(TEST_ODEP)
test_timertest.o: $(srcdir)/events/timertest.cpp $(TEST_ODEP)
$(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/events/timertest.cpp
+test_exec.o: $(srcdir)/exec/exec.cpp $(TEST_ODEP)
+ $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/exec/exec.cpp
+
test_filekind.o: $(srcdir)/filekind/filekind.cpp $(TEST_ODEP)
$(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/filekind/filekind.cpp
diff --git a/tests/exec/exec.cpp b/tests/exec/exec.cpp
new file mode 100644
index 0000000000..566ca72044
--- /dev/null
+++ b/tests/exec/exec.cpp
@@ -0,0 +1,115 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: tests/exec/exec.cpp
+// Purpose: test wxExecute()
+// Author: Francesco Montorsi
+// (based on console sample TestExecute() function)
+// Created: 2009-01-10
+// RCS-ID: $Id$
+// Copyright: (c) 2009 Francesco Montorsi
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "testprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include "wx/utils.h"
+#include "wx/process.h"
+#include "wx/sstream.h"
+
+#ifdef __UNIX__
+ #define COMMAND "echo hi"
+ #define ASYNC_COMMAND "xclock"
+ #define SHELL_COMMAND "echo hi from shell"
+ #define REDIRECT_COMMAND "cat -n Makefile"
+#elif defined(__WXMSW__)
+ #define COMMAND "cmd.exe /c \"echo hi\""
+ #define ASYNC_COMMAND "notepad"
+ #define SHELL_COMMAND "echo hi"
+ #define REDIRECT_COMMAND COMMAND
+#else
+ #error "no command to exec"
+#endif // OS
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class ExecTestCase : public CppUnit::TestCase
+{
+public:
+ ExecTestCase() { }
+
+private:
+ CPPUNIT_TEST_SUITE( ExecTestCase );
+ CPPUNIT_TEST( TestShell );
+ CPPUNIT_TEST( TestExecute );
+ CPPUNIT_TEST( TestProcess );
+ CPPUNIT_TEST_SUITE_END();
+
+ void TestShell();
+ void TestExecute();
+ void TestProcess();
+
+ DECLARE_NO_COPY_CLASS(ExecTestCase)
+};
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( ExecTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ExecTestCase, "ExecTestCase" );
+
+
+void ExecTestCase::TestShell()
+{
+ CPPUNIT_ASSERT( wxShell(SHELL_COMMAND) );
+}
+
+void ExecTestCase::TestExecute()
+{
+ // test sync exec:
+ CPPUNIT_ASSERT( wxExecute(COMMAND, wxEXEC_SYNC) == 0 );
+
+ // test asynch exec
+ long pid = wxExecute(ASYNC_COMMAND, wxEXEC_ASYNC);
+ CPPUNIT_ASSERT( pid != 0 );
+ CPPUNIT_ASSERT( wxKill(pid) == 0 );
+
+ // test running COMMAND again, but this time with redirection:
+ wxArrayString stdout;
+ CPPUNIT_ASSERT( wxExecute(COMMAND, stdout, wxEXEC_SYNC) == 0 );
+ CPPUNIT_ASSERT( stdout[0] == "hi" );
+}
+
+void ExecTestCase::TestProcess()
+{
+ // test wxExecute with wxProcess
+ wxProcess *proc = new wxProcess;
+ long pid = wxExecute(ASYNC_COMMAND, wxEXEC_ASYNC, proc);
+ CPPUNIT_ASSERT( proc->GetPid() == pid && pid != 0 );
+
+ // we're not going to process the wxEVT_END_PROCESS event,
+ // so the proc instance will auto-delete itself after we kill
+ // the asynch process:
+ CPPUNIT_ASSERT( wxKill(pid) == 0 );
+
+
+ // test wxExecute with wxProcess and REDIRECTION
+ wxProcess *proc2 = new wxProcess;
+ proc2->Redirect();
+ CPPUNIT_ASSERT( wxExecute(COMMAND, wxEXEC_SYNC, proc2) == 0 );
+
+ wxStringOutputStream stdout;
+ CPPUNIT_ASSERT( proc2->GetInputStream() );
+ CPPUNIT_ASSERT( proc2->GetInputStream()->Read(stdout).GetLastError() == wxSTREAM_EOF );
+
+ wxString str(stdout.GetString());
+ CPPUNIT_ASSERT_EQUAL( "hi", str.Trim() );
+}
+
diff --git a/tests/makefile.bcc b/tests/makefile.bcc
index 838c2bbd9b..0680d67ac9 100644
--- a/tests/makefile.bcc
+++ b/tests/makefile.bcc
@@ -48,6 +48,7 @@ TEST_OBJECTS = \
$(OBJS)\test_datetimetest.obj \
$(OBJS)\test_evthandler.obj \
$(OBJS)\test_timertest.obj \
+ $(OBJS)\test_exec.obj \
$(OBJS)\test_filekind.obj \
$(OBJS)\test_filenametest.obj \
$(OBJS)\test_filesystest.obj \
@@ -430,6 +431,9 @@ $(OBJS)\test_evthandler.obj: .\events\evthandler.cpp
$(OBJS)\test_timertest.obj: .\events\timertest.cpp
$(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\events\timertest.cpp
+$(OBJS)\test_exec.obj: .\exec\exec.cpp
+ $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\exec\exec.cpp
+
$(OBJS)\test_filekind.obj: .\filekind\filekind.cpp
$(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\filekind\filekind.cpp
diff --git a/tests/makefile.gcc b/tests/makefile.gcc
index 82e1597bf3..5b72865aa9 100644
--- a/tests/makefile.gcc
+++ b/tests/makefile.gcc
@@ -40,6 +40,7 @@ TEST_OBJECTS = \
$(OBJS)\test_datetimetest.o \
$(OBJS)\test_evthandler.o \
$(OBJS)\test_timertest.o \
+ $(OBJS)\test_exec.o \
$(OBJS)\test_filekind.o \
$(OBJS)\test_filenametest.o \
$(OBJS)\test_filesystest.o \
@@ -410,6 +411,9 @@ $(OBJS)\test_evthandler.o: ./events/evthandler.cpp
$(OBJS)\test_timertest.o: ./events/timertest.cpp
$(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<
+$(OBJS)\test_exec.o: ./exec/exec.cpp
+ $(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<
+
$(OBJS)\test_filekind.o: ./filekind/filekind.cpp
$(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<
diff --git a/tests/makefile.vc b/tests/makefile.vc
index 1e12ccadba..108eb43853 100644
--- a/tests/makefile.vc
+++ b/tests/makefile.vc
@@ -41,6 +41,7 @@ TEST_OBJECTS = \
$(OBJS)\test_datetimetest.obj \
$(OBJS)\test_evthandler.obj \
$(OBJS)\test_timertest.obj \
+ $(OBJS)\test_exec.obj \
$(OBJS)\test_filekind.obj \
$(OBJS)\test_filenametest.obj \
$(OBJS)\test_filesystest.obj \
@@ -515,6 +516,9 @@ $(OBJS)\test_evthandler.obj: .\events\evthandler.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_filekind.obj: .\filekind\filekind.cpp
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\filekind\filekind.cpp
diff --git a/tests/makefile.wat b/tests/makefile.wat
index 2272436a31..be9cb430d5 100644
--- a/tests/makefile.wat
+++ b/tests/makefile.wat
@@ -18,7 +18,11 @@
! loaddll wpp wppdi86
! loaddll wppaxp wppdaxp
! loaddll wpp386 wppd386
+! if $(__VERSION__) >= 1280
+! loaddll wlink wlinkd
+! else
! loaddll wlink wlink
+! endif
! loaddll wlib wlibd
!endif
@@ -275,6 +279,7 @@ TEST_OBJECTS = &
$(OBJS)\test_datetimetest.obj &
$(OBJS)\test_evthandler.obj &
$(OBJS)\test_timertest.obj &
+ $(OBJS)\test_exec.obj &
$(OBJS)\test_filekind.obj &
$(OBJS)\test_filenametest.obj &
$(OBJS)\test_filesystest.obj &
@@ -467,6 +472,9 @@ $(OBJS)\test_evthandler.obj : .AUTODEPEND .\events\evthandler.cpp
$(OBJS)\test_timertest.obj : .AUTODEPEND .\events\timertest.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<
+$(OBJS)\test_exec.obj : .AUTODEPEND .\exec\exec.cpp
+ $(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<
+
$(OBJS)\test_filekind.obj : .AUTODEPEND .\filekind\filekind.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<
diff --git a/tests/strings/vsnprintf.cpp b/tests/strings/vsnprintf.cpp
index bc51eb14d1..1aaa61a440 100644
--- a/tests/strings/vsnprintf.cpp
+++ b/tests/strings/vsnprintf.cpp
@@ -175,6 +175,8 @@ private:
size_t max, const wxChar *format, ...);
void Miscellaneous();
+ virtual void setUp();
+
DECLARE_NO_COPY_CLASS(VsnprintfTestCase)
};
@@ -188,7 +190,7 @@ VsnprintfTestCase::VsnprintfTestCase()
{
// this call is required to avoid check failures when running on machines
// with a locale where the decimal point is not '.'
- wxSetlocale(LC_NUMERIC, "C");
+ wxSetlocale(LC_ALL, "C");
}
void VsnprintfTestCase::C()
diff --git a/tests/test.bkl b/tests/test.bkl
index f2a24aa321..8aa99d7080 100644
--- a/tests/test.bkl
+++ b/tests/test.bkl
@@ -39,6 +39,7 @@
datetime/datetimetest.cpp
events/evthandler.cpp
events/timertest.cpp
+ exec/exec.cpp
filekind/filekind.cpp
filename/filenametest.cpp
filesys/filesystest.cpp
diff --git a/tests/test_test.dsp b/tests/test_test.dsp
index 1b620a7a24..32d96d8be9 100644
--- a/tests/test_test.dsp
+++ b/tests/test_test.dsp
@@ -289,6 +289,10 @@ SOURCE=.\events\evthandler.cpp
# End Source File
# Begin Source File
+SOURCE=.\exec\exec.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\streams\ffilestream.cpp
# End Source File
# Begin Source File
diff --git a/tests/test_vc7_printfbench.vcproj b/tests/test_vc7_printfbench.vcproj
index ca4442cb31..e924b9de65 100644
--- a/tests/test_vc7_printfbench.vcproj
+++ b/tests/test_vc7_printfbench.vcproj
@@ -17,73 +17,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;."/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;."/>
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;__WXMSW__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswu;.\..\include;."/>
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXUNIVERSAL__;__WXDEBUG__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswunivud;.\..\include;."/>
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswunivud;.\..\include;."/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="Debug|Win32">
@@ -594,7 +572,37 @@
UsePrecompiledHeader="1"/>
+ Name="Universal Debug|Win32">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test_vc7_test.vcproj b/tests/test_vc7_test.vcproj
index aa0bfc57a5..e9b3781bd2 100644
--- a/tests/test_vc7_test.vcproj
+++ b/tests/test_vc7_test.vcproj
@@ -17,73 +17,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;."/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;."/>
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;__WXMSW__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswu;.\..\include;."/>
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXUNIVERSAL__;__WXDEBUG__;_UNICODE;_CONSOLE;wxUSE_GUI=0"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswunivud;.\..\include;."/>
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswunivud;.\..\include;."/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="Debug|Win32">
@@ -624,7 +602,37 @@
UsePrecompiledHeader="1"/>
+ Name="Universal Debug|Win32">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -636,6 +644,9 @@
+
+
diff --git a/tests/test_vc7_test_gui.vcproj b/tests/test_vc7_test_gui.vcproj
index 234fd2736f..b3703f41eb 100644
--- a/tests/test_vc7_test_gui.vcproj
+++ b/tests/test_vc7_test_gui.vcproj
@@ -17,73 +17,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_UNICODE;NOPCH;_CONSOLE"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;.;.\..\samples"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;.;.\..\samples"/>
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;__WXMSW__;_UNICODE;NOPCH;_CONSOLE"
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswu;.\..\include;.;.\..\samples"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_UNICODE;WXUSINGDLL;NOPCH;_CONSOLE"
+ AdditionalIncludeDirectories=".\..\lib\vc_dll\mswud;.\..\include;.;.\..\samples"/>
+ AdditionalIncludeDirectories=".\..\lib\vc_dll\mswud;.\..\include;.;.\..\samples"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Name="Debug|Win32">
@@ -606,7 +584,37 @@
UsePrecompiledHeader="1"/>
+ Name="Universal Debug|Win32">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -672,7 +680,7 @@
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+ RelativePath="..\samples\sample.rc">
diff --git a/tests/test_vc8_printfbench.vcproj b/tests/test_vc8_printfbench.vcproj
index c74a8c5852..e180c7f2c1 100644
--- a/tests/test_vc8_printfbench.vcproj
+++ b/tests/test_vc8_printfbench.vcproj
@@ -22,105 +22,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -491,106 +105,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -785,7 +302,498 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -491,106 +105,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -785,7 +302,498 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test_vc8_test_gui.vcproj b/tests/test_vc8_test_gui.vcproj
index c6ae43619f..300bceedcc 100644
--- a/tests/test_vc8_test_gui.vcproj
+++ b/tests/test_vc8_test_gui.vcproj
@@ -22,105 +22,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -491,106 +105,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -785,7 +302,498 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test_vc9.sln b/tests/test_vc9.sln
index 9e08286566..d4163d3616 100644
--- a/tests/test_vc9.sln
+++ b/tests/test_vc9.sln
@@ -8,64 +8,64 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "printfbench", "test_vc9_pri
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- DLL Universal Release|Win32 = DLL Universal Release|Win32
- DLL Universal Debug|Win32 = DLL Universal Debug|Win32
- DLL Release|Win32 = DLL Release|Win32
- DLL Debug|Win32 = DLL Debug|Win32
- Universal Release|Win32 = Universal Release|Win32
- Universal Debug|Win32 = Universal Debug|Win32
- Release|Win32 = Release|Win32
Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ Universal Debug|Win32 = Universal Debug|Win32
+ Universal Release|Win32 = Universal Release|Win32
+ DLL Debug|Win32 = DLL Debug|Win32
+ DLL Release|Win32 = DLL Release|Win32
+ DLL Universal Debug|Win32 = DLL Universal Debug|Win32
+ DLL Universal Release|Win32 = DLL Universal Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Release|Win32.Build.0 = Universal Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
- {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.ActiveCfg = Debug|Win32
{2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Debug|Win32.Build.0 = Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Release|Win32.Build.0 = Universal Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Release|Win32.ActiveCfg = Release|Win32
- {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Release|Win32.Build.0 = Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.ActiveCfg = Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Release|Win32.Build.0 = Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.Universal Release|Win32.Build.0 = Universal Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Release|Win32.Build.0 = DLL Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
+ {2F45723C-ED6B-5F60-8BFF-6B3609464A7B}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
{9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Debug|Win32.ActiveCfg = Debug|Win32
{9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Debug|Win32.Build.0 = Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Release|Win32.Build.0 = Universal Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Release|Win32.ActiveCfg = Release|Win32
- {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Release|Win32.Build.0 = Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Release|Win32.ActiveCfg = Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Release|Win32.Build.0 = Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.Universal Release|Win32.Build.0 = Universal Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Release|Win32.Build.0 = DLL Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
+ {9BB295D9-A6AA-510D-AA0D-9375B5D91025}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
{568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Debug|Win32.ActiveCfg = Debug|Win32
{568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Debug|Win32.Build.0 = Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Release|Win32.ActiveCfg = Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Release|Win32.Build.0 = Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Debug|Win32.Build.0 = Universal Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Release|Win32.ActiveCfg = Universal Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.Universal Release|Win32.Build.0 = Universal Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Release|Win32.Build.0 = DLL Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32
+ {568BD6DD-9BBE-583D-9BCE-08F5755A6015}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/tests/test_vc9_printfbench.vcproj b/tests/test_vc9_printfbench.vcproj
index f076ccfca9..292019552d 100644
--- a/tests/test_vc9_printfbench.vcproj
+++ b/tests/test_vc9_printfbench.vcproj
@@ -22,102 +22,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -477,102 +104,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -760,7 +294,481 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -477,102 +104,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -760,7 +294,481 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test_vc9_test_gui.vcproj b/tests/test_vc9_test_gui.vcproj
index cc86f242f5..06a4880e8b 100644
--- a/tests/test_vc9_test_gui.vcproj
+++ b/tests/test_vc9_test_gui.vcproj
@@ -22,102 +22,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -477,102 +104,7 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -760,7 +294,481 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+