From fe00017a06ddf9314ce79a83a60ae6333769bb24 Mon Sep 17 00:00:00 2001 From: Marcus Asteborg <maastebo@microsoft.com> Date: Sun, 7 Jun 2020 21:16:12 -0700 Subject: [PATCH] Disable message box when calling abort(). The message box is causing hangs in tests. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca> --- celt/arch.h | 3 +++ silk/typedef.h | 3 +++ tests/test_opus_common.h | 3 +++ 3 files changed, 9 insertions(+) diff --git a/celt/arch.h b/celt/arch.h index 08b07db59..3845c3a08 100644 --- a/celt/arch.h +++ b/celt/arch.h @@ -73,6 +73,9 @@ __attribute__((noreturn)) void celt_fatal(const char *str, const char *file, int line) { fprintf (stderr, "Fatal (internal) error in %s, line %d: %s\n", file, line, str); +#if defined(_MSC_VER) + _set_abort_behavior( 0, _WRITE_ABORT_MSG); +#endif abort(); } #endif diff --git a/silk/typedef.h b/silk/typedef.h index 97b7e709b..793d2c0c1 100644 --- a/silk/typedef.h +++ b/silk/typedef.h @@ -67,6 +67,9 @@ __attribute__((noreturn)) static OPUS_INLINE void _silk_fatal(const char *str, const char *file, int line) { fprintf (stderr, "Fatal (internal) error in %s, line %d: %s\n", file, line, str); +#if defined(_MSC_VER) + _set_abort_behavior( 0, _WRITE_ABORT_MSG); +#endif abort(); } # define silk_assert(COND) {if (!(COND)) {silk_fatal("assertion failed: " #COND);}} diff --git a/tests/test_opus_common.h b/tests/test_opus_common.h index 235cf1c10..d96c7d84a 100644 --- a/tests/test_opus_common.h +++ b/tests/test_opus_common.h @@ -75,6 +75,9 @@ static OPUS_INLINE void _test_failed(const char *file, int line) fprintf(stderr,"Please report this failure and include\n"); fprintf(stderr,"'make check SEED=%u fails %s at line %d for %s'\n",iseed,file,line,opus_get_version_string()); fprintf(stderr,"and any relevant details about your system.\n\n"); +#if defined(_MSC_VER) + _set_abort_behavior( 0, _WRITE_ABORT_MSG); +#endif abort(); } #define test_failed() _test_failed(__FILE__, __LINE__); -- GitLab