60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
/* Check cf5-opt.vim defs.
|
|
VIM: let g:lcppflags="-std=c++11 -O2"
|
|
VIM: let g:cppflags=g:boost.g:tbb.g:tbbmalloc.g:tbbmproxy
|
|
VIM: let g:ldlibpath=g:boostld.g:tbbld
|
|
VIM: let g:cf5output=0
|
|
*/
|
|
#include <iostream>
|
|
#include <exception>
|
|
#include <stdexcept>
|
|
|
|
|
|
void run( const char * cmd )
|
|
{
|
|
std::cout << cmd << " => ";
|
|
int ws = system( cmd );
|
|
|
|
if ( WIFEXITED(ws) )
|
|
std::cout << "return code " << WEXITSTATUS(ws) << std::endl;
|
|
else if ( WIFSIGNALED(ws) )
|
|
{
|
|
std::cout << "signal code " << WTERMSIG(ws);
|
|
#if 0
|
|
if ( WCOREDUMP(ws) )
|
|
std::cout << " and core dump generated." << std::endl;
|
|
else
|
|
std::cout << " and core dump is not generated." << std::endl;
|
|
#endif
|
|
std::cout << std::endl;
|
|
}
|
|
else if ( WIFSTOPPED(ws) )
|
|
{
|
|
std::cout << "stopped with signal " << WSTOPSIG(ws) << std::endl;
|
|
}
|
|
else
|
|
std::cout << "Child is not terminated normally." << std::endl;
|
|
}
|
|
|
|
int main ( int argc, char ** argv)
|
|
{
|
|
|
|
if ( argc != 1 )
|
|
{
|
|
std::string arg( argv[1] );
|
|
if ( arg == "throw" )
|
|
{
|
|
throw std::runtime_error( "runtime error" );
|
|
}
|
|
|
|
int r = atoi( arg.c_str() );
|
|
return (r) ? r : -1;
|
|
}
|
|
|
|
run("test_return_code.exe 1");
|
|
run("test_return_code.exe 2");
|
|
run("test_return_code.exe throw");
|
|
|
|
return 0;
|
|
}
|
|
|