X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fmain.cc;h=b93f75708c1f7b12e6d45c430e0201af70420bee;hb=74d60e0cbacf53e996e9a72b644e30ed7efa3835;hp=80ffa769344d5ac89c5d72283c0c37cfa3a23b1b;hpb=9763b8e9b681d1d6713b95e4d7ce6ffeafeafca5;p=awesomized%2Flibmemcached diff --git a/libtest/main.cc b/libtest/main.cc index 80ffa769..b93f7570 100644 --- a/libtest/main.cc +++ b/libtest/main.cc @@ -2,7 +2,7 @@ * * Data Differential YATL (i.e. libtest) library * - * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * Copyright (C) 2012-2013 Data Differential, http://datadifferential.com/ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -43,6 +43,9 @@ #include #include #include +#ifdef HAVE_STRINGS_H +# include +#endif #include #include #include @@ -57,6 +60,12 @@ #pragma GCC diagnostic ignored "-Wold-style-cast" #endif +#if __cplusplus >= 201103L +# define UNIQUE_PTR std::unique_ptr +#else +# define UNIQUE_PTR std::auto_ptr +#endif + using namespace libtest; static void stats_print(libtest::Framework *frame) @@ -110,7 +119,7 @@ int main(int argc, char *argv[]) Valgrind does not currently work reliably, or sometimes at all, on OSX - Fri Jun 15 11:24:07 EDT 2012 */ -#if defined(TARGET_OS_OSX) && TARGET_OS_OSX +#if defined(__APPLE__) && __APPLE__ if (valgrind_is_caller()) { return EXIT_SKIP; @@ -165,7 +174,6 @@ int main(int argc, char *argv[]) Error << "unknown value passed to --repeat: `" << optarg << "`"; exit(EXIT_FAILURE); } - break; case OPT_LIBYATL_MATCH_COLLECTION: @@ -295,10 +303,9 @@ int main(int argc, char *argv[]) return EXIT_FAILURE; } - std::auto_ptr frame(new libtest::Framework(signal, binary_name, collection_to_run, wildcard)); + UNIQUE_PTR frame(new libtest::Framework(signal, binary_name, collection_to_run, wildcard)); // Run create(), bail on error. - try { switch (frame->create()) { @@ -306,17 +313,14 @@ int main(int argc, char *argv[]) break; case TEST_SKIPPED: - return EXIT_SKIP; + SKIP("SKIP was returned from framework create()"); + break; case TEST_FAILURE: std::cerr << "Could not call frame->create()" << std::endl; return EXIT_FAILURE; } } - catch (const libtest::__skipped& e) - { - return EXIT_SKIP; - } frame->exec(); @@ -383,9 +387,9 @@ int main(int argc, char *argv[]) std::cerr << "std::exception:" << e.what() << std::endl; exit_code= EXIT_FAILURE; } - catch (char const*) + catch (char const* s) { - std::cerr << "Exception:" << std::endl; + std::cerr << "Exception:" << s << std::endl; exit_code= EXIT_FAILURE; } catch (...)