summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2015-01-11 10:47:38 -0200
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2015-01-11 10:47:38 -0200
commit60062b90bdb2e92c3d2462fc1f4ba757e157405b (patch)
tree4cd1c6871ad8ea3c7cb9240fe572d751707617db
parent2e2417259aa845b6764e1dd59f64c096e0e982b6 (diff)
downloadefl-60062b90bdb2e92c3d2462fc1f4ba757e157405b.tar.gz
Fixed passing test path for native code and v8::String compatibility_new
-rw-r--r--src/Makefile_Eina_Js.am5
-rw-r--r--src/bindings/eina_js/eina_js_compatibility.hh32
-rw-r--r--src/tests/eina_js/eina_js_suite.cc63
-rwxr-xr-xsrc/tests/eina_js/eina_js_suite.js13
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;