void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_null_ptr); TEST_SAFE_CALL(test_slice); TEST_SAFE_CALL(test_uncovered_buffer); TEST_SAFE_CALL(test_invalid_index); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(test_2a); TEST_SAFE_CALL(test_2b); TEST_SAFE_CALL(test_2c); TEST_SAFE_CALL(test_3a); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_recursive_finalizer); TEST_SAFE_CALL(test_get_nonobject); TEST_SAFE_CALL(test_set_nonobject); TEST_SAFE_CALL(test_finalizer_loop); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(test_2); TEST_SAFE_CALL(test_3); TEST_SAFE_CALL(test_4); TEST_SAFE_CALL(test_5); }
void test(duk_context *ctx) { /*printf("SIZE_MAX=%lf\n", (double) SIZE_MAX);*/ TEST_SAFE_CALL(test_1a); TEST_SAFE_CALL(test_1b); TEST_SAFE_CALL(test_2); TEST_SAFE_CALL(test_3); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(check_1); TEST_SAFE_CALL(check_2); TEST_SAFE_CALL(check_3); TEST_SAFE_CALL(check_4); TEST_SAFE_CALL(require_1); TEST_SAFE_CALL(require_2); TEST_SAFE_CALL(require_3); TEST_SAFE_CALL(require_4); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(test_2); TEST_SAFE_CALL(test_3a); TEST_SAFE_CALL(test_3b); TEST_SAFE_CALL(test_3c); TEST_SAFE_CALL(test_3d); TEST_SAFE_CALL(test_3e); TEST_SAFE_CALL(test_3f); TEST_SAFE_CALL(test_3g); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); /* When we return the object is finalized once more as part of * heap destruction but no longer rescued. */ }
TEST_F(FooTest, test_require_buffer) { duk_smart_ptr duk_instance(duk_create_heap_default(), [](duk_context* f) { duk_destroy_heap(f); }); test_function_vector t_vector = {test_basic,test_invalid_type,test_invalid_index1,test_invalid_index2,test_buffer_object}; for (auto f : t_vector) { auto pf = *(f.target<duk_safe_call_function>()); TEST_SAFE_CALL(duk_instance.get(), pf); } }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1a); TEST_PCALL(test_1b); TEST_PCALL(test_1c); TEST_SAFE_CALL(test_1d); TEST_SAFE_CALL(test_1e); TEST_SAFE_CALL(test_1f); TEST_SAFE_CALL(test_2a); TEST_PCALL(test_2b); TEST_PCALL(test_2c); TEST_SAFE_CALL(test_2d); TEST_SAFE_CALL(test_2e); TEST_SAFE_CALL(test_3a); TEST_PCALL(test_3b); TEST_SAFE_CALL(test_3c); TEST_SAFE_CALL(test_3d); }
TEST_F(FooTest, test_require_buffer_data) { duk_smart_ptr duk_instance(duk_create_heap_default(), [](duk_context* f) { duk_destroy_heap(f); }); test_function_vector t_vector = {test_1,test_2,test_3,test_4}; for (auto f : t_vector) { auto pf = *(f.target<duk_safe_call_function>()); TEST_SAFE_CALL(duk_instance.get(), pf); } }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_gc); TEST_SAFE_CALL(test_is_prototype_of); TEST_SAFE_CALL(test_error_augment); TEST_SAFE_CALL(test_hasprop); TEST_SAFE_CALL(test_getprop); TEST_SAFE_CALL(test_putprop); TEST_SAFE_CALL(test_instanceof); printf("still here\n"); fflush(stdout); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_trivial); TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_suspend_resume_throw_trivial); TEST_SAFE_CALL(test_suspend_resume_throw_basic); TEST_SAFE_CALL(test_suspend_resume_reterr_trivial); TEST_SAFE_CALL(test_suspend_resume_reterr_basic); }
void test(duk_context *ctx) { /* dummy just to offset the object index from 0 */ duk_push_string(ctx, "foo"); TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(test_2); TEST_SAFE_CALL(test_3); TEST_SAFE_CALL(test_4); TEST_SAFE_CALL(test_5); TEST_SAFE_CALL(test_6); TEST_SAFE_CALL(test_7); TEST_SAFE_CALL(test_8); TEST_SAFE_CALL(test_9); duk_pop(ctx); /* dummy */ printf("final top: %d\n", duk_get_top(ctx)); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1a); TEST_PCALL(test_1b); TEST_PCALL(test_1c); TEST_SAFE_CALL(test_1d); TEST_SAFE_CALL(test_1e); TEST_SAFE_CALL(test_1f); TEST_SAFE_CALL(test_2a); TEST_PCALL(test_2b); TEST_PCALL(test_2c); TEST_SAFE_CALL(test_2d); /* FIXME: currently error message contains the actual DUK_INVALID_INDEX * value, nonportable */ TEST_SAFE_CALL(test_2e); TEST_SAFE_CALL(test_3a); TEST_PCALL(test_3b); TEST_SAFE_CALL(test_3c); /* FIXME: currently error message contains the actual DUK_INVALID_INDEX * value, nonportable */ TEST_SAFE_CALL(test_3d); }
void test(duk_context *ctx) { /* If set/delete is rejected (return false) for the property name, * an error is thrown because Duktape/C contexts are always strict * (in Duktape 0.12.0 and onwards). */ TEST_SAFE_CALL(test_get1); TEST_SAFE_CALL(test_get2); TEST_SAFE_CALL(test_set1); TEST_SAFE_CALL(test_set2); TEST_SAFE_CALL(test_delete1); TEST_SAFE_CALL(test_delete2); }
TEST_F(FooTest, test_to_fixed_dynamic_buffer) { duk_smart_ptr duk_instance(duk_create_heap_default(), [](duk_context* f) { duk_destroy_heap(f); }); test_function_vector t_vector = { test_1a, test_1b, test_2a, test_2b, test_3a, test_3b, test_4a, test_4b, test_5a, test_5b, test_6a, test_6b, test_6c}; for (auto f : t_vector) { auto pf = *(f.target<duk_safe_call_function>()); TEST_SAFE_CALL(duk_instance.get(), pf); } }
TEST_F(FooTest,test_has_prop) { duk_smart_ptr duk_instance(duk_create_heap_default(), [](duk_context* f) { duk_destroy_heap(f); }); test_function_vector t_vector = { test_1a, test_1b, test_1c, test_1d, test_1e, test_2a, test_2b, test_2c, test_3a, test_3b, test_3c}; for (auto f : t_vector) { auto pf = *(f.target<duk_safe_call_function>()); TEST_SAFE_CALL(duk_instance.get(), pf); } }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_obj_is_key); TEST_SAFE_CALL(test_obj_is_arg); }
void test(duk_context *ctx) { /* Indexed read/write */ TEST_SAFE_CALL(test_duktape_buffer_indexed_1a); TEST_SAFE_CALL(test_nodejs_buffer_indexed_1a); TEST_SAFE_CALL(test_nodejs_buffer_indexed_1b); TEST_SAFE_CALL(test_arraybuffer_indexed_1a); TEST_SAFE_CALL(test_uint8array_indexed_1a); TEST_SAFE_CALL(test_uint8array_indexed_1b); TEST_SAFE_CALL(test_uint16array_indexed_1a); TEST_SAFE_CALL(test_uint16array_indexed_1b); TEST_SAFE_CALL(test_uint32array_indexed_1a); TEST_SAFE_CALL(test_uint32array_indexed_1b); TEST_SAFE_CALL(test_float32array_indexed_1a); TEST_SAFE_CALL(test_float32array_indexed_1b); TEST_SAFE_CALL(test_float64array_indexed_1a); TEST_SAFE_CALL(test_float64array_indexed_1b); /* JSON.serialize */ TEST_SAFE_CALL(test_json_serialize_1); /* TypedArray constructor byte copy and fast copy */ TEST_SAFE_CALL(test_typedarray_constructor_copy_1); /* TypedArray.prototype.set() */ TEST_SAFE_CALL(test_typedarray_set_1); /* Node.js Buffer compare() */ TEST_SAFE_CALL(test_nodejs_buffer_compare_1); /* Node.js Buffer write() */ TEST_SAFE_CALL(test_nodejs_buffer_write_1); /* Node.js Buffer copy() */ TEST_SAFE_CALL(test_nodejs_buffer_copy_1); /* Node.js Buffer concat() */ TEST_SAFE_CALL(test_nodejs_buffer_concat_1); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_flags); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_passthrough); TEST_SAFE_CALL(test_trap); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_api_example); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_nargs_too_large); TEST_SAFE_CALL(test_nargs_minus1); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_string); TEST_SAFE_CALL(test_lstring); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic); TEST_SAFE_CALL(test_nonwritable); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1a); TEST_SAFE_CALL(test_1b); TEST_SAFE_CALL(test_1c); TEST_SAFE_CALL(test_2a); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_1); TEST_SAFE_CALL(test_2a); TEST_SAFE_CALL(test_2b); TEST_SAFE_CALL(test_2c); TEST_SAFE_CALL(test_2d); TEST_SAFE_CALL(test_2e); TEST_SAFE_CALL(test_2f); TEST_SAFE_CALL(test_2g); TEST_SAFE_CALL(test_2h); TEST_SAFE_CALL(test_3); /* FIXME: this testcase currently exposes the DUK_INVALID_INDEX * constant in the error message and is thus not portable. */ TEST_SAFE_CALL(test_4); }
void test(duk_context *ctx) { TEST_SAFE_CALL(test_basic_implicit); TEST_SAFE_CALL(test_basic_explicit); TEST_SAFE_CALL(test_endfin_return); /* Top level unprotected call + return with implicit value. */ duk_eval_string(ctx, "(function () {\n" " print('inside func');\n" "})"); duk_call(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); /* Top level protected call + return with explicit value. */ duk_eval_string(ctx, "(function () {\n" " print('inside func');\n" "})"); (void) duk_pcall(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); /* Top level unprotected call + return with explicit value. */ duk_eval_string(ctx, "(function () {\n" " print('inside func');\n" " return 123;\n" "})"); duk_call(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); /* Top level protected call + return with explicit value. */ duk_eval_string(ctx, "(function () {\n" " print('inside func');\n" " return 123;\n" "})"); duk_pcall(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); /* ENDFIN + RETURN case directly from top level, unprotected call. */ duk_eval_string(ctx, "(function () {\n" " try {\n" " return 321;\n" " } finally {\n" " print('finally');\n" " }\n" " print('never here');\n" "})"); duk_call(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); /* ENDFIN + RETURN case directly from top level, protected call. */ duk_eval_string(ctx, "(function () {\n" " try {\n" " return 321;\n" " } finally {\n" " print('finally');\n" " }\n" " print('never here');\n" "})"); duk_pcall(ctx, 0); printf("result: %s\n", duk_safe_to_string(ctx, -1)); duk_pop(ctx); printf("final top: %ld\n", (long) duk_get_top(ctx)); }