未验证 提交 e773db36 编写于 作者: O openharmony_ci 提交者: Gitee

!1495 add second worker xts testcase

Merge pull request !1495 from yaojian16/master
...@@ -21,9 +21,8 @@ group("compileruntime") { ...@@ -21,9 +21,8 @@ group("compileruntime") {
"uri_lib_standard:uri_js_test", "uri_lib_standard:uri_js_test",
"url_lib_standard:url_js_test", "url_lib_standard:url_js_test",
"util_lib_standard:util_js_test", "util_lib_standard:util_js_test",
"worker_lib_standard:worker_js_hap",
"xml_lib_standard:xml_js_test", "xml_lib_standard:xml_js_test",
# "worker_lib_standard:worker_js_hap",
] ]
} }
} }
...@@ -5,6 +5,10 @@ ...@@ -5,6 +5,10 @@
"version": { "version": {
"code": 1000000, "code": 1000000,
"name": "1.0.0" "name": "1.0.0"
},
"apiVersion": {
"compatible": 4,
"target": 5
} }
}, },
"deviceConfig": {}, "deviceConfig": {},
......
...@@ -13,24 +13,16 @@ ...@@ -13,24 +13,16 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
function foo(x) {return x}
var worker = globalThis.requireNapi('worker'); console.info("worker:: new version")
const parentPort = worker.parentPort; parentPort.onclose = function() {
console.info("worker:: new version")
parentPort.onclose = function() {
console.info("worker::worker.js onclose"); console.info("worker::worker.js onclose");
} }
parentPort.onmessage = function(e) { parentPort.onmessage = function(e) {
var data = e.data; var data = e.data;
console.info("worker:: worker thread worker data is " + data.data); console.info("worker:: worker thread worker data is " + data.data);
switch(data.type) { switch(data.type) {
...@@ -51,16 +43,14 @@ ...@@ -51,16 +43,14 @@
console.info("worker:: worker.js receive unknow type"); console.info("worker:: worker.js receive unknow type");
break break
} }
} }
// 反序列错误 // 反序列错误
parentPort.onmessageerror = function() { parentPort.onmessageerror = function() {
console.info("worker:: worker.js onmessageerror"); console.info("worker:: worker.js onmessageerror");
} }
// js执行异常 // js执行异常
parentPort.onerror = function(data) { parentPort.onerror = function(data) {
console.info("worker:: worker.js onerror " + data.lineno + ", msg = " + data.message + ", filename = " + data.filename + ", colno = " + data.colno); console.info("worker:: worker.js onerror " + data.lineno + ", msg = " + data.message + ", filename = " + data.filename + ", colno = " + data.colno);
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,20 +13,11 @@ ...@@ -13,20 +13,11 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
console.log("worker:: run script");
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
console.log("worker:: worker receive data " + e.data); console.log("worker:: worker receive data " + e.data);
var data = e.data + " worker"; var data = e.data + " worker";
parentPort.postMessage(data) parentPort.postMessage(data)
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,18 +13,10 @@ ...@@ -13,18 +13,10 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
var data = e.data * 2 + 1 var data = e.data * 2 + 1
parentPort.postMessage(data) parentPort.postMessage(data)
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,19 +13,11 @@ ...@@ -13,19 +13,11 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
var data = e.data; var data = e.data;
data.message = "hello world " + "worker" data.message = "hello world " + "worker"
parentPort.postMessage(data) parentPort.postMessage(data)
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,17 +13,9 @@ ...@@ -13,17 +13,9 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
parentPort.postMessage(name) parentPort.postMessage(name)
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,17 +13,9 @@ ...@@ -13,17 +13,9 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
parentPort.postMessage("hello world") parentPort.postMessage("hello world")
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,17 +13,9 @@ ...@@ -13,17 +13,9 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
throw new Error(123) throw new Error(123)
} }
/******/ })() \ No newline at end of file
;
\ No newline at end of file
...@@ -13,17 +13,9 @@ ...@@ -13,17 +13,9 @@
* limitations under the License. * limitations under the License.
*/ */
/******/ (() => { // webpackBootstrap import worker from '@ohos.worker';
var __webpack_exports__ = {}; const parentPort = worker.parentPort;
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort; parentPort.onmessage = function(e) {
parentPort.onmessage = function(e) {
parentPort.close() parentPort.close()
} }
/******/ })()
;
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0091.js");
console.log("worker:: workerxx ");
parentPort.postMessage(ss != null);
break;
default:
break;
}
}
\ No newline at end of file
...@@ -12,14 +12,10 @@ ...@@ -12,14 +12,10 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import worker from "@ohos.worker"
import app from '@system.app' const parentPort = worker.parentPort;
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
describe('appInfoTest', function () { parentPort.onmessage = function(e) {
it('app_info_test_001', 0, function () { console.log("worker:: onmessage");
var info = app.getInfo() }
expect(info.versionName).assertEqual('1.0.0') \ No newline at end of file
expect(info.versionCode).assertEqual('1000000')
})
})
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0101.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.postMessage(data.value);
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue);
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
parentPort.onmessage = function(e) {
var data = e.data; // 12
parentPort.postMessage(data * 2 + 1); // 25
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0111.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.onexit = function(code) {
backValue = "terminate";
flag = true;
}
ss.postMessage(data.value);
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue);
}
break;
case "terminate":
flag = false;
ss.terminate();
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
parentPort.onmessage = function(e) {
console.log("worker:: onmessage")
parentPort.postMessage("terminate");
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0121.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.postMessage({type: "new"});
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue);
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0122.js");
parentPort.postMessage(ss != null)
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
console.log("worker:: thrid worker onmessage")
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0131.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.postMessage(data.value);
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue);
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
parentPort.onmessage = function(e) {
var data = e.data; // hello world
parentPort.postMessage(data + " worker"); // hello world worker
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0141.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.postMessage(data.value);
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue);
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
parentPort.onmessage = function(e) {
var data = e.data;
data[0] += 1
parentPort.postMessage(data); // [2, 2]
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0151.js");
ss.onmessage = function(ee) {
backValue = ee.data; // 16
flag = true;
}
ss.postMessage({type: "new", value: data.value + 1}); // 11
break;
case "wait":
ss.postMessage({type: "wait"});
if (flag) {
parentPort.postMessage(backValue); // 16
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
var ss = undefined;
var backValue = undefined;
var flag = false;
parentPort.onmessage = function(e) {
var data = e.data;
switch(data.type) {
case "new":
ss = new worker.Worker("workers/worker_0152.js");
ss.onmessage = function(ee) {
backValue = ee.data;
flag = true;
}
ss.postMessage(data.value + 2); // 13
break;
case "wait":
if (flag) {
parentPort.postMessage(backValue); // 16
}
break;
default:
break;
}
}
\ No newline at end of file
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* 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.
*/
import worker from "@ohos.worker"
const parentPort = worker.parentPort;
parentPort.onmessage = function(e) {
var data = e.data;
parentPort.postMessage(data + 3); // 16
}
\ No newline at end of file
...@@ -13,5 +13,4 @@ ...@@ -13,5 +13,4 @@
* limitations under the License. * limitations under the License.
*/ */
require('./ExampleJsunit.test.js')
require("./Worker.test.js") require("./Worker.test.js")
\ No newline at end of file
/* /*
* Copyright (C) 2021 Huawei Device Co., Ltd. * Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the 'License')
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an 'AS IS' BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
...@@ -16,8 +16,7 @@ ...@@ -16,8 +16,7 @@
// @ts-nocheck // @ts-nocheck
import app from '@system.app' import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
//import worker from "@ohos.worker"; import worker from "@ohos.worker";
var worker = globalThis.requireNapi('worker');
describe('workerTest', function () { describe('workerTest', function () {
...@@ -146,7 +145,22 @@ describe('workerTest', function () { ...@@ -146,7 +145,22 @@ describe('workerTest', function () {
const buffer = new ArrayBuffer(8) const buffer = new ArrayBuffer(8)
expect(buffer.byteLength).assertEqual(8) expect(buffer.byteLength).assertEqual(8)
ss.postMessage(buffer, [buffer]) ss.postMessage(buffer, [buffer])
expect(buffer.byteLength).assertEqual(0) var length = undefined;
var exception = undefined;
try {
length = buffer.byteLength;
} catch (e) {
exception = e.message;
}
console.log("worker:: length is " + length)
console.log("worker:: exception is " + exception)
if (typeof exception == "undefined") {
expect(length).assertEqual(0)
} else {
expect(exception).assertEqual("IsDetachedBuffer")
}
}) })
// check worker handle error is ok // check worker handle error is ok
...@@ -464,6 +478,7 @@ describe('workerTest', function () { ...@@ -464,6 +478,7 @@ describe('workerTest', function () {
ss.dispatchEvent({type: "zhangsan"}) ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2) expect(zhangsan_times).assertEqual(2)
}) })
// check worker removeAllListener function is ok // check worker removeAllListener function is ok
...@@ -502,65 +517,23 @@ describe('workerTest', function () { ...@@ -502,65 +517,23 @@ describe('workerTest', function () {
it('worker_parentPortClose_test_001', 0, async function (done) { it('worker_parentPortClose_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js"); var ss = new worker.Worker("workers/worker_008.js");
var res = 0 var res = 0
var flag = false;
ss.onmessage = function (e) { ss.onexit = function (e) {
res++; res++;
flag = true;
} }
ss.postMessage("abc") ss.postMessage("abc")
while (!flag) {
await promiseCase() await promiseCase()
expect(res).assertEqual(0)
done()
})
// check parentPort.close is ok
it('worker_parentPortClose_test_002', 0, async function (done) {
var ss1 = new worker.Worker("workers/worker_008.js");
var ss2 = new worker.Worker("workers/worker_008.js");
var res = 0
var times = 0
ss1.onmessage = function (e) {
res++;
}
ss1.postMessage("abc")
await promiseCase()
expect(res).assertEqual(0)
ss2.postMessage("hello world")
await promiseCase()
expect(res).assertEqual(0)
done()
})
// check parentPort.close is ok
it('worker_parentPortClose_test_003', 0, async function (done) {
var ss1 = new worker.Worker("workers/worker_008.js");
var ss2 = new worker.Worker("workers/worker_008.js");
var res = 0
var times = 0
ss1.onmessage = function (e) {
res++;
} }
expect(res).assertEqual(1)
ss1.postMessage("abc")
await promiseCase()
expect(res).assertEqual(0)
ss2.addEventListener("zhangsan", ()=>{
times++;
})
ss2.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
done() done()
}) })
// check parentPort.close is ok // check parentPort.close is ok
it('worker_parentPortClose_test_004', 0, async function (done) { it('worker_parentPortClose_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js"); var ss = new worker.Worker("workers/worker_008.js");
var res = 0 var res = 0
var flag = false; var flag = false;
...@@ -625,4 +598,183 @@ describe('workerTest', function () { ...@@ -625,4 +598,183 @@ describe('workerTest', function () {
expect(res).assertEqual(1) expect(res).assertEqual(1)
done() done()
}) })
// check new second worker is ok
it('worker_new_second_worker_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_009.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.postMessage({type: "new", value: 12})
while (!flag) {
console.log("worker:: foo wait")
await promiseCase();
}
console.log("worker:: " + res)
expect(res).assertTrue();
done();
})
// check new third worker is ok
it('worker_new_second_worker_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_012.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: 12});
while (!flag) {
console.log("worker:: worker_second_worker_postMessage_test_001 wait");
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res).assertTrue();
done();
})
// check second worker postMessage number is ok
it('worker_second_worker_postMessage_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_010.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: 12});
while (!flag) {
console.log("worker:: worker_second_worker_postMessage_test_001 wait");
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res).assertEqual(25);
done();
})
// check second worker postMessage string is ok
it('worker_second_worker_postMessage_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_013.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: "hello world"});
while (!flag) {
console.log("worker:: worker_second_worker_postMessage_test_002 wait")
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res).assertEqual("hello world worker");
done();
})
// check second worker postMessage array is ok
it('worker_second_worker_postMessage_test_003', 0, async function (done) {
var ss = new worker.Worker("workers/worker_014.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: [1, 2]});
while (!flag) {
console.log("worker:: worker_second_worker_postMessage_test_003 wait")
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res[0]).assertEqual(2);
expect(res[1]).assertEqual(2);
done();
})
// check third worker postMessage is ok
it('worker_second_worker_postMessage_test_004', 0, async function (done) {
var ss = new worker.Worker("workers/worker_015.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: 10});
while (!flag) {
console.log("worker:: worker_second_worker_postMessage_test_003 wait")
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res).assertEqual(16);
done();
})
// check second worker terminate is ok
it('worker_second_worker_terminate_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_011.js");
var flag = false;
var res = undefined;
ss.onmessage = function (e) {
flag = true;
res = e.data;
}
ss.onerror = function(ee) {
console.log("worker:: " + ee.message)
}
ss.postMessage({type: "new", value: 12});
while (!flag) {
ss.postMessage({type: "wait"});
await promiseCase();
}
flag = false;
ss.postMessage({type: "terminate"});
while (!flag) {
ss.postMessage({type: "wait"});
await promiseCase();
}
expect(res).assertEqual("terminate");
done();
})
}) })
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册