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

!1495 add second worker xts testcase

Merge pull request !1495 from yaojian16/master
......@@ -21,9 +21,8 @@ group("compileruntime") {
"uri_lib_standard:uri_js_test",
"url_lib_standard:url_js_test",
"util_lib_standard:util_js_test",
"worker_lib_standard:worker_js_hap",
"xml_lib_standard:xml_js_test",
# "worker_lib_standard:worker_js_hap",
]
}
}
......@@ -5,6 +5,10 @@
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 4,
"target": 5
}
},
"deviceConfig": {},
......
/*
* 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** d:\workspace\my_works\MyApplication\entry\src\main\ets\default\workers\WorkerDemo.js ***!
\********************************************************************************************/
function foo(x) {return x}
var worker = globalThis.requireNapi('worker');
const parentPort = worker.parentPort;
console.info("worker:: new version")
parentPort.onclose = function() {
console.info("worker::worker.js onclose");
}
parentPort.onmessage = function(e) {
var data = e.data;
console.info("worker:: worker thread worker data is " + data.data);
switch(data.type) {
case "normal":
console.info("worker:: worker thread receive data " + data.data);
parentPort.postMessage(data);
console.info("worker:: worker thread post back");
break;
case "error":
throw new Error("123");
break;
case "buffer":
console.info("worker:: worker.js receive buffer length is " + data.data.byteLength);
parentPort.postMessage(data, [data.data]);
console.info("worker:: worker.js post buffer length is " + data.data.byteLength);
break;
default:
console.info("worker:: worker.js receive unknow type");
break
}
}
// 反序列错误
parentPort.onmessageerror = function() {
console.info("worker:: worker.js onmessageerror");
}
// js执行异常
parentPort.onerror = function(data) {
console.info("worker:: worker.js onerror " + data.lineno + ", msg = " + data.message + ", filename = " + data.filename + ", colno = " + data.colno);
}
/******/ })()
;
\ 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;
console.info("worker:: new version")
parentPort.onclose = function() {
console.info("worker::worker.js onclose");
}
parentPort.onmessage = function(e) {
var data = e.data;
console.info("worker:: worker thread worker data is " + data.data);
switch(data.type) {
case "normal":
console.info("worker:: worker thread receive data " + data.data);
parentPort.postMessage(data);
console.info("worker:: worker thread post back");
break;
case "error":
throw new Error("123");
break;
case "buffer":
console.info("worker:: worker.js receive buffer length is " + data.data.byteLength);
parentPort.postMessage(data, [data.data]);
console.info("worker:: worker.js post buffer length is " + data.data.byteLength);
break;
default:
console.info("worker:: worker.js receive unknow type");
break
}
}
// 反序列错误
parentPort.onmessageerror = function() {
console.info("worker:: worker.js onmessageerror");
}
// js执行异常
parentPort.onerror = function(data) {
console.info("worker:: worker.js onerror " + data.lineno + ", msg = " + data.message + ", filename = " + data.filename + ", colno = " + data.colno);
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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) {
console.log("worker:: worker receive data " + e.data);
var data = e.data + " worker";
parentPort.postMessage(data)
}
/******/ })()
;
\ 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:: worker receive data " + e.data);
var data = e.data + " worker";
parentPort.postMessage(data)
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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) {
var data = e.data * 2 + 1
parentPort.postMessage(data)
}
/******/ })()
;
\ 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 * 2 + 1
parentPort.postMessage(data)
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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) {
var data = e.data;
data.message = "hello world " + "worker"
parentPort.postMessage(data)
}
/******/ })()
;
\ 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.message = "hello world " + "worker"
parentPort.postMessage(data)
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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.postMessage(name)
}
/******/ })()
;
\ 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) {
parentPort.postMessage(name)
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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.postMessage("hello world")
}
/******/ })()
;
\ 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) {
parentPort.postMessage("hello world")
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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) {
throw new Error(123)
}
/******/ })()
;
\ 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) {
throw new Error(123)
}
\ 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.
*/
/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!********************************************************************************************!*\
!*** 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.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;
parentPort.onmessage = function(e) {
parentPort.close()
}
/*
* 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 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import worker from "@ohos.worker"
import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
const parentPort = worker.parentPort;
describe('appInfoTest', function () {
it('app_info_test_001', 0, function () {
var info = app.getInfo()
expect(info.versionName).assertEqual('1.0.0')
expect(info.versionCode).assertEqual('1000000')
})
})
\ No newline at end of file
parentPort.onmessage = function(e) {
console.log("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_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
/*
* 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.
*/
require('./ExampleJsunit.test.js')
/*
* 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.
*/
require("./Worker.test.js")
\ 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.
*/
// @ts-nocheck
import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
//import worker from "@ohos.worker";
var worker = globalThis.requireNapi('worker');
describe('workerTest', function () {
afterAll(function () {
console.info('total case over')
})
function promiseCase() {
let p = new Promise(function (resolve, reject) {
setTimeout(function () {
resolve()
}, 100);
}).then(undefined, (error) => {
})
return p
}
// check worker constructor is ok
it('worker_constructor_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js")
expect(ss != null).assertTrue()
})
it('worker_constructor_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js",{name:"second worker",shared:"False"})
expect(ss != null).assertTrue()
})
it('worker_constructor_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js",{type:"classic",name:"second worker",shared:"false"})
expect(ss != null).assertTrue()
})
it('worker_constructor_test_004', 0, function () {
var ss = new worker.Worker("workers/worker.js",{type:"classic",name:"third worker",shared:"true"})
expect(ss != null).assertTrue()
})
// check postMessage is ok
// main post "hello world", will receive "hello world worker"
it('worker_postMessage_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_002.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("hello world worker")
done()
})
// check postMessage is ok
// main post 12 , will receive 12 * 2 + 1
it('worker_postMessage_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_003.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage(12)
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(25)
done()
})
// check postMessage is ok
// main post {message:"hello world"} , will receive {message:"hello world worker"}
it('worker_postMessage_test_003', 0, async function (done) {
var ss = new worker.Worker("workers/worker_004.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data.message;
flag = true
}
ss.postMessage({"message":"hello world"})
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("hello world worker")
done()
})
// check worker name is ok
it('worker_postMessage_test_004', 0, async function (done) {
var ss = new worker.Worker("workers/worker_005.js", {name: "zhangsan"});
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("zhangsan")
done()
})
// check worker transfer buffer is ok
it('worker_postMessage_test_005', 0, function () {
var ss = new worker.Worker("workers/worker_006.js");
const buffer = new ArrayBuffer(8)
expect(buffer.byteLength).assertEqual(8)
ss.postMessage(buffer, [buffer])
expect(buffer.byteLength).assertEqual(0)
})
// check worker handle error is ok
it('worker_postMessage_test_006', 0, async function (done) {
var ss = new worker.Worker("workers/worker_007.js");
var res = undefined
var flag = false
ss.onerror = function (e) {
res = e.message;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("Error: 123")
done()
})
// check worker terminate is ok
it('worker_terminate_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
// check worker terminate is ok
it('worker_terminate_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
// Repeated execution terminate
ss.terminate()
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
// check worker terminate is ok
it('worker_terminate_test_003', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
ss.onmessage = function (e) {
res++;
}
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
ss.postMessage("hello world")
await promiseCase()
expect(res).assertEqual(1)
done()
})
// check worker on function is ok
it('worker_on_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
})
// check worker on function is ok
it('worker_on_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times--;
})
ss.on("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(0)
})
// check worker on function is ok
it('worker_on_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
console.log("times " + times);
expect(times).assertEqual(10)
})
// check worker once function is ok
it('worker_once_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
})
// check worker once function is ok
it('worker_once_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
expect(times).assertEqual(1)
})
it('worker_once_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times--;
})
ss.once("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(0)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(2)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
ss.addEventListener("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(2)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
expect(times).assertEqual(10)
})
// check worker off function is ok
it('worker_off_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.on("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
ss.off("zhangsan")
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
})
// check worker off function is ok
it('worker_off_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.on("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
for (var i=0;i<3;i++)
{
ss.off("zhangsan")
}
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
})
// check worker removeEventListener function is ok
it('worker_removeListener_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
ss.removeEventListener("zhangsan")
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
})
// check worker removeEventListener function is ok
it('worker_removeListener_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
for (var i=0;i<3;i++)
{
ss.removeEventListener("zhangsan")
}
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
})
// check worker removeAllListener function is ok
it('worker_removeListener_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
var lisi_times = 0;
ss.addEventListener("lisi", ()=>{
lisi_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
ss.dispatchEvent({type: "lisi"})
ss.dispatchEvent({type: "lisi"})
expect(lisi_times).assertEqual(2)
ss.removeAllListener()
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
ss.dispatchEvent({type: "lisi"})
ss.dispatchEvent({type: "lisi"})
expect(lisi_times).assertEqual(2)
})
// check parentPort.close is ok
it('worker_parentPortClose_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
ss.onmessage = function (e) {
res++;
}
ss.postMessage("abc")
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++;
}
ss1.postMessage("abc")
await promiseCase()
expect(res).assertEqual(0)
ss2.addEventListener("zhangsan", ()=>{
times++;
})
ss2.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
done()
})
// check parentPort.close is ok
it('worker_parentPortClose_test_004', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onexit = function () {
flag = true
}
ss.onmessage = function (e) {
res++;
}
ss.postMessage("abc")
while (!flag) {
await promiseCase()
}
ss.postMessage("hello")
await promiseCase()
expect(res).assertEqual(0)
done()
})
// check onmessageerror is ok
it('worker_onmessageerror_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onexit = function () {
flag = true
}
ss.onmessageerror = function (e) {
res++;
}
ss.postMessage("abc")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(0)
done()
})
// check onmessageerror is ok
it('worker_onmessageerror_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onmessageerror = function (e) {
flag = true;
res++;
}
function foo() {
}
ss.postMessage(foo)
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
/*
* 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.
*/
// @ts-nocheck
import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
import worker from "@ohos.worker";
describe('workerTest', function () {
afterAll(function () {
console.info('total case over')
})
function promiseCase() {
let p = new Promise(function (resolve, reject) {
setTimeout(function () {
resolve()
}, 100);
}).then(undefined, (error) => {
})
return p
}
// check worker constructor is ok
it('worker_constructor_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js")
expect(ss != null).assertTrue()
})
it('worker_constructor_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js",{name:"second worker",shared:"False"})
expect(ss != null).assertTrue()
})
it('worker_constructor_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js",{type:"classic",name:"second worker",shared:"false"})
expect(ss != null).assertTrue()
})
it('worker_constructor_test_004', 0, function () {
var ss = new worker.Worker("workers/worker.js",{type:"classic",name:"third worker",shared:"true"})
expect(ss != null).assertTrue()
})
// check postMessage is ok
// main post "hello world", will receive "hello world worker"
it('worker_postMessage_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_002.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("hello world worker")
done()
})
// check postMessage is ok
// main post 12 , will receive 12 * 2 + 1
it('worker_postMessage_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_003.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage(12)
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(25)
done()
})
// check postMessage is ok
// main post {message:"hello world"} , will receive {message:"hello world worker"}
it('worker_postMessage_test_003', 0, async function (done) {
var ss = new worker.Worker("workers/worker_004.js");
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data.message;
flag = true
}
ss.postMessage({"message":"hello world"})
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("hello world worker")
done()
})
// check worker name is ok
it('worker_postMessage_test_004', 0, async function (done) {
var ss = new worker.Worker("workers/worker_005.js", {name: "zhangsan"});
var res = undefined
var flag = false
ss.onmessage = function (e) {
res = e.data;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("zhangsan")
done()
})
// check worker transfer buffer is ok
it('worker_postMessage_test_005', 0, function () {
var ss = new worker.Worker("workers/worker_006.js");
const buffer = new ArrayBuffer(8)
expect(buffer.byteLength).assertEqual(8)
ss.postMessage(buffer, [buffer])
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
it('worker_postMessage_test_006', 0, async function (done) {
var ss = new worker.Worker("workers/worker_007.js");
var res = undefined
var flag = false
ss.onerror = function (e) {
res = e.message;
flag = true
}
ss.postMessage("hello world")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual("Error: 123")
done()
})
// check worker terminate is ok
it('worker_terminate_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
// check worker terminate is ok
it('worker_terminate_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
// Repeated execution terminate
ss.terminate()
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
// check worker terminate is ok
it('worker_terminate_test_003', 0, async function (done) {
var ss = new worker.Worker("workers/worker.js");
var res = 0
var flag = false
ss.onexit = function () {
flag = true
res++;
}
ss.onmessage = function (e) {
res++;
}
ss.terminate()
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
ss.postMessage("hello world")
await promiseCase()
expect(res).assertEqual(1)
done()
})
// check worker on function is ok
it('worker_on_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
})
// check worker on function is ok
it('worker_on_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times--;
})
ss.on("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(0)
})
// check worker on function is ok
it('worker_on_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.on("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
console.log("times " + times);
expect(times).assertEqual(10)
})
// check worker once function is ok
it('worker_once_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(1)
})
// check worker once function is ok
it('worker_once_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
expect(times).assertEqual(1)
})
it('worker_once_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.once("zhangsan", ()=>{
times--;
})
ss.once("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(0)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(times).assertEqual(2)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
ss.addEventListener("lisi", ()=>{
times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "lisi"})
expect(times).assertEqual(2)
})
// check worker addEventListener function is ok
it('worker_addEventListener_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var times = 0;
ss.addEventListener("zhangsan", ()=>{
times++;
})
for (var i=0;i<10;i++)
{
ss.dispatchEvent({type: "zhangsan"})
}
expect(times).assertEqual(10)
})
// check worker off function is ok
it('worker_off_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.on("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
ss.off("zhangsan")
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
})
// check worker off function is ok
it('worker_off_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.on("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
for (var i=0;i<3;i++)
{
ss.off("zhangsan")
}
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
})
// check worker removeEventListener function is ok
it('worker_removeListener_test_001', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
ss.removeEventListener("zhangsan")
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(1)
})
// check worker removeEventListener function is ok
it('worker_removeListener_test_002', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
for (var i=0;i<3;i++)
{
ss.removeEventListener("zhangsan")
}
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
})
// check worker removeAllListener function is ok
it('worker_removeListener_test_003', 0, function () {
var ss = new worker.Worker("workers/worker.js");
var zhangsan_times = 0;
ss.addEventListener("zhangsan", ()=>{
zhangsan_times++;
})
var lisi_times = 0;
ss.addEventListener("lisi", ()=>{
lisi_times++;
})
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
ss.dispatchEvent({type: "lisi"})
ss.dispatchEvent({type: "lisi"})
expect(lisi_times).assertEqual(2)
ss.removeAllListener()
ss.dispatchEvent({type: "zhangsan"})
ss.dispatchEvent({type: "zhangsan"})
expect(zhangsan_times).assertEqual(2)
ss.dispatchEvent({type: "lisi"})
ss.dispatchEvent({type: "lisi"})
expect(lisi_times).assertEqual(2)
})
// check parentPort.close is ok
it('worker_parentPortClose_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onexit = function (e) {
res++;
flag = true;
}
ss.postMessage("abc")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
done()
})
// check parentPort.close is ok
it('worker_parentPortClose_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onexit = function () {
flag = true
}
ss.onmessage = function (e) {
res++;
}
ss.postMessage("abc")
while (!flag) {
await promiseCase()
}
ss.postMessage("hello")
await promiseCase()
expect(res).assertEqual(0)
done()
})
// check onmessageerror is ok
it('worker_onmessageerror_test_001', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onexit = function () {
flag = true
}
ss.onmessageerror = function (e) {
res++;
}
ss.postMessage("abc")
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(0)
done()
})
// check onmessageerror is ok
it('worker_onmessageerror_test_002', 0, async function (done) {
var ss = new worker.Worker("workers/worker_008.js");
var res = 0
var flag = false;
ss.onmessageerror = function (e) {
flag = true;
res++;
}
function foo() {
}
ss.postMessage(foo)
while (!flag) {
await promiseCase()
}
expect(res).assertEqual(1)
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.
先完成此消息的编辑!
想要评论请 注册