diff options
| author | Philipp Stephani | 2020-01-05 16:05:14 +0100 |
|---|---|---|
| committer | Philipp Stephani | 2020-01-05 16:07:28 +0100 |
| commit | fc92c2d8942cf466aa6dbc422f2e798801b18408 (patch) | |
| tree | ddf5bc386ba474733db39de3d23f76c8563ebd4b /test/src | |
| parent | 9d38564cdde8cbe9d4c08a7ffef7f25e9692814a (diff) | |
| download | emacs-fc92c2d8942cf466aa6dbc422f2e798801b18408.tar.gz emacs-fc92c2d8942cf466aa6dbc422f2e798801b18408.zip | |
Also print function data when printing module functions.
This is especially useful in cases where modules only use a single
entry point and use the data to dispatch to the actual function. Such
a design is common for languages such as Go and C++.
* src/emacs-module.c (module_function_data): New function.
* src/print.c (print_vectorlike): Use it to print module function data
if not NULL.
(print_object): Adapt size of buffer.
* test/data/emacs-module/mod-test.c (emacs_module_init): Pass some
non-NULL data to ‘mod-test-sum’.
(Fmod_test_sum): Check that correct data is passed through.
* test/src/emacs-module-tests.el (mod-test-sum-test)
(module-function-object): Adapt unit tests.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/emacs-module-tests.el | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el index c61abfdf683..48d2e86a605 100644 --- a/test/src/emacs-module-tests.el +++ b/test/src/emacs-module-tests.el | |||
| @@ -60,8 +60,9 @@ | |||
| 60 | (should (eq 0 | 60 | (should (eq 0 |
| 61 | (string-match | 61 | (string-match |
| 62 | (concat "#<module function " | 62 | (concat "#<module function " |
| 63 | "\\(at \\(0x\\)?[[:xdigit:]]+\\( from .*\\)?" | 63 | "\\(at \\(0x\\)?[[:xdigit:]]+ " |
| 64 | "\\|Fmod_test_sum from .*\\)>") | 64 | "with data 0x1234\\( from .*\\)?" |
| 65 | "\\|Fmod_test_sum with data 0x1234 from .*\\)>") | ||
| 65 | (prin1-to-string (nth 1 descr))))) | 66 | (prin1-to-string (nth 1 descr))))) |
| 66 | (should (= (nth 2 descr) 3))) | 67 | (should (= (nth 2 descr) 3))) |
| 67 | (should-error (mod-test-sum "1" 2) :type 'wrong-type-argument) | 68 | (should-error (mod-test-sum "1" 2) :type 'wrong-type-argument) |
| @@ -97,6 +98,7 @@ changes." | |||
| 97 | (rx bos "#<module function " | 98 | (rx bos "#<module function " |
| 98 | (or "Fmod_test_sum" | 99 | (or "Fmod_test_sum" |
| 99 | (and "at 0x" (+ hex-digit))) | 100 | (and "at 0x" (+ hex-digit))) |
| 101 | " with data 0x1234" | ||
| 100 | (? " from " (* nonl) "mod-test" (* nonl) ) | 102 | (? " from " (* nonl) "mod-test" (* nonl) ) |
| 101 | ">" eos) | 103 | ">" eos) |
| 102 | (prin1-to-string func))))) | 104 | (prin1-to-string func))))) |