Add new test for resource_name (#4737)

JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi csgergo92@gmail.com
This commit is contained in:
Gergo Csizi 2021-08-30 10:04:14 +02:00 committed by GitHub
parent 5a69b183c3
commit b4fc591398
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 66 additions and 12 deletions

View File

@ -5412,14 +5412,11 @@ jerry_get_resource_name (const jerry_value_t value) /**< jerry api value */
ecma_value_t script_value = ((cbc_uint8_arguments_t *) bytecode_p)->script_value;
cbc_script_t *script_p = ECMA_GET_INTERNAL_VALUE_POINTER (cbc_script_t, script_value);
if (CBC_SCRIPT_GET_TYPE (script_p) == CBC_SCRIPT_GENERIC)
{
return ecma_copy_value (script_p->resource_name);
}
#endif /* JERRY_RESOURCE_NAME */
return ecma_copy_value (script_p->resource_name);
#else /* !JERRY_RESOURCE_NAME */
JERRY_UNUSED (value);
return ecma_make_magic_string_value (LIT_MAGIC_STRING_RESOURCE_ANON);
#endif /* JERRY_RESOURCE_NAME */
} /* jerry_get_resource_name */
/**

View File

@ -781,7 +781,10 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_DATE_UL, "setUTCDate")
#if JERRY_BUILTIN_STRING && JERRY_ESNEXT
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STARTS_WITH, "startsWith")
#endif
#if JERRY_RESOURCE_NAME \
|| !(JERRY_RESOURCE_NAME)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RESOURCE_ANON, "<anonymous>")
#endif
#if JERRY_BUILTIN_TYPEDARRAY
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARRAY_BUFFER_UL, "ArrayBuffer")
#endif
@ -1127,7 +1130,20 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_COPY_WITHIN)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_ENUMERABLE)
#endif
#if JERRY_RESOURCE_NAME \
|| !(JERRY_RESOURCE_NAME)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_RESOURCE_ANON)
#elif JERRY_BUILTIN_TYPEDARRAY
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_ARRAY_BUFFER_UL)
#elif JERRY_BUILTIN_ERRORS
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_SYNTAX_ERROR_UL)
#elif JERRY_BUILTIN_TYPEDARRAY
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_UINT16_ARRAY_UL)
#elif JERRY_BUILTIN_STRING && JERRY_ESNEXT
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_CODE_POINT_AT)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_CONSTRUCTOR)
#endif
#if JERRY_BUILTIN_TYPEDARRAY
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_FLOAT32_ARRAY_UL)
#elif JERRY_BUILTIN_TYPEDARRAY && JERRY_NUMBER_TYPE_FLOAT64

View File

@ -81,7 +81,12 @@ main (void)
TEST_ASSERT (jerry_value_is_object (run_result));
jerry_value_t resource_value = jerry_get_resource_name (run_result);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
jerry_value_t compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL,
resource_value,
parse_options.resource_name);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
jerry_release_value (parse_options.resource_name);
@ -110,7 +115,10 @@ main (void)
TEST_ASSERT (jerry_value_is_object (run_result));
resource_value = jerry_get_resource_name (run_result);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
jerry_release_value (parse_options.resource_name);
@ -118,6 +126,7 @@ main (void)
jerry_release_value (program);
if (jerry_is_feature_enabled (JERRY_FEATURE_MODULE))
{
jerry_value_t anon = jerry_create_string ((const jerry_char_t *) "<anonymous>");
const char *source_3 = "";
parse_options.options = JERRY_PARSE_MODULE | JERRY_PARSE_HAS_RESOURCE;
@ -129,14 +138,20 @@ main (void)
TEST_ASSERT (!jerry_value_is_error (program));
resource_value = jerry_get_resource_name (program);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
run_result = jerry_module_link (program, NULL, NULL);
TEST_ASSERT (!jerry_value_is_error (run_result));
resource_value = jerry_get_resource_name (run_result);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, anon);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
jerry_release_value (run_result);
@ -144,7 +159,10 @@ main (void)
TEST_ASSERT (!jerry_value_is_error (run_result));
resource_value = jerry_get_resource_name (run_result);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, anon);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
jerry_release_value (run_result);
jerry_release_value (program);
@ -166,13 +184,36 @@ main (void)
TEST_ASSERT (jerry_value_is_object (run_result));
resource_value = jerry_get_resource_name (run_result);
TEST_ASSERT (jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name));
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (compare_result);
jerry_release_value (resource_value);
jerry_release_value (parse_options.resource_name);
jerry_release_value (run_result);
jerry_release_value (program);
const char *source_5 = "";
parse_options.options = JERRY_PARSE_HAS_USER_VALUE | JERRY_PARSE_HAS_RESOURCE;
parse_options.user_value = jerry_create_object ();
parse_options.resource_name = jerry_create_string ((jerry_char_t *) "demo5.js");
program = jerry_parse ((const jerry_char_t *) source_5,
strlen (source_5),
&parse_options);
TEST_ASSERT (!jerry_value_is_error (program));
resource_value = jerry_get_resource_name (program);
compare_result = jerry_binary_operation (JERRY_BIN_OP_STRICT_EQUAL, resource_value, parse_options.resource_name);
TEST_ASSERT (jerry_value_is_true (compare_result));
jerry_release_value (resource_value);
jerry_release_value (compare_result);
jerry_release_value (parse_options.user_value);
jerry_release_value (parse_options.resource_name);
jerry_release_value (program);
jerry_cleanup ();
return 0;