forked from yystopf/xiuos
75 lines
2.5 KiB
C
75 lines
2.5 KiB
C
/* Copyright JS Foundation and other contributors, http://js.foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include <string.h>
|
|
|
|
#include "jerryscript.h"
|
|
#include "test-common.h"
|
|
#include "jerryscript-ext/module.h"
|
|
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
(void) argc;
|
|
(void) argv;
|
|
jerry_char_t buffer[256];
|
|
jerry_size_t bytes_copied;
|
|
const jerryx_module_resolver_t *resolver = &jerryx_module_native_resolver;
|
|
jerry_value_t module_name;
|
|
|
|
jerry_init (JERRY_INIT_EMPTY);
|
|
|
|
/* Attempt to load a non-existing module. */
|
|
module_name = jerry_create_string ((jerry_char_t *) "some-unknown-module-name");
|
|
jerry_value_t module = jerryx_module_resolve (module_name, &resolver, 1);
|
|
jerry_release_value (module_name);
|
|
|
|
TEST_ASSERT (jerry_value_is_error (module));
|
|
|
|
/* Retrieve the error message. */
|
|
module = jerry_get_value_from_error (module, true);
|
|
jerry_value_t prop_name = jerry_create_string ((const jerry_char_t *) "message");
|
|
jerry_value_t prop = jerry_get_property (module, prop_name);
|
|
|
|
/* Assert that the error message is a string with specific contents. */
|
|
TEST_ASSERT (jerry_value_is_string (prop));
|
|
|
|
bytes_copied = jerry_substring_to_utf8_char_buffer (prop, 0, 254, buffer, 256);
|
|
buffer[bytes_copied] = 0;
|
|
TEST_ASSERT (!strcmp ((const char *) buffer, "Module not found"));
|
|
|
|
/* Release the error message property name and value. */
|
|
jerry_release_value (prop);
|
|
jerry_release_value (prop_name);
|
|
|
|
/* Retrieve the moduleName property. */
|
|
prop_name = jerry_create_string ((const jerry_char_t *) "moduleName");
|
|
prop = jerry_get_property (module, prop_name);
|
|
|
|
/* Assert that the moduleName property is a string containing the requested module name. */
|
|
TEST_ASSERT (jerry_value_is_string (prop));
|
|
|
|
bytes_copied = jerry_substring_to_utf8_char_buffer (prop, 0, 254, buffer, 256);
|
|
buffer[bytes_copied] = 0;
|
|
TEST_ASSERT (!strcmp ((const char *) buffer, "some-unknown-module-name"));
|
|
|
|
/* Release everything. */
|
|
jerry_release_value (prop);
|
|
jerry_release_value (prop_name);
|
|
jerry_release_value (module);
|
|
|
|
return 0;
|
|
} /* main */
|