aboutsummaryrefslogtreecommitdiffstats
path: root/test/data
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2019-05-23 10:53:23 +0900
committerYAMAMOTO Mitsuharu2019-05-23 10:53:23 +0900
commitb40dde705af4d53853de6185a2468153b442dc9a (patch)
treee8dabba695163c2d07439fad6accff761f8f714c /test/data
parent5d7dafacf4afc888511649f6fc24c28210cd0dfc (diff)
parent03feb9376b54c489e24478954a11061e9b0d6db7 (diff)
downloademacs-b40dde705af4d53853de6185a2468153b442dc9a.tar.gz
emacs-b40dde705af4d53853de6185a2468153b442dc9a.zip
Merge branch 'master' into harfbuzz
Diffstat (limited to 'test/data')
-rw-r--r--test/data/emacs-module/mod-test.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/test/data/emacs-module/mod-test.c b/test/data/emacs-module/mod-test.c
index b7007bd80ff..2891b73c1a0 100644
--- a/test/data/emacs-module/mod-test.c
+++ b/test/data/emacs-module/mod-test.c
@@ -19,7 +19,9 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
19 19
20#include "config.h" 20#include "config.h"
21 21
22#undef NDEBUG
22#include <assert.h> 23#include <assert.h>
24
23#include <errno.h> 25#include <errno.h>
24#include <limits.h> 26#include <limits.h>
25#include <stdio.h> 27#include <stdio.h>
@@ -316,16 +318,6 @@ Fmod_test_invalid_finalizer (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
316} 318}
317 319
318static void 320static void
319signal_wrong_type_argument (emacs_env *env, const char *predicate,
320 emacs_value arg)
321{
322 emacs_value symbol = env->intern (env, "wrong-type-argument");
323 emacs_value elements[2] = {env->intern (env, predicate), arg};
324 emacs_value data = env->funcall (env, env->intern (env, "list"), 2, elements);
325 env->non_local_exit_signal (env, symbol, data);
326}
327
328static void
329signal_errno (emacs_env *env, const char *function) 321signal_errno (emacs_env *env, const char *function)
330{ 322{
331 const char *message = strerror (errno); 323 const char *message = strerror (errno);
@@ -345,16 +337,10 @@ Fmod_test_sleep_until (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
345 void *data) 337 void *data)
346{ 338{
347 assert (nargs == 2); 339 assert (nargs == 2);
348 const double until_seconds = env->extract_float (env, args[0]); 340 const struct timespec until = env->extract_time (env, args[0]);
349 if (env->non_local_exit_check (env)) 341 if (env->non_local_exit_check (env))
350 return NULL; 342 return NULL;
351 if (until_seconds <= 0)
352 {
353 signal_wrong_type_argument (env, "cl-plusp", args[0]);
354 return NULL;
355 }
356 const bool process_input = env->is_not_nil (env, args[1]); 343 const bool process_input = env->is_not_nil (env, args[1]);
357 const struct timespec until = dtotimespec (until_seconds);
358 const struct timespec amount = make_timespec(0, 10000000); 344 const struct timespec amount = make_timespec(0, 10000000);
359 while (true) 345 while (true)
360 { 346 {
@@ -393,7 +379,11 @@ Fmod_test_nanoseconds (emacs_env *env, ptrdiff_t nargs, emacs_value *args, void
393 struct emacs_mpz nanoseconds; 379 struct emacs_mpz nanoseconds;
394 assert (LONG_MIN <= time.tv_sec && time.tv_sec <= LONG_MAX); 380 assert (LONG_MIN <= time.tv_sec && time.tv_sec <= LONG_MAX);
395 mpz_init_set_si (nanoseconds.value, time.tv_sec); 381 mpz_init_set_si (nanoseconds.value, time.tv_sec);
382#ifdef __MINGW32__
383 _Static_assert (1000000000 <= ULONG_MAX, "unsupported architecture");
384#else
396 static_assert (1000000000 <= ULONG_MAX, "unsupported architecture"); 385 static_assert (1000000000 <= ULONG_MAX, "unsupported architecture");
386#endif
397 mpz_mul_ui (nanoseconds.value, nanoseconds.value, 1000000000); 387 mpz_mul_ui (nanoseconds.value, nanoseconds.value, 1000000000);
398 assert (0 <= time.tv_nsec && time.tv_nsec <= ULONG_MAX); 388 assert (0 <= time.tv_nsec && time.tv_nsec <= ULONG_MAX);
399 mpz_add_ui (nanoseconds.value, nanoseconds.value, time.tv_nsec); 389 mpz_add_ui (nanoseconds.value, nanoseconds.value, time.tv_nsec);
@@ -445,6 +435,11 @@ bind_function (emacs_env *env, const char *name, emacs_value Sfun)
445int 435int
446emacs_module_init (struct emacs_runtime *ert) 436emacs_module_init (struct emacs_runtime *ert)
447{ 437{
438 /* Check that EMACS_MAJOR_VERSION is defined and an integral
439 constant. */
440 char dummy[EMACS_MAJOR_VERSION];
441 assert (27 <= sizeof dummy);
442
448 if (ert->size < sizeof *ert) 443 if (ert->size < sizeof *ert)
449 { 444 {
450 fprintf (stderr, "Runtime size of runtime structure (%"pT" bytes) " 445 fprintf (stderr, "Runtime size of runtime structure (%"pT" bytes) "