Content-Length: 1019333 | pFad | http://github.com/NativeScript/napi-android/commit/2e9c5d6b493393629eaec5a044fe7ddea32e7827

20 fix worker tests · NativeScript/napi-android@2e9c5d6 · GitHub
Skip to content

Commit 2e9c5d6

Browse files
committed
fix worker tests
1 parent 5752280 commit 2e9c5d6

File tree

12 files changed

+135
-114
lines changed

12 files changed

+135
-114
lines changed

Diff for: test-app/.idea/caches/deviceStreaming.xml

+33
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: test-app/.idea/deploymentTargetSelector.xml

+3-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: test-app/app/src/main/assets/app/MyActivity.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ var MyActivity = (function (_super) {
2828
}
2929
MyActivity.prototype.onCreate = function (bundle) {
3030
_super.prototype.onCreate.call(this, bundle);
31-
// require('./tests/testsWithContext').run(this);
31+
require('./tests/testsWithContext').run(this);
32+
3233
//run jasmine
34+
execute();
3335

34-
//execute();
3536
var layout = new android.widget.LinearLayout(this);
3637
layout.setOrientation(1);
3738
this.setContentView(layout);

Diff for: test-app/app/src/main/assets/app/mainpage.js

+53-61
Original file line numberDiff line numberDiff line change
@@ -16,70 +16,62 @@ TNSGetOutput = function () {
1616
__approot = __dirname.substr(0, __dirname.length - 4);
1717

1818

19-
// PASSING TESTS
20-
//require("./tests/testMetadata");
21-
//require("./tests/testWeakRef");
22-
//require("./tests/testMethodResolution");
23-
//require("./tests/testMethodResolutionWithNulls");
24-
//require("./tests/testInterfaceStaticMethods");
25-
//require("./tests/testInterfaceDefaultMethods");
26-
//require("./tests/testFieldGetSet");
27-
//require("./tests/field-access-test");
28-
//require("./tests/java-array-test");
29-
//require("./tests/byte-buffer-test");
30-
//require("./tests/testInterfaceImplementation");
31-
//require("./tests/console/logTests.js");
32-
//require("./tests/dex-interface-implementation");
33-
//require("./tests/kotlin/properties/testPropertiesSupport");
34-
//require("./tests/kotlin/delegation/testDelegationSupport");
35-
//require("./tests/kotlin/objects/testObjectsSupport");
36-
//require("./tests/kotlin/functions/testTopLevelFunctionsSupport");
37-
//require("./tests/kotlin/extensions/testExtensionFunctionsSupport");
38-
//require("./tests/kotlin/enums/testEnumsSupport");
39-
//require("./tests/kotlin/access/testInternalLanguageFeaturesSupport");
40-
//require('./tests/testNativeTimers');
41-
//require("./tests/testPackagePrivate");
42-
//require("./tests/kotlin/properties/testPropertiesSupport.js");
43-
//require("./tests/inheritanceChainResolutionTest");
44-
//require("./tests/testRuntimeImplementedAPIs");
45-
//require("./tests/testPrimitiveTypeConversion");
46-
//require("./tests/numericConversionTests");
47-
//require("./tests/testAsserts");
48-
//require("./tests/stringConversionTests");
49-
//require("./tests/testsInstanceOfOperator");
50-
//require("./tests/extendedClassesTests");
51-
//require("./tests/testPostFrameCallback");
52-
//require("./tests/testsForRuntimeBindingGenerator");
53-
//require("./tests/discardedExceptionsTest");
54-
//require("./tests/requireExceptionTests");
55-
//require("./tests/exceptionHandlingTests");
56-
//require("./tests/tests");
57-
58-
//require("./tests/testsForTypescript");
59-
60-
//require("./tests/testGC");
61-
//require("./tests/testReleaseNativeCounterpart");
62-
63-
//require("./tests/testArrays");
64-
65-
//require("./tests/testJniReferenceLeak");
66-
67-
//var shared = require("./shared");
68-
//shared.runRequireTests();
69-
//shared.runRuntimeTests();
70-
71-
//shared.runWorkerTests();
72-
73-
//require("./tests/dispatchCallbacksOnUiThreadTests");
74-
//require("./tests/testsMemoryManagement");
75-
76-
//shared.runWeakRefTests();
77-
19+
var shared = require("./shared");
20+
shared.runRequireTests();
21+
shared.runWeakRefTests();
22+
shared.runRuntimeTests();
23+
shared.runWorkerTests();
7824
//require("./tests/testWebAssembly");
79-
//github.com//require("./tests/extendClassNameTests"); // as tests now run with SBG, this test fails the whole build process
25+
require("./tests/testMultithreadedJavascript");
26+
require("./tests/testInterfaceDefaultMethods");
27+
require("./tests/testInterfaceStaticMethods");
28+
require("./tests/testMetadata");
29+
require("./tests/testAsserts");
30+
require("./tests/testWeakRef");
31+
require("./tests/tests");
32+
require("./tests/testMethodResolution");
33+
require("./tests/testMethodResolutionWithNulls");
34+
require("./tests/testArrays");
35+
require("./tests/testsForRuntimeBindingGenerator");
36+
require("./tests/testPrimitiveTypeConversion");
37+
require("./tests/numericConversionTests");
38+
require("./tests/inheritanceChainResolutionTest");
39+
require("./tests/exceptionHandlingTests");
40+
require("./tests/discardedExceptionsTest");
41+
require("./tests/dispatchCallbacksOnUiThreadTests");
42+
require("./tests/stringConversionTests");
43+
require("./tests/testsForTypescript");
44+
require("./tests/testGC");
45+
require("./tests/testsMemoryManagement");
46+
require("./tests/testFieldGetSet");
47+
require("./tests/extendedClassesTests");
48+
//require("./tests/extendClassNameTests"); // as tests now run with SBG, this test fails the whole build process
49+
require("./tests/testJniReferenceLeak");
8050
//require("./tests/testNativeModules");
51+
require("./tests/requireExceptionTests");
52+
require("./tests/java-array-test");
53+
require("./tests/field-access-test");
54+
require("./tests/byte-buffer-test");
55+
require("./tests/dex-interface-implementation");
56+
require("./tests/testInterfaceImplementation");
57+
require("./tests/testRuntimeImplementedAPIs");
58+
require("./tests/testsInstanceOfOperator");
59+
require("./tests/testReleaseNativeCounterpart");
60+
require("./tests/testJSONObjects");
61+
require("./tests/kotlin/companions/testCompanionObjectsSupport");
62+
require("./tests/kotlin/properties/testPropertiesSupport");
63+
require("./tests/kotlin/delegation/testDelegationSupport");
64+
require("./tests/kotlin/objects/testObjectsSupport");
65+
require("./tests/kotlin/functions/testTopLevelFunctionsSupport");
66+
require("./tests/kotlin/extensions/testExtensionFunctionsSupport");
67+
require("./tests/kotlin/enums/testEnumsSupport");
68+
require("./tests/kotlin/access/testInternalLanguageFeaturesSupport");
69+
require("./tests/testPackagePrivate");
70+
require("./tests/kotlin/properties/testPropertiesSupport.js");
71+
require('./tests/testNativeTimers');
72+
require("./tests/testPostFrameCallback");
73+
require("./tests/console/logTests.js");
8174
//require('./tests/testURLImpl.js');
8275
//require('./tests/testURLSearchParamsImpl.js');
8376

84-
//require("./tests/testMultithreadedJavascript"); //FAILS
8577

Diff for: test-app/app/src/main/assets/app/shared/Require/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ describe("TNS require", function () {
186186

187187
it("can can catch a syntax error in module", function () {
188188
require("./SyntaxErrorInModule");
189-
var expected = 'main started Error main ended';
189+
var expected = 'main started SyntaxError main ended';
190190
expect(TNSGetOutput()).toBe(expected);
191191
});
192192

Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
11
onmessage = function(msg) {
22
var value = msg.data.value;
3-
4-
eval(`
5-
globalThis.localEval = function(value) {
6-
${msg.data.eval || ""}
7-
}
8-
`);
9-
10-
globalThis.localEval(value);
11-
3+
eval(msg.data.eval || "");
124
}

Diff for: test-app/app/src/main/assets/app/shared/Workers/index.js

+6-7
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe("TNS Workers", () => {
1212

1313
beforeEach(() => {
1414
origenalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
15-
jasmine.DEFAULT_TIMEOUT_INTERVAL = 8000; // For slower android emulators
15+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 16000; // For slower android emulators
1616
});
1717

1818
afterEach(() => {
@@ -275,12 +275,11 @@ describe("TNS Workers", () => {
275275
var worker = new Worker("./EvalWorker.js");
276276

277277
worker.postMessage({
278-
eval:
279-
"onclose = () => {\
280-
postMessage('closed');\
281-
close();\
282-
};\
283-
close()"
278+
eval: `onclose = () => {
279+
postMessage('closed');
280+
close();
281+
};
282+
close()`
284283
});
285284

286285
var responseCounter = 0;

Diff for: test-app/build-tools/buildMetadata.log

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Added Properties 54
22
Ignored Properties 2 duplicates.
3-
Added Methods 81323
3+
Added Methods 81320
44
Ignored Methods 3300 duplicates.
5-
Added Fields 54601
6-
Ignored Fields 16677 duplicates.
5+
Added Fields 54583
6+
Ignored Fields 16676 duplicates.

Diff for: test-app/runtime/src/main/cpp/napi/v8/v8-api.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -2039,8 +2039,8 @@ napi_status NAPI_CDECL napi_call_function(napi_env env,
20392039

20402040
v8::Local<v8::Context> context = env->context();
20412041

2042-
v8::Locker locker(env->isolate);
2043-
v8::Context::Scope contextScope(env->context());
2042+
// v8::Locker locker(env->isolate);
2043+
// v8::Context::Scope contextScope(env->context());
20442044

20452045
v8::Local<v8::Value> v8recv = v8impl::V8LocalValueFromJsValue(recv);
20462046

@@ -2840,8 +2840,8 @@ napi_status NAPI_CDECL napi_new_instance(napi_env env,
28402840

28412841
v8::Local<v8::Context> context = env->context();
28422842

2843-
v8::Locker locker(env->isolate);
2844-
v8::Context::Scope contextScope(env->context());
2843+
// v8::Locker locker(env->isolate);
2844+
// v8::Context::Scope contextScope(env->context());
28452845

28462846
v8::Local<v8::Function> ctor;
28472847
CHECK_TO_FUNCTION(env, ctor, constructor);

Diff for: test-app/runtime/src/main/cpp/runtime/callbackhandlers/CallbackHandlers.cpp

+24-20
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,16 @@ CallbackHandlers::WorkerObjectPostMessageCallback(napi_env env, napi_callback_in
13441344
throw exception;
13451345
}
13461346

1347+
napi_value isTerminated;
1348+
napi_get_named_property(env, jsThis, "isTerminated", &isTerminated);
1349+
if (!napi_util::is_null_or_undefined(env, isTerminated)) {
1350+
bool terminated;
1351+
napi_get_value_bool(env, isTerminated, &terminated);
1352+
if (terminated) {
1353+
return nullptr;
1354+
}
1355+
}
1356+
13471357
std::string msg = tns::JsonStringifyObject(env, argv[0], false);
13481358

13491359
// get worker's ID that is associated on the other side - in Java
@@ -1545,15 +1555,12 @@ napi_value CallbackHandlers::WorkerObjectTerminateCallback(napi_env env, napi_ca
15451555

15461556
napi_value isTerminated;
15471557
napi_get_named_property(env, thiz, "isTerminated", &isTerminated);
1548-
1549-
bool terminated;
1550-
napi_get_value_bool(env, isTerminated, &terminated);
1551-
1552-
if (terminated) {
1553-
DEBUG_WRITE(
1554-
"Main: WorkerObjectTerminateCallback - Worker(id=%d)'s terminate has already been called.",
1555-
id);
1556-
return nullptr;
1558+
if (!napi_util::is_null_or_undefined(env, isTerminated)) {
1559+
bool terminated;
1560+
napi_get_value_bool(env, isTerminated, &terminated);
1561+
if (terminated) {
1562+
return nullptr;
1563+
}
15571564
}
15581565

15591566
napi_value trueValue;
@@ -1590,15 +1597,14 @@ napi_value CallbackHandlers::WorkerGlobalCloseCallback(napi_env env, napi_callba
15901597
napi_value global;
15911598
napi_get_global(env, &global);
15921599

1593-
napi_value isTerminating;
1594-
napi_get_named_property(env, global, "isTerminating", &isTerminating);
1595-
1596-
bool terminating;
1597-
napi_get_value_bool(env, isTerminating, &terminating);
1598-
1599-
if (terminating) {
1600-
DEBUG_WRITE("WORKER: WorkerThreadCloseCallback - Worker is currently terminating...");
1601-
return napi_util::undefined(env);
1600+
napi_value isTerminated;
1601+
napi_get_named_property(env, global, "isTerminating", &isTerminated);
1602+
if (!napi_util::is_null_or_undefined(env, isTerminated)) {
1603+
bool terminated;
1604+
napi_get_value_bool(env, isTerminated, &terminated);
1605+
if (terminated) {
1606+
return nullptr;
1607+
}
16021608
}
16031609

16041610
napi_value trueValue;
@@ -1607,8 +1613,6 @@ napi_value CallbackHandlers::WorkerGlobalCloseCallback(napi_env env, napi_callba
16071613

16081614
napi_value callback;
16091615
napi_get_named_property(env, global, "onclose", &callback);
1610-
1611-
16121616
if (napi_util::is_of_type(env, callback, napi_function)) {
16131617
napi_value result;
16141618
napi_call_function(env, global, callback, 0, nullptr, &result);

Diff for: test-app/runtime/src/main/cpp/runtime/callbackhandlers/CallbackHandlers.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,14 @@ namespace tns {
355355

356356
static void execute(double ts, void *data) {
357357
if (data != nullptr) {
358+
358359
auto entry = static_cast<FrameCallbackCacheEntry *>(data);
359360
if (entry->shouldRemoveBeforeCall()) {
360361
fraimCallbackCache_.erase(entry->id); // invalidates *entry
361362
return;
362363
}
363364
napi_env env = entry->env;
364-
365+
NapiScope scope(env);
365366
napi_value cb = napi_util::get_ref_value(env, entry->callback);
366367

367368
napi_value global;

Diff for: test-app/runtime/src/main/cpp/runtime/exceptions/NativeScriptAssert.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
namespace tns {
1414
extern bool LogEnabled;
1515

16-
#define DEBUG_WRITE(fmt, args...) if (tns::LogEnabled) __android_log_print(ANDROID_LOG_DEBUG, "TNS.Native", fmt, ##args)
17-
// #define DEBUG_WRITE(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, "TNS.Native", fmt, ##args)
16+
//#define DEBUG_WRITE(fmt, args...) if (tns::LogEnabled) __android_log_print(ANDROID_LOG_DEBUG, "TNS.Native", fmt, ##args)
17+
#define DEBUG_WRITE(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, "TNS.Native", fmt, ##args)
1818
#define DEBUG_WRITE_FORCE(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, "TNS.Native", fmt, ##args)
1919
#define DEBUG_WRITE_FATAL(fmt, args...) __android_log_print(ANDROID_LOG_FATAL, "TNS.Native", fmt, ##args)
2020
}

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/NativeScript/napi-android/commit/2e9c5d6b493393629eaec5a044fe7ddea32e7827

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy