diff options
author | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2015-01-11 10:47:38 -0200 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2015-01-11 10:47:38 -0200 |
commit | 60062b90bdb2e92c3d2462fc1f4ba757e157405b (patch) | |
tree | 4cd1c6871ad8ea3c7cb9240fe572d751707617db | |
parent | 2e2417259aa845b6764e1dd59f64c096e0e982b6 (diff) | |
download | efl-60062b90bdb2e92c3d2462fc1f4ba757e157405b.tar.gz |
Fixed passing test path for native code and v8::String compatibility_new
-rw-r--r-- | src/Makefile_Eina_Js.am | 5 | ||||
-rw-r--r-- | src/bindings/eina_js/eina_js_compatibility.hh | 32 | ||||
-rw-r--r-- | src/tests/eina_js/eina_js_suite.cc | 63 | ||||
-rwxr-xr-x | src/tests/eina_js/eina_js_suite.js | 13 |
4 files changed, 44 insertions, 69 deletions
diff --git a/src/Makefile_Eina_Js.am b/src/Makefile_Eina_Js.am index eee877fb47..80289514fa 100644 --- a/src/Makefile_Eina_Js.am +++ b/src/Makefile_Eina_Js.am @@ -74,6 +74,8 @@ bindings/eina_cxx/eina_value.hh if EFL_ENABLE_TESTS if HAVE_NODEJS +AM_TESTS_ENVIRONMENT = EINA_SUITE_PATH='$(abs_builddir)/tests/eina_js/eina_js_suite'; export EINA_SUITE_PATH; + TESTS += tests/eina_js/eina_js_suite.js lib_LTLIBRARIES += tests/eina_js/libeina_js_suite.la \ @@ -138,8 +140,7 @@ tests_eina_js_libeina_js_iterator_la_LIBADD = @CHECK_LIBS@ @USE_EINA_JS_LIBS@ @U tests_eina_js_libeina_js_iterator_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EINA_JS_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ else - -EINA_TESTS_PREFIX = +AM_TESTS_ENVIRONMENT = EINA_SUITE_PATH='$(abs_srcdir)/tests/eina_js/eina_js_suite.js'; export EINA_SUITE_PATH; check_PROGRAMS += tests/eina_js/eina_js_suite TESTS += tests/eina_js/eina_js_suite diff --git a/src/bindings/eina_js/eina_js_compatibility.hh b/src/bindings/eina_js/eina_js_compatibility.hh index d8f0403524..10c773a6c5 100644 --- a/src/bindings/eina_js/eina_js_compatibility.hh +++ b/src/bindings/eina_js/eina_js_compatibility.hh @@ -134,6 +134,38 @@ template <> struct compatibility_string<false> : v8::String { }; + +template <typename...Args> +auto compatibility_new_impl(v8::Isolate*, std::true_type, compatibility_type_tag<v8::String> + , Args...args) -> + decltype(compatibility_string<>::New(args...)) +{ + return compatibility_string<>::New(args...); +} + +template <typename...Args> +auto compatibility_new_impl(v8::Isolate*, std::false_type, compatibility_type_tag<v8::String> + , Args...args) -> + decltype(compatibility_string<>::New(args...)) +{ + return compatibility_string<>::New(args...); +} + +template <typename...Args> +auto compatibility_new_impl(std::nullptr_t, std::true_type, compatibility_type_tag<v8::String> + , Args...args) -> + decltype(compatibility_string<>::New(args...)) +{ + return compatibility_string<>::New(args...); +} + +template <typename...Args> +auto compatibility_new_impl(std::nullptr_t, std::false_type, compatibility_type_tag<v8::String> + , Args...args) -> + decltype(compatibility_string<>::New(args...)) +{ + return compatibility_string<>::New(args...); +} template <typename T, typename...Args> auto compatibility_new_impl(v8::Isolate* isolate, std::true_type, compatibility_type_tag<T> diff --git a/src/tests/eina_js/eina_js_suite.cc b/src/tests/eina_js/eina_js_suite.cc index b4716814ba..762f35f09f 100644 --- a/src/tests/eina_js/eina_js_suite.cc +++ b/src/tests/eina_js/eina_js_suite.cc @@ -14,53 +14,6 @@ #include <eina_js_list.hh> -static const char script[] = - "function assert(condition, message) {\n" - " if (!condition) {\n" - " print(\"Assertion failed \", message);\n" - " throw message || \"Assertion failed\";\n" - " }\n" - "}\n" - "print(\"teste\");\n" - "var l1 = raw_list;\n" - "print (\"l1 \", l1.toString());\n" - "assert (l1.length == 3)\n;\n" - "var l2 = raw_list;\n" - "print (\"l2 \", l2.toString());\n" - "assert (l2.length == 3)\n;\n" - "var c = l1.concat(l2);\n" - "print (\"c \", c.toString());\n" - "assert (c.length == (l1.length + l2.length));\n" - "assert (c[0] == l1[0]);\n" - "assert (c[1] == l1[1]);\n" - "assert (c[2] == l1[2]);\n" - "assert (c[3] == l2[0]);\n" - "assert (c[4] == l2[1]);\n" - "assert (c[5] == l2[2]);\n" - "assert (c.indexOf(c[0]) == 0);\n" - "assert (c.indexOf(c[1]) == 1);\n" - "assert (c.indexOf(c[2]) == 2);\n" - "assert (c.indexOf(c[3]) == 0);\n" - "assert (c.indexOf(c[4]) == 1);\n" - "assert (c.indexOf(c[5]) == 2);\n" - "assert (c.lastIndexOf(c[0]) == 3);\n" - "assert (c.lastIndexOf(c[1]) == 4);\n" - "assert (c.lastIndexOf(c[2]) == 5);\n" - "assert (c.lastIndexOf(c[3]) == 3);\n" - "assert (c.lastIndexOf(c[4]) == 4);\n" - "assert (c.lastIndexOf(c[5]) == 5);\n" - "var s1 = l1.slice(1, 3);\n" - "print (\"s1 \", s1.toString());\n" - "assert (s1.length == 2);\n" - "assert (s1[0] == l1[1]);\n" - "assert (s1[1] == l1[2]);\n" - "var s2 = c.slice(1, 3);\n" - "print (\"s2 \", s2.toString());\n" - "assert (s2.length == 2);\n" - "assert (s2[0] == l1[1]);\n" - "assert (s2[1] == l1[2]);\n" - ; - const char* ToCString(const v8::String::Utf8Value& value) { return *value ? *value : "<string conversion failed>"; } @@ -128,6 +81,8 @@ efl::eina::js::compatibility_return_type Print(efl::eina::js::compatibility_call EAPI void eina_container_register(v8::Handle<v8::Object> global, v8::Isolate* isolate); EAPI v8::Handle<v8::FunctionTemplate> get_list_instance_template(); +#ifndef HAVE_NODEJS + int main(int, char*[]) { efl::eina::eina_init eina_init; @@ -154,18 +109,6 @@ int main(int, char*[]) // Bind the global 'print' function to the C++ Print callback. global->Set(efl::eina::js::compatibility_new<v8::String>(isolate, "print"), efl::eina::js::compatibility_new<v8::FunctionTemplate>(isolate, Print)); - // // Bind the global 'read' function to the C++ Read callback. - // global->Set(v8::String::NewFromUtf8(isolate, "read"), - // v8::FunctionTemplate::New(isolate, Read)); - // // Bind the global 'load' function to the C++ Load callback. - // global->Set(v8::String::NewFromUtf8(isolate, "load"), - // v8::FunctionTemplate::New(isolate, Load)); - // // Bind the 'quit' function - // global->Set(v8::String::NewFromUtf8(isolate, "quit"), - // v8::FunctionTemplate::New(isolate, Quit)); - // // Bind the 'version' function - // global->Set(v8::String::NewFromUtf8(isolate, "version"), - // v8::FunctionTemplate::New(isolate, Version)); context = efl::eina::js::compatibility_new<v8::Context>(isolate, nullptr, global); eina_container_register(context->Global(), isolate); @@ -193,7 +136,7 @@ int main(int, char*[]) context->Exit(); } -#ifdef HAVE_NODEJS +#else #include <node/node.h> namespace { diff --git a/src/tests/eina_js/eina_js_suite.js b/src/tests/eina_js/eina_js_suite.js index 9c80c81fcb..9c2d55e02c 100755 --- a/src/tests/eina_js/eina_js_suite.js +++ b/src/tests/eina_js/eina_js_suite.js @@ -1,16 +1,15 @@ #!/usr/bin/env node +console.log('path ', process.env.EINA_SUITE_PATH); + console.log("teste1"); -var suite = require('../../../build/src/tests/eina_js/eina_js_suite'); +var suite = require(process.env.EINA_SUITE_PATH); assert = require('assert'); -// function assert(condition, message) -// { -// if (!condition) { -// console.log(\"Assertion failed \", message); -// throw message || \"Assertion failed\"; -// } +process.argv.forEach(function (val, index, array) { + console.log(index + ': ' + val); +}); console.log("teste"); var l1 = suite.raw_list; |