Added sane option defaults when running valgrind
This commit is contained in:
parent
8db5def5e3
commit
2b9f14041c
6 changed files with 6677 additions and 12 deletions
|
@ -20,6 +20,7 @@ include_directories(
|
|||
/usr/local/include/
|
||||
dependencies/libcsptr/include/
|
||||
dependencies/dyncall/dyncall/
|
||||
dependencies/valgrind/include/
|
||||
)
|
||||
|
||||
if (MSVC)
|
||||
|
|
6587
dependencies/valgrind/include/valgrind/valgrind.h
vendored
Normal file
6587
dependencies/valgrind/include/valgrind/valgrind.h
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,4 @@
|
|||
# List of source files which contain translatable strings.
|
||||
src/log/normal.c
|
||||
src/string/i18n.c
|
||||
src/core/runner.c
|
||||
|
|
24
po/fr.po
24
po/fr.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: criterion 2.0.0\n"
|
||||
"Report-Msgid-Bugs-To: franklinmathieu+criterion@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-09-16 21:18+0200\n"
|
||||
"POT-Creation-Date: 2015-09-26 00:02+0200\n"
|
||||
"PO-Revision-Date: 2015-04-03 17:58+0200\n"
|
||||
"Last-Translator: <franklinmathieu@gmail.com>\n"
|
||||
"Language-Team: French\n"
|
||||
|
@ -174,3 +174,25 @@ msgstr "L'instruction `%1$s` a levé une instance de l'exception `%2$s`."
|
|||
#, c-format
|
||||
msgid "The statement `%1$s` did not throw an instance of the `%2$s` exception."
|
||||
msgstr "L'instruction `%1$s` n'a pas levé d'instance de l'exception `%2$s`."
|
||||
|
||||
#: src/core/runner.c:54
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%1$sWarning! Criterion has detected that it is running under valgrind, but "
|
||||
"the no_early_exit option is explicitely disabled. Reports will not be "
|
||||
"accurate!%2$s\n"
|
||||
msgstr ""
|
||||
"%1$sAttention! Criterion a détecté qu'il a été lancé avec valgrind, mais "
|
||||
"l'option no_early_exit est explicitement désactivée. Les rapports d'erreur "
|
||||
"ne seront pas précis!%2$s\n"
|
||||
|
||||
#: src/core/runner.c:58
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%1$sWarning! Criterion has detected that it is running under valgrind, but "
|
||||
"the number of jobs have been explicitely set. Reports might appear confusing!"
|
||||
"%2$s\n"
|
||||
msgstr ""
|
||||
"%1$sAttention! Criterion a détecté qu'il a été lancé avec valgrind, mais "
|
||||
"le nombre de tâches est explicitement défini. Les rapports d'erreur "
|
||||
"risquent d'être déroutants!%2$s\n"
|
||||
|
|
|
@ -21,9 +21,11 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#define CRITERION_LOGGING_COLORS
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <csptr/smalloc.h>
|
||||
#include <valgrind/valgrind.h>
|
||||
#include "criterion/criterion.h"
|
||||
#include "criterion/options.h"
|
||||
#include "criterion/ordered-set.h"
|
||||
|
@ -46,6 +48,27 @@
|
|||
#include "string/extmatch.h"
|
||||
#endif
|
||||
|
||||
typedef const char *const msg_t;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
static msg_t msg_valgrind_early_exit = N_("%1$sWarning! Criterion has detected "
|
||||
"that it is running under valgrind, but the no_early_exit option is "
|
||||
"explicitely disabled. Reports will not be accurate!%2$s\n");
|
||||
|
||||
static msg_t msg_valgrind_jobs = N_("%1$sWarning! Criterion has detected "
|
||||
"that it is running under valgrind, but the number of jobs have been "
|
||||
"explicitely set. Reports might appear confusing!%2$s\n");
|
||||
#else
|
||||
static msg_t msg_valgrind_early_exit = "%sWarning! Criterion has detected "
|
||||
"that it is running under valgrind, but the no_early_exit option is "
|
||||
"explicitely disabled. Reports will not be accurate!%s\n";
|
||||
|
||||
static msg_t msg_valgrind_jobs = "%sWarning! Criterion has detected "
|
||||
"that it is running under valgrind, but the number of jobs have been "
|
||||
"explicitely set. Reports might appear confusing!%s\n";
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
struct criterion_test *SECTION_START_(cr_tst);
|
||||
struct criterion_suite *SECTION_START_(cr_sts);
|
||||
|
@ -312,6 +335,11 @@ void disable_unmatching(struct criterion_test_set *set) {
|
|||
struct criterion_test_set *criterion_initialize(void) {
|
||||
init_i18n();
|
||||
|
||||
if (RUNNING_ON_VALGRIND) {
|
||||
criterion_options.no_early_exit = 1;
|
||||
criterion_options.jobs = 1;
|
||||
}
|
||||
|
||||
if (resume_child()) // (windows only) resume from the fork
|
||||
exit(0);
|
||||
|
||||
|
@ -386,6 +414,15 @@ static int criterion_run_all_tests_impl(struct criterion_test_set *set) {
|
|||
report(PRE_ALL, set);
|
||||
log(pre_all, set);
|
||||
|
||||
if (RUNNING_ON_VALGRIND) {
|
||||
if (!criterion_options.no_early_exit)
|
||||
criterion_pimportant(CRITERION_PREFIX_DASHES,
|
||||
_(msg_valgrind_early_exit), FG_BOLD, RESET);
|
||||
if (criterion_options.jobs != 1)
|
||||
criterion_pimportant(CRITERION_PREFIX_DASHES,
|
||||
_(msg_valgrind_jobs), FG_BOLD, RESET);
|
||||
}
|
||||
|
||||
fflush(NULL); // flush everything before forking
|
||||
|
||||
g_worker_pipe = stdpipe();
|
||||
|
|
|
@ -144,24 +144,41 @@ int criterion_handle_args(int argc, char *argv[], bool handle_unknown_arg) {
|
|||
{0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
bool use_ascii = !strcmp("1", DEF(getenv("CRITERION_USE_ASCII"), "0"))
|
||||
|| !strcmp("dumb", DEF(getenv("TERM"), "dumb"));
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
#if ENABLE_NLS
|
||||
textdomain (PACKAGE "-test");
|
||||
#endif
|
||||
|
||||
char *env_always_succeed = getenv("CRITERION_ALWAYS_SUCCEED");
|
||||
char *env_no_early_exit = getenv("CRITERION_NO_EARLY_EXIT");
|
||||
char *env_fail_fast = getenv("CRITERION_FAIL_FAST");
|
||||
char *env_use_ascii = getenv("CRITERION_USE_ASCII");
|
||||
char *env_jobs = getenv("CRITERION_JOBS");
|
||||
char *env_logging_threshold = getenv("CRITERION_VERBOSITY_LEVEL");
|
||||
char *env_short_filename = getenv("CRITERION_SHORT_FILENAME");
|
||||
|
||||
bool is_term_dumb = !strcmp("dumb", DEF(getenv("TERM"), "dumb"));
|
||||
|
||||
struct criterion_options *opt = &criterion_options;
|
||||
opt->always_succeed = !strcmp("1", DEF(getenv("CRITERION_ALWAYS_SUCCEED"), "0"));
|
||||
opt->no_early_exit = !strcmp("1", DEF(getenv("CRITERION_NO_EARLY_EXIT") , "0"));
|
||||
opt->fail_fast = !strcmp("1", DEF(getenv("CRITERION_FAIL_FAST") , "0"));
|
||||
opt->use_ascii = use_ascii;
|
||||
opt->jobs = atou(DEF(getenv("CRITERION_JOBS"), "0"));
|
||||
opt->logging_threshold = atou(DEF(getenv("CRITERION_VERBOSITY_LEVEL"), "2"));
|
||||
opt->short_filename = !strcmp("1", DEF(getenv("CRITERION_SHORT_FILENAME"), "0"));
|
||||
if (env_always_succeed)
|
||||
opt->always_succeed = !strcmp("1", env_always_succeed);
|
||||
if (env_no_early_exit)
|
||||
opt->no_early_exit = !strcmp("1", env_no_early_exit);
|
||||
if (env_fail_fast)
|
||||
opt->fail_fast = !strcmp("1", env_fail_fast);
|
||||
if (env_use_ascii)
|
||||
opt->use_ascii = !strcmp("1", env_use_ascii) || is_term_dumb;
|
||||
if (env_jobs)
|
||||
opt->jobs = atou(env_jobs);
|
||||
if (env_logging_threshold)
|
||||
opt->logging_threshold = atou(env_logging_threshold);
|
||||
if (env_short_filename)
|
||||
opt->short_filename = !strcmp("1", env_short_filename);
|
||||
|
||||
#ifdef HAVE_PCRE
|
||||
opt->pattern = getenv("CRITERION_TEST_PATTERN");
|
||||
char *env_pattern = getenv("CRITERION_TEST_PATTERN");
|
||||
if (env_pattern)
|
||||
opt->pattern = env_pattern;
|
||||
#endif
|
||||
|
||||
bool use_tap = !strcmp("1", DEF(getenv("CRITERION_ENABLE_TAP"), "0"));
|
||||
|
|
Loading…
Add table
Reference in a new issue