Skip to content

Commit a4a0937

Browse files
tests: Clean up and improve run_context_tests() further
1 parent fc90bb5 commit a4a0937

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/tests.c

+15-9
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,7 @@ void run_ec_illegal_argument_tests(void) {
229229
}
230230

231231
void run_context_tests(int use_prealloc) {
232-
int32_t ecount;
233-
int32_t ecount2;
232+
int32_t dummy = 0;
234233
secp256k1_context *my_ctx;
235234
void *my_ctx_prealloc = NULL;
236235

@@ -250,13 +249,9 @@ void run_context_tests(int use_prealloc) {
250249
my_ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE);
251250
}
252251

253-
ecount = 0;
254-
ecount2 = 10;
255-
secp256k1_context_set_illegal_callback(sttc, counting_illegal_callback_fn, &ecount);
256-
secp256k1_context_set_illegal_callback(my_ctx, counting_illegal_callback_fn, &ecount2);
257252
/* set error callback (to a function that still aborts in case malloc() fails in secp256k1_context_clone() below) */
258253
secp256k1_context_set_error_callback(my_ctx, secp256k1_default_illegal_callback_fn, NULL);
259-
CHECK(my_ctx->error_callback.fn != sttc->error_callback.fn);
254+
CHECK(my_ctx->error_callback.fn != secp256k1_default_error_callback_fn);
260255
CHECK(my_ctx->error_callback.fn == secp256k1_default_illegal_callback_fn);
261256

262257
/* check if sizes for cloning are consistent */
@@ -284,11 +279,22 @@ void run_context_tests(int use_prealloc) {
284279
}
285280

286281
/* Verify that the error callback makes it across the clone. */
287-
CHECK(my_ctx->error_callback.fn != sttc->error_callback.fn);
282+
CHECK(my_ctx->error_callback.fn != secp256k1_default_error_callback_fn);
288283
CHECK(my_ctx->error_callback.fn == secp256k1_default_illegal_callback_fn);
289284
/* And that it resets back to default. */
290285
secp256k1_context_set_error_callback(my_ctx, NULL, NULL);
291-
CHECK(my_ctx->error_callback.fn == sttc->error_callback.fn);
286+
CHECK(my_ctx->error_callback.fn == secp256k1_default_error_callback_fn);
287+
288+
/* Verify that setting and resetting illegal callback works */
289+
secp256k1_context_set_illegal_callback(sttc, counting_illegal_callback_fn, &dummy);
290+
CHECK(sttc->illegal_callback.fn == counting_illegal_callback_fn);
291+
secp256k1_context_set_illegal_callback(sttc, NULL, NULL);
292+
CHECK(sttc->illegal_callback.fn == secp256k1_default_illegal_callback_fn);
293+
294+
secp256k1_context_set_illegal_callback(my_ctx, counting_illegal_callback_fn, &dummy);
295+
CHECK(my_ctx->illegal_callback.fn == counting_illegal_callback_fn);
296+
secp256k1_context_set_illegal_callback(my_ctx, NULL, NULL);
297+
CHECK(my_ctx->illegal_callback.fn == secp256k1_default_illegal_callback_fn);
292298

293299
/*** attempt to use them ***/
294300
random_scalar_order_test(&msg);

0 commit comments

Comments
 (0)