1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/test-suite/standalone
Ludovic Courtès 381291f5ff 'primitive-fork' closes and recreates the current thread's 'sleep_pipe'.
Partly fixes <https://bugs.gnu.org/41948>.

Previously, the child process could end up using the same 'sleep_pipe'
as its parent, leading to a race condition handling signals.

* libguile/posix.c (do_fork): New function.
(scm_fork): Call 'do_fork' via 'scm_without_guile'.
* test-suite/standalone/test-signal-fork: New test.
* test-suite/standalone/Makefile.am (check_SCRIPTS, TESTS): Add it.
2021-05-08 21:39:15 +02:00
..
.gitignore Start rewriting SRFI-1 in Scheme. 2010-07-21 01:07:56 +02:00
Makefile.am 'primitive-fork' closes and recreates the current thread's 'sleep_pipe'. 2021-05-08 21:39:15 +02:00
README allow building against uninstalled guile; move some things to meta/ 2009-03-27 14:03:03 -07:00
test-asmobs Fix test environment issue with ltdl from Libtool 2.2.6b. 2009-12-14 10:59:25 +01:00
test-asmobs-lib.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-bad-identifiers Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-command-line-encoding in command line encoding test don't presume extant UTF-8 locale 2021-01-21 15:32:33 -08:00
test-command-line-encoding2 Don't fail when locale env. vars specify a dot-less locale name. 2012-02-18 00:04:17 +01:00
test-conversion.c Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
test-extensions Fix test environment issue with ltdl from Libtool 2.2.6b. 2009-12-14 10:59:25 +01:00
test-extensions-lib.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-fast-slot-ref.in Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-ffi for dynamic-link tests, mingw needs to link to msvcrt 2021-01-21 15:32:45 -08:00
test-ffi-lib.c Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
test-foreign-object-c.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-foreign-object-scm for dynamic-link tests, mingw needs to link to msvcrt 2021-01-21 15:32:45 -08:00
test-guild-compile skip compile test when pause not available 2021-01-21 15:32:06 -08:00
test-guile-snarf Avoid non-portable tail' argument in test-guile-snarf'. 2012-01-14 22:25:59 +01:00
test-import-order out-of-tree build fix 2011-05-25 10:27:46 +02:00
test-import-order-a.scm fix define-module ordering 2011-05-21 18:29:03 +02:00
test-import-order-b.scm fix define-module ordering 2011-05-21 18:29:03 +02:00
test-import-order-c.scm fix define-module ordering 2011-05-21 18:29:03 +02:00
test-import-order-d.scm fix define-module ordering 2011-05-21 18:29:03 +02:00
test-language tests: Use shell constructs that /bin/sh on Solaris 10 can understand. 2013-04-14 15:46:56 +02:00
test-language.el Add tests for `--language'. 2013-01-26 21:49:17 +01:00
test-language.js Add tests for `--language'. 2013-01-26 21:49:17 +01:00
test-list.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-loose-ends.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-mb-regexp add multibyte regexp test 2011-03-17 18:53:11 +01:00
test-num2integral.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-out-of-memory Fix out-of-memory test for top-level inlining 2019-08-25 21:47:18 +02:00
test-pthread-create-secondary.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-pthread-create.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-require-extension Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-round.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-c-bind-keyword-arguments.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-c-read.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-spawn-thread.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-take-locale-symbol.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-take-u8vector.c Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
test-scm-to-latin1-string.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-values.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-scm-with-guile.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-signal-fork 'primitive-fork' closes and recreates the current thread's 'sleep_pipe'. 2021-05-08 21:39:15 +02:00
test-smob-mark-race.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-smob-mark.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
test-srfi-4.c Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
test-stack-overflow On Hurd, skip tests that require working setrlimits for memory 2017-05-16 21:44:04 +02:00
test-system-cmds tests: Use double quotes around shell arguments, for Windows. 2013-06-16 16:39:14 +02:00
test-unwind.c Avoid leaking a file descriptor in test-unwind 2019-05-23 17:29:52 +02:00
test-use-srfi.in Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-with-guile-module.c Update license notices in all C files 2018-06-20 20:07:34 +02:00

-*-text-*-

These tests use the standard automake TESTS mechanism.  Tests should
be listed in TESTS in Makefile.am, and should exit with 0 on success,
non-zero on failure, and 77 if the result should be ignored.  See the
automake info pages for more information.

If you want to use a scheme script, prefix it as follows:

  #!/bin/sh
  exec guile -s "$0" "$@"
  !#

Makefile.am will arrange for all tests (scripts or executables) to be
run under uninstalled-env so that the PATH, LD_LIBRARY_PATH, and
GUILE_LOAD_PATH will be augmented appropriately.

The Makefile.am has an example of creating a shared library to be used
from a test scheme script as well.

You can also create standalone executables that include your own code,
are linked against libguile, and that run a given test script (or
scripts).  One way to do this is to create the binary, make sure it
calls scm_shell (argc, argv) as its final action, and put this bit at
the top of your test script:

  #!./my-test-binary -s
  !#