aboutsummaryrefslogtreecommitdiffstats
path: root/test/data/emacs-module
diff options
context:
space:
mode:
authorMichael R. Mauger2017-07-24 22:15:04 -0400
committerMichael R. Mauger2017-07-24 22:15:04 -0400
commitdf1a71272e5cdd10b511e2ffd702ca50ddd8a773 (patch)
tree9b9ac725394ee80891e2bff57b6407d0e491e71a /test/data/emacs-module
parenteb27fc4d49e8c914cd0e6a8a2d02159601542141 (diff)
parent32daa3cb54523006c88717cbeac87964cd687a1b (diff)
downloademacs-df1a71272e5cdd10b511e2ffd702ca50ddd8a773.tar.gz
emacs-df1a71272e5cdd10b511e2ffd702ca50ddd8a773.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'test/data/emacs-module')
-rw-r--r--test/data/emacs-module/mod-test.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/data/emacs-module/mod-test.c b/test/data/emacs-module/mod-test.c
index eee9466c5d6..42e1c2bd4ae 100644
--- a/test/data/emacs-module/mod-test.c
+++ b/test/data/emacs-module/mod-test.c
@@ -235,6 +235,27 @@ Fmod_test_invalid_load (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
235 return invalid_stored_value; 235 return invalid_stored_value;
236} 236}
237 237
238/* An invalid finalizer: Finalizers are run during garbage collection,
239 where Lisp code can’t be executed. -module-assertions tests for
240 this case. */
241
242static emacs_env *current_env;
243
244static void
245invalid_finalizer (void *ptr)
246{
247 current_env->intern (current_env, "nil");
248}
249
250static emacs_value
251Fmod_test_invalid_finalizer (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
252 void *data)
253{
254 current_env = env;
255 env->make_user_ptr (env, invalid_finalizer, NULL);
256 return env->funcall (env, env->intern (env, "garbage-collect"), 0, NULL);
257}
258
238 259
239/* Lisp utilities for easier readability (simple wrappers). */ 260/* Lisp utilities for easier readability (simple wrappers). */
240 261
@@ -300,6 +321,8 @@ emacs_module_init (struct emacs_runtime *ert)
300 DEFUN ("mod-test-vector-eq", Fmod_test_vector_eq, 2, 2, NULL, NULL); 321 DEFUN ("mod-test-vector-eq", Fmod_test_vector_eq, 2, 2, NULL, NULL);
301 DEFUN ("mod-test-invalid-store", Fmod_test_invalid_store, 0, 0, NULL, NULL); 322 DEFUN ("mod-test-invalid-store", Fmod_test_invalid_store, 0, 0, NULL, NULL);
302 DEFUN ("mod-test-invalid-load", Fmod_test_invalid_load, 0, 0, NULL, NULL); 323 DEFUN ("mod-test-invalid-load", Fmod_test_invalid_load, 0, 0, NULL, NULL);
324 DEFUN ("mod-test-invalid-finalizer", Fmod_test_invalid_finalizer, 0, 0,
325 NULL, NULL);
303 326
304#undef DEFUN 327#undef DEFUN
305 328