Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
89873429
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
89873429
编写于
3月 13, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 13, 2023
浏览文件
操作
浏览文件
下载
差异文件
!7840 故障恢复
Merge pull request !7840 from xinking129/master
上级
6a1cf8dd
a166fa94
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
435 addition
and
11 deletion
+435
-11
ability/ability_runtime/apprecovery/ActsAppRecoveryTestCaller/entry/src/main/ets/test/Ability.test.ets
...coveryTestCaller/entry/src/main/ets/test/Ability.test.ets
+435
-1
ability/ability_runtime/apprecovery/AppRecoveryRely/entry/src/main/ets/entryability/EntryAbility.ts
...overyRely/entry/src/main/ets/entryability/EntryAbility.ts
+0
-5
ability/ability_runtime/apprecovery/AppRecoverysRely/entry/src/main/ets/entryability/EntryAbility.ts
...verysRely/entry/src/main/ets/entryability/EntryAbility.ts
+0
-5
未找到文件。
ability/ability_runtime/apprecovery/ActsAppRecoveryTestCaller/entry/src/main/ets/test/Ability.test.ets
浏览文件 @
89873429
...
...
@@ -376,7 +376,7 @@ export default function abilityTest() {
},CASE_TIME_OUT)
})
/*
/*
* @tc.number: Acts_AppRecovery_0700
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: If the restart recovery status is not set, the Ability application pre-failure state will not be
...
...
@@ -444,6 +444,440 @@ export default function abilityTest() {
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
},CASE_TIME_OUT)
})
/*
* @tc.number: Acts_AppRecovery_0800
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: If the restart recovery status is not set, the Ability application pre-failure state will not be
* restored after the application exits abnormally and restarts.
*/
it('Acts_AppRecovery_0800',0, async function (done) {
let subscriber;
let flag = false;
let countFirst = 0;
let countSecond = 0;
console.info("Acts_AppRecovery_0800====> start")
commonEvent.createSubscriber(ACTS_AppRecovery).then(async (data) => {
console.debug("Acts_AppRecovery_0800====> Create Subscribe");
subscriber = data;
commonEvent.subscribe(subscriber, subscribeCallBack);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_0800_once"
},(err)=>{
console.debug("Acts_AppRecovery_0800====> startAbility err:"+JSON.stringify(err));
expect(err.code).assertEqual(0);
})
})
function subscribeCallBack(err, data) {
console.debug("Acts_AppRecovery_0800====> subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_First") {
countFirst++;
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
if (countFirst < 2) {
return;
}
setTimeout(() => {
commonEvent.subscribe(subscriber, subscribeCallBackSecond);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_0800_twice"
},
(err) => {
console.debug("Acts_AppRecovery_0800====> second startAbility err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
}
);
}, 800);
}
}
function subscribeCallBackSecond(err, data) {
console.debug("Acts_AppRecovery_0800====> second subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_Second") {
countSecond++;
flag=true;
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
if (countSecond < 2) {
return;
}
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
}
function unSubscribeCallback() {
setTimeout(() => {
console.debug("Acts_AppRecovery_0800====> unSubscribeCallback");
done();
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
},CASE_TIME_OUT)
})
/*
* @tc.number: Acts_AppRecovery_0900
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: When the application settings restart recovery status is valid, the application exits abnormally
* and restarts to restore the pre-failure state of Ability application.
*/
it('Acts_AppRecovery_0900',0, async function (done) {
let subscriber;
let flag = false;
console.info("Acts_AppRecovery_0900====> start")
commonEvent.createSubscriber(ACTS_AppRecovery).then(async (data) => {
console.debug("Acts_AppRecovery_0900====> Create Subscribe");
subscriber = data;
commonEvent.subscribe(subscriber, subscribeCallBack);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoveryrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_0900_once"
},(err)=>{
console.debug("Acts_AppRecovery_0900====> startAbility err:"+JSON.stringify(err));
expect(err.code).assertEqual(0);
})
})
function subscribeCallBack(err, data) {
console.debug("Acts_AppRecovery_0900====> subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_First") {
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
let pkillCmd = "pkill -f com.example.apprecoveryrely";
console.debug("Acts_AppRecovery_0900====> shell command call " + pkillCmd);
abilityDelegator.executeShellCommand(pkillCmd, 1, (err, data) => {
console.debug("Acts_AppRecovery_0900====> shell command callback " + JSON.stringify(err) + " " + JSON.stringify(data));
setTimeout(() => {
commonEvent.subscribe(subscriber, subscribeCallBackSecond);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoveryrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_0900_twice"
},
(err) => {
console.debug("Acts_AppRecovery_0900====> second startAbility err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
}
);
}, 800);
});
}
}
function subscribeCallBackSecond(err, data) {
console.debug("Acts_AppRecovery_0900====> second subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_Second") {
flag=true;
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
}
function unSubscribeCallback() {
setTimeout(() => {
console.debug("Acts_AppRecovery_0900====> unSubscribeCallback");
done();
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
},CASE_TIME_OUT)
})
/*
* @tc.number: Acts_AppRecovery_1000
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: When the application settings restart recovery status is valid, the application exits abnormally
* and restarts to restore the pre-failure state of Ability application.
*/
it('Acts_AppRecovery_1000',0, async function (done) {
let subscriber;
let flag = false;
let countFirst = 0;
let countSecond = 0;
console.info("Acts_AppRecovery_1000====> start")
commonEvent.createSubscriber(ACTS_AppRecovery).then(async (data) => {
console.debug("Acts_AppRecovery_1000====> Create Subscribe");
subscriber = data;
commonEvent.subscribe(subscriber, subscribeCallBack);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1000_once"
},(err)=>{
console.debug("Acts_AppRecovery_1000====> startAbility err:"+JSON.stringify(err));
expect(err.code).assertEqual(0);
})
})
function subscribeCallBack(err, data) {
console.debug("Acts_AppRecovery_1000====> subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_First") {
countFirst++;
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
if (countFirst < 2) {
return;
}
let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
let pkillCmd = "pkill -f com.example.apprecoverysrely";
abilityDelegator.executeShellCommand(pkillCmd, 1, (err, data) => {
setTimeout(() => {
commonEvent.subscribe(subscriber, subscribeCallBackSecond);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1000_twice"
},
(err) => {
console.debug("Acts_AppRecovery_1000====> second startAbility err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
}
);
}, 800);
});
}
}
function subscribeCallBackSecond(err, data) {
console.debug("Acts_AppRecovery_1000====> second subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_Second") {
countSecond++;
flag=true;
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
if (countSecond < 2) {
return;
}
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
}
function unSubscribeCallback() {
setTimeout(() => {
console.debug("Acts_AppRecovery_1000====> unSubscribeCallback");
done();
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
},CASE_TIME_OUT)
})
/*
* @tc.number: Acts_AppRecovery_1100
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: When setting restart recovery status is valid, exit the application by clearing the task list and
* do not restore the pre-failure state of the Ability application after the application restart.
*/
it('Acts_AppRecovery_1100',0, async function (done) {
let subscriber;
let flag = false;
console.info("Acts_AppRecovery_1100====> start")
commonEvent.createSubscriber(ACTS_AppRecovery).then(async (data) => {
console.debug("Acts_AppRecovery_1100====> Create Subscribe");
subscriber = data;
commonEvent.subscribe(subscriber, subscribeCallBack);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoveryrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1100_once"
},(err)=>{
console.debug("Acts_AppRecovery_1100====> startAbility err:"+JSON.stringify(err));
expect(err.code).assertEqual(0);
})
})
function subscribeCallBack(err, data) {
console.debug("Acts_AppRecovery_1100====> subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_First") {
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
let pkillCmd = "pkill -f com.example.apprecoveryrely";
abilityDelegator.executeShellCommand(pkillCmd, 1, (err, data) => {
setTimeout(() => {
commonEvent.subscribe(subscriber, subscribeCallBackSecond);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoveryrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1100_twice"
},
(err) => {
console.debug("Acts_AppRecovery_1100====> second startAbility err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
}
);
}, 800);
});
}
}
function subscribeCallBackSecond(err, data) {
console.debug("Acts_AppRecovery_1100====> second subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_Second") {
flag=true;
let message = data.parameters.message;
expect(message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertTrue();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
}
function unSubscribeCallback() {
setTimeout(() => {
console.debug("Acts_AppRecovery_1100====> unSubscribeCallback");
done();
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
},CASE_TIME_OUT)
})
/*
* @tc.number: Acts_AppRecovery_1200
* @tc.name: Fault recovery of multi-Ability application
* @tc.desc: When setting restart recovery status is valid, exit the application by clearing the task list and
* do not restore the pre-failure state of the Ability application after the application restart.
*/
it('Acts_AppRecovery_1200',0, async function (done) {
let subscriber;
let flag = false;
let countFirst = 0;
let countSecond = 0;
console.info("Acts_AppRecovery_1200====> start")
commonEvent.createSubscriber(ACTS_AppRecovery).then(async (data) => {
console.debug("Acts_AppRecovery_1200====> Create Subscribe");
subscriber = data;
commonEvent.subscribe(subscriber, subscribeCallBack);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1200_once"
},(err)=>{
console.debug("Acts_AppRecovery_1200====> startAbility err:"+JSON.stringify(err));
expect(err.code).assertEqual(0);
})
})
function subscribeCallBack(err, data) {
console.debug("Acts_AppRecovery_1200====> subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_First") {
countFirst++;
let message = data.parameters.message;
let strJson = JSON.stringify(data.parameters.message);
if (data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"] == undefined) {
expect(true).assertTrue();
} else {
expect(data.parameters.message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertFalse();
}
if (countFirst < 2) {
return;
}
let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
let pkillCmd = "pkill -f com.example.apprecoverysrely";
abilityDelegator.executeShellCommand(pkillCmd, 1, (err, data) => {
setTimeout(() => {
commonEvent.subscribe(subscriber, subscribeCallBackSecond);
globalThis.abilityContext.startAbility(
{
bundleName: "com.example.apprecoverysrely",
abilityName: "EntryAbility",
action: "Acts_AppRecovery_1200_twice"
},
(err) => {
console.debug("Acts_AppRecovery_1200====> second startAbility err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
}
);
}, 800);
});
}
}
function subscribeCallBackSecond(err, data) {
console.debug("Acts_AppRecovery_1200====> second subscribeCallBack data:" + JSON.stringify(data));
if(data.event == "ACTS_AppRecovery_Second") {
countSecond++;
flag=true;
let message = data.parameters.message;
expect(message["ohos.aafwk.param.AbilityRecoveryRestart"]).assertTrue();
if (countSecond < 2) {
return;
}
commonEvent.unsubscribe(subscriber, unSubscribeCallback);
}
}
function unSubscribeCallback() {
setTimeout(() => {
console.debug("Acts_AppRecovery_1200====> unSubscribeCallback");
done();
}, 800);
}
setTimeout(()=>{
if(flag==false){
expect().assertFail();
...
...
ability/ability_runtime/apprecovery/AppRecoveryRely/entry/src/main/ets/entryability/EntryAbility.ts
浏览文件 @
89873429
...
...
@@ -69,11 +69,9 @@ export default class EntryAbility extends Ability {
hilog
.
isLoggable
(
0x0000
,
'
testTag
'
,
hilog
.
LogLevel
.
INFO
);
hilog
.
info
(
0x0000
,
'
testTag
'
,
'
%{public}s
'
,
'
Ability onForeground
'
);
// 第一次启动设置项目
if
(
strAction
==
"
Acts_AppRecovery_0100_once
"
||
strAction
==
"
Acts_AppRecovery_0300_once
"
||
strAction
==
"
Acts_AppRecovery_0700_once
"
||
strAction
==
"
Acts_AppRecovery_0900_once
"
||
strAction
==
"
Acts_AppRecovery_1100_once
"
)
{
// 是否包存状态
if
(
strAction
==
"
Acts_AppRecovery_0100_once
"
||
strAction
==
"
Acts_AppRecovery_0300_once
"
||
strAction
==
"
Acts_AppRecovery_1100_once
"
)
{
appRecovery
.
saveAppState
(
this
.
context
);
...
...
@@ -81,11 +79,9 @@ export default class EntryAbility extends Ability {
}
else
{
console
.
log
(
strAction
+
"
Rely====> not saveAppState
"
);
}
// 回复ACTS_AppRecovery_First消息
setTimeout
(()
=>
{
commonEvent
.
publish
(
"
ACTS_AppRecovery_First
"
,
commonEventData
,(
err
)
=>
{
console
.
log
(
strAction
+
"
Rely====> publish err:
"
+
JSON
.
stringify
(
err
));
// 是否退出
if
(
strAction
==
"
Acts_AppRecovery_0100_once
"
||
strAction
==
"
Acts_AppRecovery_0700_once
"
)
{
setTimeout
(()
=>
{
...
...
@@ -100,7 +96,6 @@ export default class EntryAbility extends Ability {
},
200
);
}
// 第二次启动设置项目
if
(
strAction
==
"
Acts_AppRecovery_0100_twice
"
||
strAction
==
"
Acts_AppRecovery_0300_twice
"
||
strAction
==
"
Acts_AppRecovery_0700_twice
"
||
strAction
==
"
Acts_AppRecovery_0900_twice
"
||
strAction
==
"
Acts_AppRecovery_1100_twice
"
)
{
...
...
ability/ability_runtime/apprecovery/AppRecoverysRely/entry/src/main/ets/entryability/EntryAbility.ts
浏览文件 @
89873429
...
...
@@ -67,11 +67,9 @@ export default class EntryAbility extends Ability {
// Ability has brought to foreground
hilog
.
isLoggable
(
0x0000
,
'
testTag
'
,
hilog
.
LogLevel
.
INFO
);
hilog
.
info
(
0x0000
,
'
testTag
'
,
'
%{public}s
'
,
'
Ability onForeground
'
);
// 第一次启动
if
(
strAction
==
"
Acts_AppRecovery_0200_once
"
||
strAction
==
"
Acts_AppRecovery_0400_once
"
||
strAction
==
"
Acts_AppRecovery_0800_once
"
||
strAction
==
"
Acts_AppRecovery_1000_once
"
||
strAction
==
"
Acts_AppRecovery_1200_once
"
)
{
// 需要包存状态的用例
if
(
strAction
==
"
Acts_AppRecovery_0200_once
"
||
strAction
==
"
Acts_AppRecovery_0400_once
"
||
strAction
==
"
Acts_AppRecovery_1200_once
"
)
{
...
...
@@ -86,7 +84,6 @@ export default class EntryAbility extends Ability {
})
},
200
);
}
// 第二次启动
if
(
strAction
==
"
Acts_AppRecovery_0200_twice
"
||
strAction
==
"
Acts_AppRecovery_0400_twice
"
||
strAction
==
"
Acts_AppRecovery_0800_twice
"
||
strAction
==
"
Acts_AppRecovery_1000_twice
"
||
strAction
==
"
Acts_AppRecovery_1200_twice
"
)
{
...
...
@@ -96,14 +93,12 @@ export default class EntryAbility extends Ability {
})
},
200
);
}
// 拉起第二个Ability
this
.
context
.
startAbility
({
bundleName
:
"
com.example.apprecoverysrely
"
,
abilityName
:
"
EntryAbilitySec
"
,
action
:
strAction
},(
err
)
=>
{
console
.
debug
(
strAction
+
"
Rely1====> startAbility err:
"
+
JSON
.
stringify
(
err
));
// 需要自己正常退出的用例
if
(
strAction
==
"
Acts_AppRecovery_0200_once
"
||
strAction
==
"
Acts_AppRecovery_0200_twice
"
||
strAction
==
"
Acts_AppRecovery_0400_twice
"
||
strAction
==
"
Acts_AppRecovery_0800_once
"
||
strAction
==
"
Acts_AppRecovery_0800_twice
"
||
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录