diff options
| author | YAMAMOTO Mitsuharu | 2019-05-23 10:53:23 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2019-05-23 10:53:23 +0900 |
| commit | b40dde705af4d53853de6185a2468153b442dc9a (patch) | |
| tree | e8dabba695163c2d07439fad6accff761f8f714c /test/data | |
| parent | 5d7dafacf4afc888511649f6fc24c28210cd0dfc (diff) | |
| parent | 03feb9376b54c489e24478954a11061e9b0d6db7 (diff) | |
| download | emacs-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.c | 29 |
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 | ||
| 318 | static void | 320 | static void |
| 319 | signal_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 | |||
| 328 | static void | ||
| 329 | signal_errno (emacs_env *env, const char *function) | 321 | signal_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) | |||
| 445 | int | 435 | int |
| 446 | emacs_module_init (struct emacs_runtime *ert) | 436 | emacs_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) " |