diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-06-06 00:02:57 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-06-08 18:39:16 +0200 |
commit | 12932ca20847e09be31fbce3bf029389a47b84cd (patch) | |
tree | a33c091c7f71b450dd9d008c86d13c3c2fa0acb6 | |
parent | 4686d184967c0c747777c8edcc6b00dc023b8aa9 (diff) | |
download | sciteco-12932ca20847e09be31fbce3bf029389a47b84cd.tar.gz |
added test suite cases for memory limiting and command execution
* Turned out to be useful in debugging the "Memory limiting during spawning" test case
on Windows.
* Use UNIX shell emulation (0,128ED) in all test cases.
Should be necessary in order to run the testsuite on Windows, but
it is currently broken anyway.
* avoid <EG> when preprocessing files - use GNU Make's $(shell) instead
* Fixes builds on MinGW where there are still problems with <EC> and <EG>
at least in the virtual build environment.
* Results in a another automake warning about non-POSIX Make constructs.
This is not critical since we depend on GNU Make anyway.
-rw-r--r-- | bootstrap.am | 3 | ||||
-rw-r--r-- | src/memory.c | 5 | ||||
-rw-r--r-- | tests/testsuite.at | 12 |
3 files changed, 17 insertions, 3 deletions
diff --git a/bootstrap.am b/bootstrap.am index 474a672..e4309bc 100644 --- a/bootstrap.am +++ b/bootstrap.am @@ -35,8 +35,7 @@ SUBST_MACRO = eb$<\e \ <fs@pkgdatadir^Q@\e$(pkgdatadir)\e;>j \ <fs@scitecolibdir^Q@\e$(scitecolibdir)\e;>j \ <fs@TECO_INTEGER^Q@\e@TECO_INTEGER@\e;>j \ - ^U[$$LC_ALL]C\e EG.d@DATE@ "+%d %b %Y"\e \ - <fs@DATE^Q@\e^EQ.d\e; -D>j \ + <fs@DATE^Q@\e$(shell LC_ALL=C @DATE@ "+%d %b %Y")\e; -D>j \ ew$@\e # The SciTECO-based substitutor must not process config.h.in. diff --git a/src/memory.c b/src/memory.c index 2d93b12..5958224 100644 --- a/src/memory.c +++ b/src/memory.c @@ -403,6 +403,11 @@ malloc_trim(size_t pad) * * NOTE: At least on Windows 2000, we run twice as fast than * when polling from a dedicated thread. + * + * NOTE: On Wine, we cannot recover from hitting the memory + * limit, but this is probably because malloc() is actually + * forwarded to the glibc which needs malloc_trim(). + * This should not be a problem on real Windows. */ static gsize teco_memory_get_usage(void) diff --git a/tests/testsuite.at b/tests/testsuite.at index 59bd483..90c9724 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -47,6 +47,16 @@ AT_CHECK([$SCITECO -e "@EB'${srcdir}/autoeol-input.txt' EL-2\"N(0/0)' 2LR 13@I'' AT_CHECK([cmp autoeol-sciteco.txt ${srcdir}/autoeol-output.txt], 0, ignore, ignore) AT_CLEANUP +AT_SETUP([Memory limiting]) +# NOTE: We cannot escape [, so we have to balance it. +AT_CHECK([$SCITECO -e "50*1000*1000,2EJ <[[a> !]]!"], 1, ignore, ignore) +AT_CLEANUP + +AT_SETUP([Execute external command]) +AT_CHECK([$SCITECO -e "@EC'echo -n 0123456789' Z-10\"N(0/0)'"], 0, ignore, ignore) +AT_CHECK([$SCITECO -e "0,128ED @EC'echo -n 0123456789' Z-10\"N(0/0)'"], 0, ignore, ignore) +AT_CLEANUP + AT_BANNER([Regression Tests]) AT_SETUP([Glob patterns with character classes]) @@ -71,7 +81,7 @@ AT_CLEANUP AT_SETUP([Memory limiting during spawning]) # This might result in an OOM if memory limiting is not working -AT_CHECK([$SCITECO -e "50*1000*1000,2EJ @EC'cat /dev/zero'"], 1, ignore, ignore) +AT_CHECK([$SCITECO -e "50*1000*1000,2EJ 0,128ED @EC'cat /dev/zero'"], 1, ignore, ignore) AT_CLEANUP AT_BANNER([Known Bugs]) |