diff options
Diffstat (limited to 'test/data')
| -rw-r--r-- | test/data/emacs-module/mod-test.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/data/emacs-module/mod-test.c b/test/data/emacs-module/mod-test.c index 8dc9ff144af..f6c1c7cf3d2 100644 --- a/test/data/emacs-module/mod-test.c +++ b/test/data/emacs-module/mod-test.c | |||
| @@ -296,6 +296,22 @@ Fmod_test_invalid_load (emacs_env *env, ptrdiff_t nargs, emacs_value *args, | |||
| 296 | return invalid_stored_value; | 296 | return invalid_stored_value; |
| 297 | } | 297 | } |
| 298 | 298 | ||
| 299 | /* The next function works in conjunction with the two previous ones. | ||
| 300 | It stows away a copy of the object created by | ||
| 301 | `Fmod_test_invalid_store' in a global reference. Module assertions | ||
| 302 | should still detect the invalid load of the local reference. */ | ||
| 303 | |||
| 304 | static emacs_value global_copy_of_invalid_stored_value; | ||
| 305 | |||
| 306 | static emacs_value | ||
| 307 | Fmod_test_invalid_store_copy (emacs_env *env, ptrdiff_t nargs, | ||
| 308 | emacs_value *args, void *data) | ||
| 309 | { | ||
| 310 | emacs_value local = Fmod_test_invalid_store (env, 0, NULL, NULL); | ||
| 311 | return global_copy_of_invalid_stored_value | ||
| 312 | = env->make_global_ref (env, local); | ||
| 313 | } | ||
| 314 | |||
| 299 | /* An invalid finalizer: Finalizers are run during garbage collection, | 315 | /* An invalid finalizer: Finalizers are run during garbage collection, |
| 300 | where Lisp code can’t be executed. -module-assertions tests for | 316 | where Lisp code can’t be executed. -module-assertions tests for |
| 301 | this case. */ | 317 | this case. */ |
| @@ -559,6 +575,8 @@ emacs_module_init (struct emacs_runtime *ert) | |||
| 559 | DEFUN ("mod-test-vector-fill", Fmod_test_vector_fill, 2, 2, NULL, NULL); | 575 | DEFUN ("mod-test-vector-fill", Fmod_test_vector_fill, 2, 2, NULL, NULL); |
| 560 | DEFUN ("mod-test-vector-eq", Fmod_test_vector_eq, 2, 2, NULL, NULL); | 576 | DEFUN ("mod-test-vector-eq", Fmod_test_vector_eq, 2, 2, NULL, NULL); |
| 561 | DEFUN ("mod-test-invalid-store", Fmod_test_invalid_store, 0, 0, NULL, NULL); | 577 | DEFUN ("mod-test-invalid-store", Fmod_test_invalid_store, 0, 0, NULL, NULL); |
| 578 | DEFUN ("mod-test-invalid-store-copy", Fmod_test_invalid_store_copy, 0, 0, | ||
| 579 | NULL, NULL); | ||
| 562 | DEFUN ("mod-test-invalid-load", Fmod_test_invalid_load, 0, 0, NULL, NULL); | 580 | DEFUN ("mod-test-invalid-load", Fmod_test_invalid_load, 0, 0, NULL, NULL); |
| 563 | DEFUN ("mod-test-invalid-finalizer", Fmod_test_invalid_finalizer, 0, 0, | 581 | DEFUN ("mod-test-invalid-finalizer", Fmod_test_invalid_finalizer, 0, 0, |
| 564 | NULL, NULL); | 582 | NULL, NULL); |