xmltest: create dir resources/out to avoid crashes

Since many of the tests reopen files generated under resources/out
to reuse as input without performing error checking, explicity
create directory to mitigate segfaults.
This commit is contained in:
kbinny62 2017-06-23 18:15:25 +00:00
parent 369f306b37
commit bf29a15242
1 changed files with 14 additions and 1 deletions

View File

@ -5,16 +5,20 @@
#endif #endif
#include "tinyxml2.h" #include "tinyxml2.h"
#include <cerrno>
#include <cstdlib> #include <cstdlib>
#include <cstring> #include <cstring>
#include <ctime> #include <ctime>
#if defined( _MSC_VER ) #if defined( _MSC_VER ) || defined (WIN32)
#include <crtdbg.h> #include <crtdbg.h>
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <windows.h> #include <windows.h>
_CrtMemState startMemState; _CrtMemState startMemState;
_CrtMemState endMemState; _CrtMemState endMemState;
#else
#include <sys/stat.h>
#include <sys/types.h>
#endif #endif
using namespace tinyxml2; using namespace tinyxml2;
@ -334,6 +338,15 @@ int main( int argc, const char ** argv )
} }
fclose( fp ); fclose( fp );
#if defined WIN32
if ( !CreateDirectory( "resources/out", NULL ) && GetLastError() != ERROR_ALREADY_EXISTS ) {
#else
if ( mkdir( "resources/out", 0750 ) == -1 && errno != EEXIST ) {
#endif
printf( "Unable to create directory 'resources/out': %s\n", strerror( errno ) );
exit( 1 );
}
XMLTest( "Example-1", 0, example_1() ); XMLTest( "Example-1", 0, example_1() );
XMLTest( "Example-2", 0, example_2() ); XMLTest( "Example-2", 0, example_2() );
XMLTest( "Example-3", 0, example_3() ); XMLTest( "Example-3", 0, example_3() );