diff options
author | Mark H Weaver <mhw@netris.org> | 2013-06-10 02:26:11 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-06-10 02:29:05 -0400 |
commit | 8b12a34c8f13d9b2917ffbecc5d59151e5d38a5b (patch) | |
tree | e9e26c720c8ac0e50f9e460b9ae5b6877ad2f9d4 /test-suite/standalone/test-scm-c-bind-keyword-arguments.c | |
parent | 79a9a2c271f18d1cd2031b23c682dadd0cf31bae (diff) | |
download | guile-8b12a34c8f13d9b2917ffbecc5d59151e5d38a5b.tar.gz |
Fix tests for 'scm_c_bind_keyword_arguments'.
* test-suite/standalone/test-scm-c-bind-keyword-arguments.c (error_handler):
Remove function.
(unrecognized_keyword_error_handler, invalid_keyword_error_handler,
odd_length_error_handler): New functions.
(test_scm_c_bind_keyword_arguments): Use new error handler functions.
Diffstat (limited to 'test-suite/standalone/test-scm-c-bind-keyword-arguments.c')
-rw-r--r-- | test-suite/standalone/test-scm-c-bind-keyword-arguments.c | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/test-suite/standalone/test-scm-c-bind-keyword-arguments.c b/test-suite/standalone/test-scm-c-bind-keyword-arguments.c index 6fcf82180..ad0722ce8 100644 --- a/test-suite/standalone/test-scm-c-bind-keyword-arguments.c +++ b/test-suite/standalone/test-scm-c-bind-keyword-arguments.c @@ -25,20 +25,6 @@ #include <assert.h> static SCM -error_handler (void *data, SCM key, SCM args) -{ - SCM expected_args = scm_list_n (scm_from_utf8_string ("test"), - scm_from_utf8_string ((char *) data), - SCM_EOL, SCM_BOOL_F, - SCM_UNDEFINED); - - assert (scm_is_eq (key, scm_from_utf8_symbol ("keyword-argument-error"))); - assert (scm_is_true (scm_equal_p (args, expected_args))); - - return SCM_BOOL_T; -} - -static SCM test_unrecognized_keyword (void *data) { SCM k_foo = scm_from_utf8_keyword ("foo"); @@ -58,6 +44,21 @@ test_unrecognized_keyword (void *data) } static SCM +unrecognized_keyword_error_handler (void *data, SCM key, SCM args) +{ + SCM expected_args = scm_list_n + (scm_from_utf8_string ("test"), + scm_from_utf8_string ("Unrecognized keyword"), + SCM_EOL, scm_list_1 (scm_from_utf8_keyword ("baz")), + SCM_UNDEFINED); + + assert (scm_is_eq (key, scm_from_utf8_symbol ("keyword-argument-error"))); + assert (scm_is_true (scm_equal_p (args, expected_args))); + + return SCM_BOOL_T; +} + +static SCM test_invalid_keyword (void *data) { SCM k_foo = scm_from_utf8_keyword ("foo"); @@ -76,6 +77,21 @@ test_invalid_keyword (void *data) } static SCM +invalid_keyword_error_handler (void *data, SCM key, SCM args) +{ + SCM expected_args = scm_list_n + (scm_from_utf8_string ("test"), + scm_from_utf8_string ("Invalid keyword"), + SCM_EOL, scm_list_1 (SCM_INUM0), + SCM_UNDEFINED); + + assert (scm_is_eq (key, scm_from_utf8_symbol ("keyword-argument-error"))); + assert (scm_is_true (scm_equal_p (args, expected_args))); + + return SCM_BOOL_T; +} + +static SCM test_odd_length (void *data) { SCM k_foo = scm_from_utf8_keyword ("foo"); @@ -93,6 +109,21 @@ test_odd_length (void *data) assert (0); } +static SCM +odd_length_error_handler (void *data, SCM key, SCM args) +{ + SCM expected_args = scm_list_n + (scm_from_utf8_string ("test"), + scm_from_utf8_string ("Odd length of keyword argument list"), + SCM_EOL, SCM_BOOL_F, + SCM_UNDEFINED); + + assert (scm_is_eq (key, scm_from_utf8_symbol ("keyword-argument-error"))); + assert (scm_is_true (scm_equal_p (args, expected_args))); + + return SCM_BOOL_T; +} + static void test_scm_c_bind_keyword_arguments () { @@ -174,17 +205,17 @@ test_scm_c_bind_keyword_arguments () /* Test unrecognized keyword error. */ scm_internal_catch (SCM_BOOL_T, test_unrecognized_keyword, NULL, - error_handler, "Unrecognized keyword"); + unrecognized_keyword_error_handler, NULL); /* Test invalid keyword error. */ scm_internal_catch (SCM_BOOL_T, test_invalid_keyword, NULL, - error_handler, "Invalid keyword"); + invalid_keyword_error_handler, NULL); /* Test odd length error. */ scm_internal_catch (SCM_BOOL_T, test_odd_length, NULL, - error_handler, "Odd length of keyword argument list"); + odd_length_error_handler, NULL); } static void |