mirror of
https://github.com/upx/upx.git
synced 2025-08-07 22:46:51 +08:00
src: improve error message when using doctest options like '--dt-help'; add
doctest info to help.cpp
This commit is contained in:
@ -741,8 +741,8 @@ unsigned membuffer_get_size(MemBuffer &mb);
|
||||
|
||||
// util/dt_check.cpp
|
||||
void upx_compiler_sanity_check();
|
||||
bool upx_doctest_check();
|
||||
bool upx_doctest_check(int argc, char **argv);
|
||||
int upx_doctest_check();
|
||||
int upx_doctest_check(int argc, char **argv);
|
||||
|
||||
// main.cpp
|
||||
extern const char *progname;
|
||||
|
@ -407,6 +407,9 @@ void show_version(bool one_line)
|
||||
v = upx_lzma_version_string();
|
||||
if (v != nullptr && v[0])
|
||||
fprintf(fp, "LZMA SDK version %s\n", v);
|
||||
#endif
|
||||
#if !defined(DOCTEST_CONFIG_DISABLE)
|
||||
fprintf(fp, "doctest C++ testing framework version %s\n", DOCTEST_VERSION_STR);
|
||||
#endif
|
||||
fprintf(fp, "Copyright (C) 1996-2022 Markus Franz Xaver Johannes Oberhumer\n");
|
||||
fprintf(fp, "Copyright (C) 1996-2022 Laszlo Molnar\n");
|
||||
@ -417,6 +420,9 @@ void show_version(bool one_line)
|
||||
#endif
|
||||
#if (WITH_LZMA)
|
||||
fprintf(fp, "Copyright (C) 1999" "-2006 Igor Pavlov\n");
|
||||
#endif
|
||||
#if !defined(DOCTEST_CONFIG_DISABLE)
|
||||
fprintf(fp, "Copyright (C) 2016" "-2021 Viktor Kirilov\n");
|
||||
#endif
|
||||
fprintf(fp, "UPX comes with ABSOLUTELY NO WARRANTY; for details type '%s -L'.\n", progname);
|
||||
}
|
||||
|
@ -1159,8 +1159,12 @@ int upx_main(int argc, char *argv[]) {
|
||||
argv0 = argv[0];
|
||||
|
||||
upx_compiler_sanity_check();
|
||||
if (!upx_doctest_check(argc, argv)) {
|
||||
fprintf(stderr, "%s: internal error: doctest failed\n", argv0);
|
||||
int dt_res = upx_doctest_check(argc, argv);
|
||||
if (dt_res != 0) {
|
||||
if (dt_res == 2)
|
||||
fprintf(stderr, "%s: doctest requested program exit; Stop.\n", argv0);
|
||||
else
|
||||
fprintf(stderr, "%s: internal error: doctest failed\n", argv0);
|
||||
e_exit(EXIT_INIT);
|
||||
}
|
||||
|
||||
|
@ -31,14 +31,14 @@
|
||||
// upx_doctest_check()
|
||||
**************************************************************************/
|
||||
|
||||
bool upx_doctest_check(int argc, char **argv) {
|
||||
int upx_doctest_check(int argc, char **argv) {
|
||||
#if defined(DOCTEST_CONFIG_DISABLE)
|
||||
UNUSED(argc);
|
||||
UNUSED(argv);
|
||||
#else
|
||||
const char *e = getenv("UPX_DEBUG_DOCTEST_DISABLE");
|
||||
if (e && e[0] && strcmp(e, "0") != 0)
|
||||
return true;
|
||||
return 0;
|
||||
bool minimal = true; // only show failing tests
|
||||
bool duration = false; // show timings
|
||||
bool success = false; // show all tests
|
||||
@ -68,13 +68,15 @@ bool upx_doctest_check(int argc, char **argv) {
|
||||
if (argc > 0 && argv != nullptr)
|
||||
context.applyCommandLine(argc, argv);
|
||||
int r = context.run();
|
||||
if (context.shouldExit() || r != 0)
|
||||
return false;
|
||||
if (r != 0)
|
||||
return 1;
|
||||
if (context.shouldExit())
|
||||
return 2;
|
||||
#endif // DOCTEST_CONFIG_DISABLE
|
||||
return true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool upx_doctest_check() { return upx_doctest_check(0, nullptr); }
|
||||
int upx_doctest_check() { return upx_doctest_check(0, nullptr); }
|
||||
|
||||
/*************************************************************************
|
||||
// compile-time checks
|
||||
|
Reference in New Issue
Block a user