From ff5b448bc16943608d482f3cd94f0ff38de926f7 Mon Sep 17 00:00:00 2001 From: Lzq05 Date: Tue, 26 Sep 2023 08:13:28 +0000 Subject: [PATCH 1/2] =?UTF-8?q?[=E6=B5=8B=E8=AF=95]:=20CI=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=EF=BC=8C=E8=AF=B7=E5=8B=BF=E5=90=88=E5=85=A5=EF=BC=81?= =?UTF-8?q?=EF=BC=81=EF=BC=812023/9/26=20[=E6=B5=8B=E8=AF=95]:=20CI?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=8C=E8=AF=B7=E5=8B=BF=E5=90=88=E5=85=A5?= =?UTF-8?q?=EF=BC=81=EF=BC=81=EF=BC=812023/9/26?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lzq05 --- test/AACommand.test.ets | 277 +++++ test/Ability.test.ets | 1868 ++++++++++++++++++++++++++++++++ test/abilityLifeCycle.test.ets | 522 +++++++++ 3 files changed, 2667 insertions(+) create mode 100644 test/AACommand.test.ets create mode 100644 test/Ability.test.ets create mode 100644 test/abilityLifeCycle.test.ets diff --git a/test/AACommand.test.ets b/test/AACommand.test.ets new file mode 100644 index 0000000..f4bf4fe --- /dev/null +++ b/test/AACommand.test.ets @@ -0,0 +1,277 @@ + +/* + * Copyright (c) 2022 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 { describe, it, expect } from '@ohos/hypium' + +export default function abilityTest() { + describe('AACommandTest', function () { + /** + * @tc.number: ACTS_AACommand_finishTest_01_0100 + * @tc.name: Each parameter of the test command is valid, and the finishTest interface is called + * in AsyncCallback mode. + * The msg parameter is valid (including Chinese and special characters) and the code parameter + * is valid (1). + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0100', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_0100 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0200 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid (null) and the code parameter is valid (1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0200', 0, async function (done) { + done(); + var code = globalThis.abilityDelegator.finishTest(null, 1,()=>{ + console.log(" ACTS_AACommand_finish_01_0200 finishTest test end ========> callback " ) + expect().assertFail(); + }) + setTimeout(() => { + console.log('ACTS_AACommand_finish_01_0200 code:'+JSON.stringify(code)) + if(code!=undefined){ + console.log('ACTS_AACommand_finish_01_0200 start failed') + expect().assertFail(); + } + }, 3000) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0300 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid (Undefined) and the code parameter is valid (1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0300', 0, async function (done) { + var code = globalThis.abilityDelegator.finishTest(undefined, 1,()=>{ + console.log(" ACTS_AACommand_finish_01_0300 finishTest test end ========> callback " ) + expect().assertFail(); + }) + setTimeout(() => { + console.log('ACTS_AACommand_finish_01_0300 code:'+JSON.stringify(code)) + if(code!=undefined){ + console.log('ACTS_AACommand_finish_01_0300 start failed') + expect().assertFail(); + } + done(); + }, 3000) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0400 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter + * is valid (Number.MAX_VALUE) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0400', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_0400 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0500 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter + * is valid (Number.MIN_VALUE) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0500', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_0500 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0600 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter + * is valid (Number.MAX_VALUE+1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0600', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_0600 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0700 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter + * is valid (Number.MIN_VALUE-1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0700', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_0700 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0800 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback + * mode. The msg parameter is invalid(including Chinese and special characters) and the + * code parameter is valid (“ABCD”) + * @tc.desc: Verify that the process of the test framework is not stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0800', 0, async function (done) { + done(); + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log(" ACTS_AACommand_finish_01_0800 finishTest test end ========> callback " ) + expect().assertFail(); + }) + + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_0900 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_0900', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?> { + console.log("ACTS_AACommand_finish_01_0900 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1000 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is invalid(null) and the code parameter is valid (1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1000', 0, async function (done) { + done() + globalThis.abilityDelegator.finishTest(null, 1) + + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1100 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is invalid(undefined) and the code parameter is valid (1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1100', 0, async function (done) { + done() + globalThis.abilityDelegator.finishTest(undefined, 1) + + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1200 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (Number.MAX_VALUE) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1200', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_1200 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1300 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (Number.MIN_VALUE) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1300', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_1300 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1400 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (Number.MAX_VALUE+1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1400', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_1400 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1500 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (Number.MIN_VALUE-1) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1500', 0, async function (done) { + var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ + console.log("ACTS_AACommand_finish_01_1500 finishTest test end ========> callback " ) + done() + }) + }) + + /** + * @tc.number: ACTS_AACommand_finishTest_01_1600 + * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise + * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter + * is valid (ABCD) + * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. + */ + it('ACTS_AACommand_finish_01_1600', 0, async function (done) { + var code = null + var msg = '测试日志!@#$%^&*()_+QWE{}|?> { + console.log('ACTS_AACommand_finish_01_1600 code:'+JSON.stringify(code)) + if(code!=undefined){ + console.log('ACTS_AACommand_finish_01_1600 start failed') + expect().assertFail(); + } + done(); + }, 3000) + }) + }) +}; + diff --git a/test/Ability.test.ets b/test/Ability.test.ets new file mode 100644 index 0000000..8806c1c --- /dev/null +++ b/test/Ability.test.ets @@ -0,0 +1,1868 @@ +/* + * Copyright (C) 2023 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 hilog from '@ohos.hilog'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import mindSporeLite from '@ohos.ai.mindSporeLite'; +import fs from '@ohos.file.fs'; +//@ts-nocheck +export default function abilityTest() { + describe('ActsAbilityTest', function () { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(function () { + let dir = globalThis.abilityContext.filesDir + "/"; + try { + let ml_face_model_file = dir + "ml_face_isface.ms"; + globalThis.context.resourceManager.getRawFileContent("ml_face_isface.ms", (error, model_buffer) => { + if (error != null) { + //getRawFileDescriptor运行失败 + console.log( + "[rawfile_copy_to_sandbox] ml_face_isface.ms is copy " + + "failed:${error.code}, message: ${error.message}."); + } else { + //getRawFileDescriptor运行成功 + let file = fs.openSync(ml_face_model_file, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + fs.writeSync(file.fd, model_buffer.buffer); + fs.closeSync(file); + console.log("[rawfile_copy_to_sandbox] ml_face_isface.ms is copy success"); + } + }); + let mnet_caffemodel_bin_file = dir + "ml_face_isface_0.input"; + globalThis.context.resourceManager.getRawFileContent("ml_face_isface_0.input", (error, model_buffer) => { + if (error != null) { + //getRawFileDescriptor运行失败 + console.log( + "[rawfile_copy_to_sandbox] ml_face_isface_0.input is copy " + + "failed:${error.code}, message: ${error.message}."); + } else { + //getRawFileDescriptor运行成功 + let file = fs.openSync(mnet_caffemodel_bin_file, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + fs.writeSync(file.fd, model_buffer.buffer); + fs.closeSync(file); + console.log("[rawfile_copy_to_sandbox] ml_face_isface_0.input is copy success"); + } + }); + + let ml_ocr_model_file = dir + "ml_ocr_cn.ms"; + globalThis.context.resourceManager.getRawFileContent("ml_ocr_cn.ms", (error, model_buffer) => { + if (error != null) { + //getRawFileDescriptor运行失败 + console.log( + "[rawfile_copy_to_sandbox] ml_ocr_cn.ms is copy " + + "failed:${error.code}, message: ${error.message}."); + } else { + //getRawFileDescriptor运行成功 + let file = fs.openSync(ml_ocr_model_file, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); + fs.writeSync(file.fd, model_buffer.buffer); + fs.closeSync(file); + console.log("[rawfile_copy_to_sandbox] ml_ocr_cn.ms is copy success"); + } + }); + + } catch (error) { + console.info("[rawfile_copy_to_sandbox] getRawFileDescriptor api run failed" + error); + } + + console.info("[rawfile_copy_to_sandbox] sandbox path:" + dir); + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(async function () { + let dir = globalThis.abilityContext.filesDir + "/"; + + let ml_face_model = dir + "ml_face_isface.ms"; + await fs.access(ml_face_model).then(async (res) => { + if (res) { + console.info("ml_face_isface.ms file exists"); + } + }).catch((err) => { + console.info("ml_face_isface.ms file does not exists! access failed with error message: " + + err.message + ", error code: " + err.code); + }); + + let mnet_caffemodel_bin_file = dir + "ml_face_isface_0.input"; + await fs.access(mnet_caffemodel_bin_file).then(async (res) => { + if (res) { + console.info("ml_face_isface_0.input file exists"); + } + }).catch((err) => { + console.info("ml_face_isface_0.input file does not exist! access failed with error message: " + + err.message + ", error code: " + err.code); + }); + + let ml_ocr_model = dir + "ml_ocr_cn.ms"; + await fs.access(ml_ocr_model).then(async (res) => { + if (res) { + console.info("ml_ocr_cn.ms file exists"); + } + }).catch((err) => { + console.info("ml_ocr_cn.ms file does not exists! access failed with error message: " + + err.message + ", error code: " + err.code); + }); + + + + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(function () { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(function () { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + // 正常场景:ModelBuild,调用buffer方法,正常推理 + it('Test_load_model_param_model_buffer', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_buffer"); + let modelName = 'ml_face_isface.ms'; + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let modelBuffer = await syscontext.resourceManager.getRawFileContent(modelName); + let context: mindSporeLite.Context = {}; + context.target = ["cpu", "nnrt"]; + context.nnrt = {}; + context.cpu = {}; + context.cpu.threadNum = 1; + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + context.cpu.precisionMode = "preferred_fp16"; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + let msliteModel = await mindSporeLite.loadModelFromBuffer(modelBuffer.buffer, context) + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + + // 正常场景:ModelBuild,调用fd方法,正常推理 + it('Test_load_model_param_model_fd', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_fd"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + console.log('=========MSLITE loadModel start====='); + let file = fs.openSync(model_file, fs.OpenMode.READ_ONLY); + let msliteModel = await mindSporeLite.loadModelFromFd(file.fd); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + // 正常场景:ModelBuild,调用loadModelFromFile方法,正常推理 + it('Test_load_model_param_model_path', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu", "nnrt"]; + context.nnrt = {}; + context.cpu = {}; + context.cpu.threadNum = 1; + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + context.cpu.precisionMode = "preferred_fp16"; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + console.log('=========MSLITE loadModel start====='); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + //正常场景:Context设置CPU,4线程 + it('Test_load_model_param_model_path_settings_threads_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_threads_001"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 4, + } + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + //正常场景:Context设置CPU,2线程 + it('Test_load_model_param_model_path_settings_threads_002', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_threads_002"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 2, + } + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + //正常场景:Context设置CPU,1线程 + it('Test_load_model_param_model_path_settings_threads_003', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_threads_003"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength) + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 1, + } + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + //正常场景:Context设置CPU,0线程 + it('Test_load_model_param_model_path_settings_threads_004', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_threads_004"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 0, + } + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + //异常场景:Context设置CPU,绑核设置为3,绑核失败 + it('Test_load_model_param_model_path_settings_affinity_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_affinity_001"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu={}; + context.cpu.threadAffinityMode = 3; + console.log("MSLITE api test: set threadAffinityMode=3."); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + ///异常场景:Context设置CPU,绑核设置为2,绑小核 + it('Test_load_model_param_model_path_settings_affinity_002', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_affinity_002"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu={}; + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.LITTLE_CORES_FIRST; + console.log("MSLITE api test: set threadAffinityMode=2."); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + //异常场景:Context设置CPU,绑核设置为1,绑大核 + it('Test_load_model_param_model_path_settings_affinity_003', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_affinity_003"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength) + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu={}; + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + console.log("MSLITE api test: set threadAffinityMode=1."); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + //正常场景:Context设置CPU,绑核设置为0,不绑核 + it('Test_load_model_param_model_path_settings_affinity_004', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_affinity_004"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu={}; + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.NO_AFFINITIES; + console.log("MSLITE api test: set threadAffinityMode=0."); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + + //正常场景:Context设置CPU,绑核列表[0,1,2,3] + it('Test_load_model_param_model_path_settings_affinity_list_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_settings_affinity_list_001"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu={}; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + console.log("MSLITE api test: set threadAffinityCoreList=[0, 1, 2, 3]."); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + //异常场景:ModelBuild,调用model path方法,path为空 + it('Test_load_model_param_model_path_is_None_001',0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_is_None_001"); + let model_file = ""; + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + console.log('=========MSLITE loadModel end====='); + expect(msliteModel).assertUndefined(); + done(); + }) + + + //异常场景:ModelBuild,调用buffer方法,modelBuffer为None + it('Test_load_model_param_model_buffer_is_None_001',0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_buffer_is_None_001"); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + let msliteModel = await mindSporeLite.loadModelFromBuffer(null, context); + console.log('=========MSLITE loadModel end====='); + expect(msliteModel).assertUndefined(); + done(); + }) + + + //异常场景:ModelBuild,context为null + it('Test_load_model_param_model_path_context_is_None_001',0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_context_is_None_001"); + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let context:mindSporeLite.Context=null; + let msliteModel = await mindSporeLite.loadModelFromFile(model_file, context); + expect(msliteModel).assertUndefined(); + console.log('=========MSLITE loadModel end====='); + done(); + }) + + // 正常场景:ModelResize,shape与之前一致 + it('Test_load_model_param_model_path_resize_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_resize_001"); + let inputName = 'ml_ocr_cn_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_ocr_cn.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,32,512,1"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("16384"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("65536"); + console.log('=========MSLITE resize start====='); + let new_dim = new Array([1, 32, 512, 1]); + let resize_result = msliteModel.resize(modelInputs, new_dim); + expect(resize_result).assertTrue(); + console.log('=========MSLITE resize success====='); + const modelInputs2 = msliteModel.getInputs(); + let input_name2 = modelInputs2[0].name; + console.log(input_name2.toString()); + expect(input_name2.toString()).assertEqual("data"); + let input_shape2 = modelInputs2[0].shape; + console.log(input_shape2.toString()); + expect(input_shape2.toString()).assertEqual("1,32,512,1"); + let input_elementNum2 = modelInputs2[0].elementNum; + console.log(input_elementNum2.toString()); + expect(input_elementNum2.toString()).assertEqual("16384"); + let input_dtype2 = modelInputs2[0].dtype; + console.log(input_dtype2.toString()); + expect(input_dtype2).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format2 = modelInputs2[0].format; + console.log(input_format2.toString()); + expect(input_format2).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize2 = modelInputs2[0].dataSize; + console.log(input_dataSize2.toString()); + expect(input_dataSize2.toString()).assertEqual("65536"); + modelInputs2[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs2); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 正常场景:ModelResize,shape与之前不一致 + it('Test_load_model_param_model_path_resize_002', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_resize_002"); + let inputName = 'ml_ocr_cn_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_ocr_cn.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,32,512,1"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("16384"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("65536"); + console.log('=========MSLITE resize start====='); + let new_dim = new Array([1,64,256,1]); + let resize_result = msliteModel.resize(modelInputs, new_dim); + expect(resize_result).assertTrue(); + console.log('=========MSLITE resize success====='); + const modelInputs2 = msliteModel.getInputs(); + let input_name2 = modelInputs2[0].name; + console.log(input_name2.toString()); + expect(input_name2.toString()).assertEqual("data"); + let input_shape2 = modelInputs2[0].shape; + console.log(input_shape2.toString()); + expect(input_shape2.toString()).assertEqual("1,64,256,1"); + let input_elementNum2 = modelInputs2[0].elementNum; + console.log(input_elementNum2.toString()); + expect(input_elementNum2.toString()).assertEqual("16384"); + let input_dtype2 = modelInputs2[0].dtype; + console.log(input_dtype2.toString()); + expect(input_dtype2).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format2 = modelInputs2[0].format; + console.log(input_format2.toString()); + expect(input_format2).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize2 = modelInputs2[0].dataSize; + console.log(input_dataSize2.toString()); + expect(input_dataSize2.toString()).assertEqual("65536"); + modelInputs2[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs2); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 异常场景:ModelResize,shape为三维 + it('Test_load_model_param_model_path_resize_003', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_resize_003"); + let inputName = 'ml_ocr_cn_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_ocr_cn.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,32,512,1"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("16384"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("65536"); + console.log('=========MSLITE resize start====='); + let new_dim = new Array([1,32,1]); + let resize_result = msliteModel.resize(modelInputs, new_dim); + expect(resize_result).assertFalse; + console.log('=========MSLITE resize failed====='); + }) + + + // 异常场景:ModelResize,不支持resize的模型 + it('Test_load_model_param_model_path_resize_004', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_resize_004"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + console.log(modelInputs[0].shape.toString()); + expect(modelInputs[0].shape.toString()).assertEqual("1,48,48,3"); + console.log(modelInputs[0].elementNum.toString()); + expect(modelInputs[0].elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + console.log('=========MSLITE resize start====='); + let new_dim = new Array([1,96,96,1]); + let resize_result = msliteModel.resize(modelInputs, new_dim); + expect(resize_result).assertFalse(); + console.log('=========MSLITE resize failed====='); + }) + + + // 异常场景:ModelResize,shape值有负数 + it('Test_load_model_param_model_path_resize_005', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_resize_005"); + let inputName = 'ml_ocr_cn_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_ocr_cn.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,32,512,1"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("16384"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("65536"); + console.log('=========MSLITE resize start====='); + let new_dim = new Array([1,-32,32,1]); + let resize_result = msliteModel.resize(modelInputs, new_dim); + expect(resize_result).assertFalse(); + console.log('=========MSLITE resize failed====='); + }) + + + // 正常场景:Build一次,Predict多次 + it('Test_load_model_param_model_path_much_predict_001',0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_much_predict_001"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let num = 0; + for (var i = 0; i < 10; i++) { + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var z = 0; z < 2; z++) { + console.log(output0[z].toString()); + expect(output0[z].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + console.log('=========i.toString()====='); + console.log(i.toString()); + ++num; + console.log('=========num.toString()====='); + console.log(num.toString()); + } + }) + + + // 异常场景:Build多次 + it('Test_load_model_param_model_path_much_build_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_much_build_001"); + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + for (var i = 0; i < 10; i++) { + mindSporeLite.loadModelFromFile(model_file); + } + let msliteModel = await mindSporeLite.loadModelFromFile(model_file); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 正常场景:单输入模型 + it('Test_load_model_param_model_path_model_001', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_model_001"); + let modelName = 'ml_face_isface.ms'; + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let modelBuffer = await syscontext.resourceManager.getRawFileContent(modelName); + let msliteModel = await mindSporeLite.loadModelFromBuffer(modelBuffer.buffer); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + console.log(modelInputs[0].shape.toString()); + expect(modelInputs[0].shape.toString()).assertEqual("1,48,48,3"); + console.log(modelInputs[0].elementNum.toString()); + expect(modelInputs[0].elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + let Inputs2 = new Float32Array(modelInputs[0].getData()); + for (var i = 0; i < 5; i++) { + console.log(Inputs2[i].toString()); + + } + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 正常场景:多输入模型 + it('Test_load_model_param_model_path_model_002', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_model_002"); + let modelName = 'ml_video_edit_face_cutout_portraitSeg_deconv.ms'; + let inputName01 = 'ml_video_edit_face_cutout_portraitSeg_deconv_0.input'; + let inputName02 = 'ml_video_edit_face_cutout_portraitSeg_deconv_1.input'; + let syscontext = globalThis.context; + let inputBuffer01 = await syscontext.resourceManager.getRawFileContent(inputName01); + let inputBuffer02 = await syscontext.resourceManager.getRawFileContent(inputName02); + console.log('=========MSLITE success, input01 bin bytelength: ' + inputBuffer01.byteLength); + console.log('=========MSLITE success, input02 bin bytelength: ' + inputBuffer02.byteLength); + let modelBuffer = await syscontext.resourceManager.getRawFileContent(modelName); + let msliteModel = await mindSporeLite.loadModelFromBuffer(modelBuffer.buffer); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + console.log(modelInputs[0].name); + expect(modelInputs[0].name.toString()).assertEqual("a"); + console.log(modelInputs[0].shape.toString()); + expect(modelInputs[0].shape.toString()).assertEqual("1,512,512,3"); + console.log(modelInputs[0].elementNum.toString()); + expect(modelInputs[0].elementNum.toString()).assertEqual("786432"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("3145728"); + + console.log(modelInputs[1].name); + expect(modelInputs[1].name.toString()).assertEqual("b"); + console.log(modelInputs[1].shape.toString()); + expect(modelInputs[1].shape.toString()).assertEqual("1,512,512,1"); + console.log(modelInputs[1].elementNum.toString()); + expect(modelInputs[1].elementNum.toString()).assertEqual("262144"); + console.log(modelInputs[1].dtype.toString()); + expect(modelInputs[1].dtype.toString()).assertEqual("43"); + console.log(modelInputs[1].format.toString()); + expect(modelInputs[1].format.toString()).assertEqual("1"); + console.log(modelInputs[1].dataSize.toString()); + expect(modelInputs[1].dataSize.toString()).assertEqual("1048576"); + modelInputs[0].setData(inputBuffer01.buffer); + modelInputs[1].setData(inputBuffer02.buffer); + let Inputs2 = new Float32Array(modelInputs[0].getData()); + for (var i = 0; i < 5; i++) { + console.log(Inputs2[i].toString()); + } + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + + // 正常场景:输入为uint8模型 + it('Test_load_model_param_model_path_model_003', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_model_003"); + let modelName = 'aiy_vision_classifier_plants_V1_3.ms'; + let inputName = 'aiy_vision_classifier_plants_V1_3_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + let modelBuffer = await syscontext.resourceManager.getRawFileContent(modelName); + let msliteModel = await mindSporeLite.loadModelFromBuffer(modelBuffer.buffer); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + console.log(modelInputs[0].name); + expect(modelInputs[0].name.toString()).assertEqual("module/hub_input/images_uint8"); + console.log(modelInputs[0].shape.toString()); + expect(modelInputs[0].shape.toString()).assertEqual("1,224,224,3"); + console.log(modelInputs[0].elementNum.toString()); + expect(modelInputs[0].elementNum.toString()).assertEqual("150528"); + console.log(modelInputs[0].dtype.toString()); + expect(modelInputs[0].dtype.toString()).assertEqual("37"); + console.log(modelInputs[0].format.toString()); + expect(modelInputs[0].format.toString()).assertEqual("1"); + console.log(modelInputs[0].dataSize.toString()); + expect(modelInputs[0].dataSize.toString()).assertEqual("150528"); + modelInputs[0].setData(inputBuffer.buffer); + let Inputs2 = new Uint8Array(modelInputs[0].getData()); + for (var i = 0; i < 5; i++) { + console.log(Inputs2[i].toString()); + } + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Uint8Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 正常场景:多输入单输出 + it('Test_load_model_param_model_path_model_004', 0, async function () { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_model_004"); + let modelName = 'ml_headpose_pb2tflite.ms'; + let inputName01 = 'ml_headpose_pb2tflite_0.input'; + let inputName02 = 'ml_headpose_pb2tflite_1.input'; + let inputName03 = 'ml_headpose_pb2tflite_2.input'; + let syscontext = globalThis.context + let inputBuffer01 = await syscontext.resourceManager.getRawFileContent(inputName01); + let inputBuffer02 = await syscontext.resourceManager.getRawFileContent(inputName02); + let inputBuffer03 = await syscontext.resourceManager.getRawFileContent(inputName03); + console.log('=========MSLITE success, input01 bin bytelength: ' + inputBuffer01.byteLength); + console.log('=========MSLITE success, input02 bin bytelength: ' + inputBuffer02.byteLength); + console.log('=========MSLITE success, input03 bin bytelength: ' + inputBuffer03.byteLength); + let modelBuffer = await syscontext.resourceManager.getRawFileContent(modelName); + let msliteModel = await mindSporeLite.loadModelFromBuffer(modelBuffer.buffer); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + console.log(modelInputs[0].name); + expect(modelInputs[0].name.toString()).assertEqual("input_1"); + console.log(modelInputs[0].shape.toString()); + expect(modelInputs[0].shape.toString()).assertEqual("1,64,64,3"); + console.log(modelInputs[0].elementNum.toString()); + expect(modelInputs[0].elementNum.toString()).assertEqual("12288"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("49152"); + + console.log(modelInputs[1].name); + expect(modelInputs[1].name.toString()).assertEqual("batch_normalization_8/batchnorm/add"); + console.log(modelInputs[1].shape.toString()); + expect(modelInputs[1].shape.toString()).assertEqual("16"); + console.log(modelInputs[1].elementNum.toString()); + expect(modelInputs[1].elementNum.toString()).assertEqual("16"); + console.log(modelInputs[1].dtype.toString()); + expect(modelInputs[1].dtype.toString()).assertEqual("43"); + console.log(modelInputs[1].format.toString()); + expect(modelInputs[1].format.toString()).assertEqual("1"); + console.log(modelInputs[1].dataSize.toString()); + expect(modelInputs[1].dataSize.toString()).assertEqual("64"); + + console.log(modelInputs[2].name); + expect(modelInputs[2].name.toString()).assertEqual("batch_normalization_1/batchnorm/add"); + console.log(modelInputs[2].shape.toString()); + expect(modelInputs[2].shape.toString()).assertEqual("16"); + console.log(modelInputs[2].elementNum.toString()); + expect(modelInputs[2].elementNum.toString()).assertEqual("16"); + console.log(modelInputs[2].dtype.toString()); + expect(modelInputs[2].dtype.toString()).assertEqual("43"); + console.log(modelInputs[2].format.toString()); + expect(modelInputs[2].format.toString()).assertEqual("1"); + console.log(modelInputs[2].dataSize.toString()); + expect(modelInputs[2].dataSize.toString()).assertEqual("64"); + modelInputs[0].setData(inputBuffer01.buffer); + modelInputs[1].setData(inputBuffer02.buffer); + modelInputs[2].setData(inputBuffer03.buffer); + let Inputs2 = new Float32Array(modelInputs[0].getData()); + for (var i = 0; i < 5; i++) { + console.log(Inputs2[i].toString()); + } + console.log('=========MSLITE predict start====='); + let modelOutputs = await msliteModel.predict(modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + }) + + + // 正常场景:调用loadModelFromFile callback接口设置context + it('Test_load_model_param_model_path_callback', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_callback"); + function load_model_from_file() { + return new Promise((resolve) => { + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let context: mindSporeLite.Context = {}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 4, + } + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + context.cpu.precisionMode = "preferred_fp16"; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + mindSporeLite.loadModelFromFile(model_file, context, (msliteModel) => { + resolve(msliteModel); + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_file(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + + // 正常场景:调用loadModelFromBuffer callback接口设置context + it('Test_load_model_param_model_buffer_callback', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_buffer_callback"); + function load_model_from_buffer() { + return new Promise((resolve) => { + let modelName = 'ml_face_isface.ms'; + syscontext.resourceManager.getRawFileContent(modelName).then((model_buffer) => { + let modelBuffer = model_buffer + let context: mindSporeLite.Context = {}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 4, + } + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + context.cpu.precisionMode = "preferred_fp16"; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + mindSporeLite.loadModelFromBuffer(modelBuffer.buffer, context, (msliteModel) => { + resolve(msliteModel); + }) + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_buffer(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + + // 正常场景:调用loadModelFromFd callback接口设置context + it('Test_load_model_param_model_fd_callback', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_fd_callback"); + function load_model_from_fd() { + return new Promise((resolve) => { + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let file = fs.openSync(model_file, fs.OpenMode.READ_ONLY); + let context:mindSporeLite.Context={}; + context.target = ["cpu"]; + context.cpu = { + "threadNum": 4, + } + context.cpu.threadAffinityMode = mindSporeLite.ThreadAffinityMode.BIG_CORES_FIRST; + context.cpu.precisionMode = "preferred_fp16"; + context.cpu.threadAffinityCoreList = [0, 1, 2, 3]; + mindSporeLite.loadModelFromFd(file.fd, context, (msliteModel) => { + resolve(msliteModel); + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_fd(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + + // 正常场景:调用loadModelFromFile callback接口未设置context + it('Test_load_model_param_model_path_callback_no_context', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_path_callback_no_context"); + function load_model_from_file() { + return new Promise((resolve) => { + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + mindSporeLite.loadModelFromFile(model_file, (msliteModel) => { + resolve(msliteModel); + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_file(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + + // 正常场景:调用loadModelFromBuffer callback接口未设置context + it('Test_load_model_param_model_buffer_callback_no_context', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_buffer_callback_no_context"); + function load_model_from_buffer() { + return new Promise((resolve) => { + let modelName = 'ml_face_isface.ms'; + syscontext.resourceManager.getRawFileContent(modelName).then((model_buffer) => { + let modelBuffer = model_buffer + mindSporeLite.loadModelFromBuffer(modelBuffer.buffer, (msliteModel) => { + resolve(msliteModel); + }) + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_buffer(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3") + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + + // 正常场景:调用loadModelFromFd callback接口未设置context + it('Test_load_model_param_model_fd_callback_no_context', 0, async function (done) { + console.log("MSLITE api test: loadModel param model file.Test_load_model_param_model_fd_callback_no_context"); + function load_model_from_fd() { + return new Promise((resolve) => { + let model_file = globalThis.abilityContext.filesDir + '/' + 'ml_face_isface.ms'; + let file = fs.openSync(model_file, fs.OpenMode.READ_ONLY); + mindSporeLite.loadModelFromFd(file.fd, (msliteModel) => { + resolve(msliteModel); + }) + }) + } + function case_predict(msliteModel, modelInputs) { + return new Promise((resolve) => { + msliteModel.predict(modelInputs, (modelOutputs) => { + resolve(modelOutputs); + }) + }) + } + let inputName = 'ml_face_isface_0.input'; + let syscontext = globalThis.context; + let inputBuffer = await syscontext.resourceManager.getRawFileContent(inputName); + console.log('=========MSLITE success, input bin bytelength: ' + inputBuffer.byteLength); + console.log('=========MSLITE loadModel start====='); + let msliteModel = null; + msliteModel = await load_model_from_fd(); + expect(msliteModel !== null).assertTrue(); + console.log('=========MSLITE loadModel end====='); + const modelInputs = msliteModel.getInputs(); + let input_name = modelInputs[0].name; + console.log(input_name.toString()); + expect(input_name.toString()).assertEqual("data"); + let input_shape = modelInputs[0].shape; + console.log(input_shape.toString()); + expect(input_shape.toString()).assertEqual("1,48,48,3"); + let input_elementNum = modelInputs[0].elementNum; + console.log(input_elementNum.toString()); + expect(input_elementNum.toString()).assertEqual("6912"); + let input_dtype = modelInputs[0].dtype; + console.log(input_dtype.toString()); + expect(input_dtype).assertEqual(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32); + let input_format = modelInputs[0].format; + console.log(input_format.toString()); + expect(input_format).assertEqual(mindSporeLite.Format.NHWC); + let input_dataSize = modelInputs[0].dataSize; + console.log(input_dataSize.toString()); + expect(input_dataSize.toString()).assertEqual("27648"); + modelInputs[0].setData(inputBuffer.buffer); + console.log('=========MSLITE predict start====='); + let modelOutputs = await case_predict(msliteModel, modelInputs); + expect(modelOutputs !== null).assertTrue(); + console.log('=========MSLITE new Float32Array start====='); + let output0 = new Float32Array(modelOutputs[0].getData()); + expect(output0.length).assertLarger(0); + console.log('output0.length:' + output0.length); + for (var i = 0; i < 2; i++) { + console.log(output0[i].toString()); + expect(output0[i].toString() !== null).assertTrue(); + } + const modelInputs0 = msliteModel.getInputs(); + console.log(modelInputs0[0].name.toString()); + console.log('=========MSLITE new Float32Array end====='); + done(); + }) + + // 正常场景:头文件枚举值测试 + it('Test_enumerated_value', 0, async function (done) { + try{ + expect(mindSporeLite.Format.NCHW).assertEqual(0); + expect(mindSporeLite.Format.NHWC).assertEqual(1); + expect(mindSporeLite.Format.NHWC4).assertEqual(2); + expect(mindSporeLite.Format.HWKC).assertEqual(3); + expect(mindSporeLite.Format.HWCK).assertEqual(4); + expect(mindSporeLite.Format.KCHW).assertEqual(5); + expect(mindSporeLite.Format.DEFAULT_FORMAT).assertEqual(-1); + + expect(mindSporeLite.DataType.TYPE_UNKNOWN).assertEqual(0); + expect(mindSporeLite.DataType.NUMBER_TYPE_INT8).assertEqual(32); + expect(mindSporeLite.DataType.NUMBER_TYPE_INT16).assertEqual(33); + expect(mindSporeLite.DataType.NUMBER_TYPE_INT32).assertEqual(34); + expect(mindSporeLite.DataType.NUMBER_TYPE_INT64).assertEqual(35); + expect(mindSporeLite.DataType.NUMBER_TYPE_UINT8).assertEqual(37); + expect(mindSporeLite.DataType.NUMBER_TYPE_UINT16).assertEqual(38); + expect(mindSporeLite.DataType.NUMBER_TYPE_UINT32).assertEqual(39); + expect(mindSporeLite.DataType.NUMBER_TYPE_UINT64).assertEqual(40); + expect(mindSporeLite.DataType.NUMBER_TYPE_FLOAT16).assertEqual(42); + expect(mindSporeLite.DataType.NUMBER_TYPE_FLOAT32).assertEqual(43); + expect(mindSporeLite.DataType.NUMBER_TYPE_FLOAT64).assertEqual(44); + done() + } catch (error) { + console.info("The enumerated are changed:" + error) + done() + } + }) + + }) +} \ No newline at end of file diff --git a/test/abilityLifeCycle.test.ets b/test/abilityLifeCycle.test.ets new file mode 100644 index 0000000..766aade --- /dev/null +++ b/test/abilityLifeCycle.test.ets @@ -0,0 +1,522 @@ +/* + * Copyright (c) 2023 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 +//@ts-nocheck +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "@ohos/hypium"; +import aConstant from '@ohos.app.ability.AbilityConstant' + +function sleep(time) { + return new Promise((resolve) => setTimeout(resolve, time)); +} +//@ts-ignore +const moduleName = "entry_test"; +export default function abilityTest() { + describe("ActsAbilityLifeCycleTest", function () { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(function () { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(function () { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(function () { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(function () { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + + let TAG = ""; + const otherBundle = "com.example.commontestabilityapp"; + + /** + *@tc.number : UI_ABILITY_CONTEXT_TEST_0001 + *@tc.name : UI_Ability_Context_Test_0001 + *@tc.desc : Test context. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + //it("UI_Ability_Context_Test_0001", 0, async (done) => { + console.log("------------UI_ABILITY_CONTEXT_TEST_0001 START-------------"); + TAG = "UI_ABILITY_CONTEXT_TEST_0001"; + expect(globalThis.abilityContext != null).assertTrue(); + done(); + }); + + /** + *@tc.number : UI_ABILITY_CONTEXT_TEST_0002 + *@tc.name : UI_Ability_Context_Test_0002 + *@tc.desc : Test context. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Context_Test_0002", 0, async (done) => { + console.log("------------UI_ABILITY_CONTEXT_TEST_0002 START-------------"); + TAG = "UI_ABILITY_CONTEXT_TEST_0002"; + expect(globalThis.abilityContext != null).assertTrue(); + expect(globalThis.abilityContext.startAbility != null).assertTrue(); + done(); + }); + + /** + *@tc.number : UI_ABILITY_CONTEXT_TEST_0003 + *@tc.name : UIAbilityContextTest_0003 + *@tc.desc : Test context. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UIAbilityContextTest_0003", 0, async (done) => { + console.log("------------UI_ABILITY_CONTEXT_TEST_0003 START-------------"); + TAG = "UI_ABILITY_CONTEXT_TEST_0003"; + expect(globalThis.abilityContext != null).assertTrue(); + expect(globalThis.abilityContext.terminateSelf != null).assertTrue(); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0001 + *@tc.name : UI_Ability_Life_Cycle_Test_0001 + *@tc.desc : Only start 'MainAbility2', MainAbility2 will terminate self after 1.5 seconds. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0001", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0001 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0001"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility2", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + // MainAbility2在1.5秒后,会终结自己,等待2.5s, 确保MainAbility2终结完自己 + await sleep(2500); + + const result2 = globalThis.list2; + console.info("result2: " + JSON.stringify(result2)); + + expect(result2[0]).assertEqual("MainAbility2 onCreate"); + expect(result2[1]).assertEqual("MainAbility2 onWindowStageCreate"); + expect(result2[2]).assertEqual("MainAbility2 onForeground"); + expect(result2[3]).assertEqual("MainAbility2 onBackground"); + expect(result2[4]).assertEqual("MainAbility2 onWindowStageDestroy"); + expect(result2[5]).assertEqual("MainAbility2 onDestroy"); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0002 + *@tc.name : UI_Ability_Life_Cycle_Test_0002 + *@tc.desc : Only start 'MainAbility1' + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0002", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0002 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0002"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility1", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(2500); + + const result1 = globalThis.list1; + console.info("result1: " + JSON.stringify(result1)); + + expect(result1[0]).assertEqual("MainAbility1 onCreate"); + expect(result1[1]).assertEqual("MainAbility1 onWindowStageCreate"); + expect(result1[2]).assertEqual("MainAbility1 onForeground"); + + globalThis.ability1context.terminateSelf(); + await sleep(1000); + expect(result1[3]).assertEqual("MainAbility1 onBackground"); + expect(result1[4]).assertEqual("MainAbility1 onWindowStageDestroy"); + expect(result1[5]).assertEqual("MainAbility1 onDestroy"); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0003 + *@tc.name : UI_Ability_Life_Cycle_Test_0003 + *@tc.desc : start 'MainAbility2', after MainAbility2 terminated, start MainAbility1, after 2 seconds, terminate MainAbility1. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0003", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0003 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0003"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility2", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + // MainAbility2在1.5秒后,会终结自己,等待2.5s, 确保MainAbility2终结完自己 + await sleep(2500); + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility1", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start MainAbility1 successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start MainAbility1 failed. Cause: " + JSON.stringify(error)); + }); + await sleep(2000); + globalThis.ability1context.terminateSelf(); + await sleep(1000); + + const result1 = globalThis.list1; + const result2 = globalThis.list2; + console.info("result1: " + JSON.stringify(result1)); + console.info("result2: " + JSON.stringify(result2)); + + expect(result2[0]).assertEqual("MainAbility2 onCreate"); + expect(result2[1]).assertEqual("MainAbility2 onWindowStageCreate"); + expect(result2[2]).assertEqual("MainAbility2 onForeground"); + expect(result2[3]).assertEqual("MainAbility2 onBackground"); + expect(result2[4]).assertEqual("MainAbility2 onWindowStageDestroy"); + expect(result2[5]).assertEqual("MainAbility2 onDestroy"); + + expect(result1[0]).assertEqual("MainAbility1 onCreate"); + expect(result1[1]).assertEqual("MainAbility1 onWindowStageCreate"); + expect(result1[2]).assertEqual("MainAbility1 onForeground"); + expect(result1[3]).assertEqual("MainAbility1 onBackground"); + expect(result1[4]).assertEqual("MainAbility1 onWindowStageDestroy"); + expect(result1[5]).assertEqual("MainAbility1 onDestroy"); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0004 + *@tc.name : UI_Ability_Life_Cycle_Test_0004 + *@tc.desc : start mainability1, after 1.5 seconds, start mainability2, after 1.5 seconds, mainability2 terminated. + after 1 seconds, terminate mainability1. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0004", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0004 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0004"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility1", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + // 1.5秒后打开MainAbility2 + await sleep(1500); + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility2", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(1000); + + const result1 = globalThis.list1; + console.info(TAG + "result1: " + JSON.stringify(result1)); + + // 启动mainability2后,mainability1将会切到后台 + expect(result1[0]).assertEqual("MainAbility1 onCreate"); + expect(result1[1]).assertEqual("MainAbility1 onWindowStageCreate"); + expect(result1[2]).assertEqual("MainAbility1 onForeground"); + expect(result1[3]).assertEqual("MainAbility1 onBackground"); + + // mainability2将会在1.5秒后,终结自己 + await sleep(2000); + const result2 = globalThis.list2; + console.info(TAG + "result2: " + JSON.stringify(result2)); + + expect(result2[0]).assertEqual("MainAbility2 onCreate"); + expect(result2[1]).assertEqual("MainAbility2 onWindowStageCreate"); + expect(result2[2]).assertEqual("MainAbility2 onForeground"); + expect(result2[3]).assertEqual("MainAbility2 onBackground"); + expect(result2[4]).assertEqual("MainAbility2 onWindowStageDestroy"); + expect(result2[5]).assertEqual("MainAbility2 onDestroy"); + + // mainability1将会重新唤起 + await sleep(1000); + console.info(TAG + "result1: " + JSON.stringify(result1)); + expect(result1[2]).assertEqual("MainAbility1 onForeground"); + + await sleep(1000); + globalThis.ability1context.terminateSelf(); + await sleep(1500); + console.info(TAG + "result1: " + JSON.stringify(result1)); + expect(result1[5]).assertEqual("MainAbility1 onBackground"); + expect(result1[6]).assertEqual("MainAbility1 onWindowStageDestroy"); + expect(result1[7]).assertEqual("MainAbility1 onDestroy"); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0005 + *@tc.name : UI_Ability_Life_Cycle_Test_0005 + *@tc.desc : start mainability1, after 1seconds, start other app mainability. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0005", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0005 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0005"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility1", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(1000); + + const result1 = globalThis.list1; + console.info(TAG + "result1: " + JSON.stringify(result1)); + + expect(result1[0]).assertEqual("MainAbility1 onCreate"); + expect(result1[1]).assertEqual("MainAbility1 onWindowStageCreate"); + expect(result1[2]).assertEqual("MainAbility1 onForeground"); + + var want = { + bundleName: otherBundle, + abilityName: "MainAbility", + moduleName: "entry_test", + }; + let otherAppResult = 0; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + otherAppResult = 1; + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(2000); + expect(otherAppResult == 1).assertTrue(); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0006 + *@tc.name : UI_Ability_Life_Cycle_Test_0006 + *@tc.desc : start mainability3, after start mainability3 twice, mainability3 is a standard ability. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Life_Cycle_Test_0006", 0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0006 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0006"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility3", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(1000); + + const result1 = globalThis.list3; + console.info(TAG + "result1: " + JSON.stringify(result1)); + + expect(result1[0]).assertEqual("MainAbility3 onCreate"); + expect(result1[1]).assertEqual("MainAbility3 onWindowStageCreate"); + expect(result1[2]).assertEqual("MainAbility3 onForeground"); + + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(1000); + const result2 = globalThis.list3; + console.info(TAG + "result2: " + JSON.stringify(result2)); + expect(result2[0]).assertEqual("MainAbility3 onCreate"); + expect(result2[1]).assertEqual("MainAbility3 onWindowStageCreate"); + expect(result2[2]).assertEqual("MainAbility3 onForeground"); + + globalThis.ability3context.terminateSelf(); + await sleep(500); + done(); + }); + + /** + *@tc.number : UI_ABILITY_LIFE_CYCLE_TEST_0007 + *@tc.name : UIAbilityLifeCycleTest0007 + *@tc.desc : start mainability1, after start mainability1 twice, mainability1 is a single ability. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it('UI_ABILITY_LIFE_CYCLE_TEST_0007',0, async (done) => { + console.log("------------UI_ABILITY_LIFE_CYCLE_TEST_0007 START-------------"); + TAG = "UI_ABILITY_LIFE_CYCLE_TEST_0007"; + + var want = { + "bundleName": "com.example.uiabilitylifecycle", + "abilityName": "MainAbility1", + "moduleName": moduleName + } + await globalThis.abilityContext.startAbility(want) + .then((data) => { + console.info(TAG + ' start successful. Data: ' + data); + }).catch((error) => { + console.error(TAG + ' start failed. Cause: ' + JSON.stringify(error)); + }) + + await sleep(2000); + + globalThis.abilityContext.startAbility(want) + .then((data) => { + console.info(TAG + ' start successful. Data: ' + data); + }).catch((error) => { + console.error(TAG + ' start failed. Cause: ' + JSON.stringify(error)); + }) + + await sleep(2000); + const result = globalThis.onNewWantStr; + console.info(TAG + 'result: ' + JSON.stringify(result)); + expect(result).assertEqual('MainAbility1 onNewWant'); + + globalThis.ability1context.terminateSelf(); + await sleep(500); + done(); + }) + + /** + *@tc.number : UI_Ability_Constant_Test_0100 + *@tc.name : UI_Ability_Constant_Test_0100 + *@tc.desc : start mainability1, check ability constant. + *@tc.size : MediumTest + *@tc.type : Function + *@tc.level : Level 1 + */ + it("UI_Ability_Constant_Test_0100", 0, async (done) => { + console.log("------------UI_Ability_Constant_Test_0100 START-------------"); + TAG = "UI_Ability_Constant_Test_0100"; + + var want = { + bundleName: "com.example.uiabilitylifecycle", + abilityName: "MainAbility1", + moduleName: moduleName, + }; + globalThis.abilityContext + .startAbility(want) + .then((data) => { + console.info(TAG + " start successful. Data: " + data); + }) + .catch((error) => { + console.error(TAG + " start failed. Cause: " + JSON.stringify(error)); + }); + + await sleep(1000); + + console.log('UI_Ability_Constant_Test_0100:' + globalThis.launchParam1.lastExitReason) + expect(globalThis.launchParam1.launchReason == 1).assertTrue(); + expect(globalThis.launchParam1.lastExitReason == 2).assertTrue(); + expect(aConstant.LaunchReason.UNKNOWN == 0).assertTrue(); + expect(aConstant.LastExitReason.UNKNOWN == 0).assertTrue(); + done(); + }); + + }); +} -- Gitee From f13ae17a5432ecd806b241e8188d44971d44d170 Mon Sep 17 00:00:00 2001 From: Lzq05 Date: Mon, 9 Oct 2023 02:07:54 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20test?= =?UTF-8?q?/AACommand.test.ets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/AACommand.test.ets | 277 ---------------------------------------- 1 file changed, 277 deletions(-) delete mode 100644 test/AACommand.test.ets diff --git a/test/AACommand.test.ets b/test/AACommand.test.ets deleted file mode 100644 index f4bf4fe..0000000 --- a/test/AACommand.test.ets +++ /dev/null @@ -1,277 +0,0 @@ - -/* - * Copyright (c) 2022 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 { describe, it, expect } from '@ohos/hypium' - -export default function abilityTest() { - describe('AACommandTest', function () { - /** - * @tc.number: ACTS_AACommand_finishTest_01_0100 - * @tc.name: Each parameter of the test command is valid, and the finishTest interface is called - * in AsyncCallback mode. - * The msg parameter is valid (including Chinese and special characters) and the code parameter - * is valid (1). - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0100', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_0100 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0200 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid (null) and the code parameter is valid (1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0200', 0, async function (done) { - done(); - var code = globalThis.abilityDelegator.finishTest(null, 1,()=>{ - console.log(" ACTS_AACommand_finish_01_0200 finishTest test end ========> callback " ) - expect().assertFail(); - }) - setTimeout(() => { - console.log('ACTS_AACommand_finish_01_0200 code:'+JSON.stringify(code)) - if(code!=undefined){ - console.log('ACTS_AACommand_finish_01_0200 start failed') - expect().assertFail(); - } - }, 3000) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0300 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid (Undefined) and the code parameter is valid (1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0300', 0, async function (done) { - var code = globalThis.abilityDelegator.finishTest(undefined, 1,()=>{ - console.log(" ACTS_AACommand_finish_01_0300 finishTest test end ========> callback " ) - expect().assertFail(); - }) - setTimeout(() => { - console.log('ACTS_AACommand_finish_01_0300 code:'+JSON.stringify(code)) - if(code!=undefined){ - console.log('ACTS_AACommand_finish_01_0300 start failed') - expect().assertFail(); - } - done(); - }, 3000) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0400 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter - * is valid (Number.MAX_VALUE) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0400', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_0400 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0500 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter - * is valid (Number.MIN_VALUE) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0500', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_0500 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0600 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter - * is valid (Number.MAX_VALUE+1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0600', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_0600 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0700 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid(including Chinese and special characters) and the code parameter - * is valid (Number.MIN_VALUE-1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0700', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_0700 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0800 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in AsyncCallback - * mode. The msg parameter is invalid(including Chinese and special characters) and the - * code parameter is valid (“ABCD”) - * @tc.desc: Verify that the process of the test framework is not stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0800', 0, async function (done) { - done(); - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log(" ACTS_AACommand_finish_01_0800 finishTest test end ========> callback " ) - expect().assertFail(); - }) - - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_0900 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_0900', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?> { - console.log("ACTS_AACommand_finish_01_0900 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1000 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is invalid(null) and the code parameter is valid (1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1000', 0, async function (done) { - done() - globalThis.abilityDelegator.finishTest(null, 1) - - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1100 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is invalid(undefined) and the code parameter is valid (1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1100', 0, async function (done) { - done() - globalThis.abilityDelegator.finishTest(undefined, 1) - - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1200 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (Number.MAX_VALUE) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1200', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_1200 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1300 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (Number.MIN_VALUE) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1300', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_1300 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1400 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (Number.MAX_VALUE+1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1400', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_1400 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1500 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (Number.MIN_VALUE-1) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1500', 0, async function (done) { - var msg = '测试日志!@#$%^&*()_+QWE{}|?>{ - console.log("ACTS_AACommand_finish_01_1500 finishTest test end ========> callback " ) - done() - }) - }) - - /** - * @tc.number: ACTS_AACommand_finishTest_01_1600 - * @tc.name: The parameters of the test command are valid, and the finishTest interface is called in Promise - * mode. The msg parameter is valid(including Chinese and special characters) and the code parameter - * is valid (ABCD) - * @tc.desc: Verify that the process of the test framework can be stopped by calling this interface. - */ - it('ACTS_AACommand_finish_01_1600', 0, async function (done) { - var code = null - var msg = '测试日志!@#$%^&*()_+QWE{}|?> { - console.log('ACTS_AACommand_finish_01_1600 code:'+JSON.stringify(code)) - if(code!=undefined){ - console.log('ACTS_AACommand_finish_01_1600 start failed') - expect().assertFail(); - } - done(); - }, 3000) - }) - }) -}; - -- Gitee