diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c13dad646e5352dc7b473612af6430063995152c Binary files /dev/null and b/.DS_Store differ diff --git a/documents/.DS_Store b/documents/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 Binary files /dev/null and b/documents/.DS_Store differ diff --git "a/documents/\346\226\207\346\234\254\346\265\213\350\257\225\347\224\250\344\276\213-\346\236\227\346\264\213\344\273\225.md" "b/documents/\346\226\207\346\234\254\346\265\213\350\257\225\347\224\250\344\276\213-\346\236\227\346\264\213\344\273\225.md" old mode 100755 new mode 100644 index e114761f130c94836cf22a21074f3d8b1158d330..a73c18c0cbf31331b82d42a35303215e6eeda1f3 --- "a/documents/\346\226\207\346\234\254\346\265\213\350\257\225\347\224\250\344\276\213-\346\236\227\346\264\213\344\273\225.md" +++ "b/documents/\346\226\207\346\234\254\346\265\213\350\257\225\347\224\250\344\276\213-\346\236\227\346\264\213\344\273\225.md" @@ -1,5 +1,5 @@ | 测试套 | 用例名 | 测试级别 | 测试类型 | 用例描述 | 节点数 | 预支条件 | 操作步骤 | 预期结果 | 是否自动化 | 备注 | | ------- | ----------------------- | -------- | -------- | ------------------------------------------------------------ | ------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ---------- | ---- | -| lua-lunit | oe_test_lunit_1 | 单元测试 | 功能测试 | lua脚本的单元测试工具包 ,这里验证lunit命令的参数用法 | 1 | 安装二进制包lua-lunit: dnf install -y lua-lunit| ntfscat命令的用法: 1、-h,-h--help:显示lunit的帮助信息 执行命令:lunit --help 2>&1 \| grep "Usage: lunit"或者 ntfscat -h 2>&1 \| grep "Usage: lunit" 2、-v,--version:显示lunit的版本信息 执行命令:ntfscat --version 2>&1 \| grep "lunit" 或者 ntfscat -V 2>&1 \| grep "lunit" 3、-p,--path,设定lua的位置 执行命令:lunit -p /usr/bin/lunit 或者 lunit -path /usr/bin/lunit 4、-i --interpreter 设置lunit解释器 lunit -i /usr/bin/lua 或者 lunit --interpreter /usr/bin/lua 5、-r,--runner 设置lunit的执行模式 执行命令:lunit -r lunit 或者 lunit -runner lunit 6、-t,--test 使用lunit测试lua文件 执行命令 lunit -t test.lua 或者 lunit --test test.lua 7、只读取测试文件 执行命令:lunit --loadonly test.lua 8、指定lunit的cpath 执行命令 lunit --cpath /usr/bin/lunit 9、 不强制加载/usr/bin/lunit*.lua. 执行命令: lunit --dontforce test.lua| 1、输出lunit的帮助信息 2、输出lunit的版本信息 3、命令执行成功 4、命令执行成功 5、命令执行成功 6、显示测试结果 7、显示结果 8、命令执行成功 9、显示结果| 是 | | -| itstool | oe_test_itstool_1 | 单元测试 | 功能测试 | itstool提取xml中的its规则,这里验证itstool命令的参数用法 | 1 | 安装二进制包itstool: dnf install -y "itstool gettext|itstool命令用法:1、-h,--help:显示itstool的帮助信息 执行命令:itstool --help \| grep "Usage"或者 itstool -h\| grep "Usage" 2、-v,--version:显示版本信息 执行命令:itstool -v \| grep "itstool" \| grep "itstool" 或者 itstool --version \| grep "itstool" 3、-d,--load-dtd:使用外部dtd解析xml 执行命令:从github下载官方测试xml命名为dtd.xml,执行itstool -d dtd.xml 或者 itstool --load-dtd dtd.xml 4、-i --its:使用外部its规则解析xml 执行命令:从github下载官方测试xml elementwithintextlocalitsSpanXml.xml,执行 itstool -i elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml或 itstool --its=elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml 5、-j --join:将二进制文件加入xml中,执行 itstool -j join.xml join.cs.mo > test.xml && cat test.xml 6、-k --keep-entities:保持实体引用解析xml 执行命令:从github下载官方测试xml keep-entities.xml 执行 itstool -k keep-entities.xml 7、-l --lang:itstool -l 'll' -m join.cs.mo -o test Translate1.xml 8、-m --merge:将二进制文件与xml结合提取its 执行命令:itstool -n -l 'll' -m test.mo Translate1.xml > test && cat test \| grep its 9、-n,--nobuitins 不使用内置的its规则 执行命令:itstool -n -l 'll' -m test.mo Translate1.xml > test && cat test \| grep rules 10、-o,--output 将itstool命令的结果输出到指定文件 执行命令:itstool -o test Translate1.xml|1、输出itstool的帮助信息 2、输出itstool的版本信息 3、输出使用外部dtd后的xml解析信息 4、输出使用外部its解析后的xml信息 5、输出加入二进制规则后的xml 6、输出xml,不引用实体 7、显性设定输出的语言标签 8、输出its规则 9、不使用内置its规则,而是使用二进制文件中的its规则输出its 10、输出文件,文件内容是xml提取出的its规则|是 | | - |itstool|oe_test_itstool_2|单元测试|功能测试|itstool提取xml中的its规则,这里验证itstool命令的参数用法|1|安装二进制包itstool: dnf install -y "itstool gettext|1、-p,--param 将ITS参数名重新设置 执行命令:itstool -p msgid id Translate1.xml 或itstool --param=msgid id Translate1.xml\| grep id 2、--path 可以找到its的额外路径 itstool --path=IT-externalRef1.txt IT-externalRef1.xml \|grep ref 3、-s,--strict 当PO文件包含损坏的XML时,显示错误 执行命令:itstool -s broken.xml 或 itstool --strict broken.xml 4、-t,--test 生成测试一致性输出 执行命令:itstool -t translate Translate1.xml 或 itstool --test=translate Translate.xml 5、无参数 提取xml文件中包含的its规则 itstool Translate.xml| 1、输出设定的带特定参数名的its 2、输出带引用的its规则 3、输出错误 4、输出测试结果 5、输出its规则|是|| \ No newline at end of file +| lua-lunit | oe_test_lunit_1 | 单元测试 | 功能测试 | lua脚本的单元测试工具包 ,这里验证lunit命令的参数用法 | 1 | 安装二进制包lua-lunit: dnf install -y lua-lunit| lua-lunit命令的用法:
1、-h,-h--help:显示lunit的帮助信息 执行命令:lunit --help 2>&1 \| grep "Usage: lunit"或者 ntfscat -h 2>&1 \| grep "Usage: lunit"
2、-v,--version:显示lunit的版本信息 执行命令:ntfscat --version 2>&1 \| grep "lunit" 或者 ntfscat -V 2>&1 \| grep "lunit"
3、-p,--path,设定lua的位置 执行命令:lunit -p /usr/bin/lunit 或者 lunit -path /usr/bin/lunit
4、-i --interpreter 设置lunit解释器 lunit -i /usr/bin/lua 或者 lunit --interpreter /usr/bin/lua
5、-r,--runner 设置lunit的执行模式 执行命令:lunit -r lunit 或者 lunit -runner lunit
6、-t,--test 使用lunit测试lua文件 执行命令 lunit -t test.lua 或者 lunit --test test.lua
7、--loadonly 只读取测试文件 执行命令:lunit --loadonly test.lua
8、--cpath 指定lunit的cpath 执行命令 lunit --cpath /usr/bin/lunit
9、--dontforce 不强制加载/usr/bin/lunit*.lua. 执行命令: lunit --dontforce test.lua
10、无参数,执行lua测试脚本 执行命令:lunit test.lua| 1、输出lunit的帮助信息
2、输出lunit的版本信息
3、命令执行成功
4、命令执行成功
5、命令执行成功
6、显示测试结果
7、显示结果
8、命令执行成功
9、显示结果
10、显示结果| 是 | | +| itstool | oe_test_itstool_1 | 单元测试 | 功能测试 | itstool提取xml中的its规则,这里验证itstool命令的参数用法 | 1 | 安装二进制包itstool: dnf install -y "itstool gettext|itstool命令用法:
1、-h,--help:显示itstool的帮助信息 执行命令:itstool --help \| grep "Usage"或者 itstool -h\| grep "Usage"
2、-v,--version:显示版本信息 执行命令:itstool -v \| grep "itstool" \| grep "itstool" 或者 itstool --version \| grep "itstool"
3、-d,--load-dtd:使用外部dtd解析xml 执行命令:从github下载官方测试xml命名为dtd.xml,执行itstool -d dtd.xml 或者 itstool --load-dtd dtd.xml
4、-i --its:使用外部its规则解析xml 执行命令:从github下载官方测试xml elementwithintextlocalitsSpanXml.xml,执行 itstool -i elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml或 itstool --its=elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml
5、-j --join:将二进制文件加入xml中,执行 itstool -j join.xml join.cs.mo > test.xml && cat test.xml
6、-k --keep-entities:保持实体引用解析xml 执行命令:从github下载官方测试xml keep-entities.xml 执行 itstool -k keep-entities.xml 或者 itstool --keep-entities keep-entities.xml
7、-l --lang:显性设置语言标签 执行命令:itstool -l 'll' -m join.cs.mo -o test Translate1.xml
8、-m --merge:将二进制文件与xml结合提取its 执行命令:itstool -n -l 'll' -m test.mo Translate1.xml -o && cat test \| grep its 或者 itstool -n -lang='ll' -m test.mo Translate1.xml -o test && cat test \| grep its
9、-n,--nobuitins 不使用内置的its规则 执行命令:itstool -n -l 'll' -m test.mo Translate1.xml -o test && cat test \| grep rules 或者 itstool --no-builtins -l 'll' -m test.mo Translate1.xml -o test && cat test \| grep rules
10、-o,--output 将itstool命令的结果输出到指定文件 执行命令:itstool -o test Translate1.xml | cat test 或者 itstool --output test Translate1.xml | cat test|1、输出itstool的帮助信息
2、输出itstool的版本信息
3、输出使用外部dtd后的xml解析信息
4、输出使用外部its解析后的xml信息
5、输出加入二进制规则后的xml
6、输出xml,不引用实体
7、显性设定输出的语言标签
8、输出its规则
9、不使用内置its规则,而是使用二进制文件中的its规则输出its
10、输出文件,文件内容是xml提取出的its规则|是 | | + |itstool|oe_test_itstool_2|单元测试|功能测试|itstool提取xml中的its规则,这里验证itstool命令的参数用法|1|安装二进制包itstool: dnf install -y "itstool gettext|1、-p,--param 将ITS参数名重新设置 执行命令:itstool -p msgid id Translate1.xml|grep id 或itstool --param=msgid id Translate1.xml\| grep id
2、--path 可以找到its的额外路径 itstool --path=IT-externalRef1.txt IT-externalRef1.xml \|grep ref
3、-s,--strict 当PO文件包含损坏的XML时,显示错误 执行命令:itstool -s broken.xml 或 itstool --strict broken.xml
4、-t,--test 生成测试一致性输出 执行命令:itstool -t translate Translate1.xml 或 itstool --test=translate Translate.xml
5、无参数 提取xml文件中包含的its规则 执行命令:itstool Translate.xml| 1、输出设定的带特定参数名的its
2、输出带引用的its规则
3、输出错误
4、输出测试结果
5、输出its规则|是|| \ No newline at end of file diff --git a/suite2cases/itstool.json b/suite2cases/itstool.json new file mode 100644 index 0000000000000000000000000000000000000000..4e32ac8136c0c09396bd109d159d18a040268e10 --- /dev/null +++ b/suite2cases/itstool.json @@ -0,0 +1,11 @@ +{ + "path": "$OET_PATH/testcases/cli-test/itstool", + "cases": [ + { + "name": "oe_test_itstool_1" + }, + { + "name": "oe_test_itstool_2" + } + ] +} diff --git a/testcases/.DS_Store b/testcases/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3fbe14d8179400383ff2207769a1124718b6e0db Binary files /dev/null and b/testcases/.DS_Store differ diff --git a/testcases/itstool/common/IT-keep-entities.xml b/testcases/itstool/common/IT-keep-entities.xml new file mode 100644 index 0000000000000000000000000000000000000000..bb87ea857497c556932f116c83783ae9c3d3b593 --- /dev/null +++ b/testcases/itstool/common/IT-keep-entities.xml @@ -0,0 +1,7 @@ + + + + + The history of Leonard “Bones” McCoy + + diff --git a/testcases/itstool/common/Translate1.po b/testcases/itstool/common/Translate1.po new file mode 100644 index 0000000000000000000000000000000000000000..810664a8db4e8848e042cae724c67953abb45cbb --- /dev/null +++ b/testcases/itstool/common/Translate1.po @@ -0,0 +1,46 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2022-07-27 17:34+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. (itstool) path: body/par +#: Translate1.xml:14 +msgid "Texte avec une image : \"Description." +msgstr "" + +#. (itstool) path: body/par@title +#: Translate1.xml:15 +msgid "Texte" +msgstr "" + +#. (itstool) path: body/par +#: Translate1.xml:15 +msgid "C'est le premier paragraphe. Il contient du texte <_:verbatim-1/>." +msgstr "" + +#. (itstool) path: 封面/汇集 +#: Translate1.xml:20 +msgid "Le Seigneur des Anneaux" +msgstr "" + +#. (itstool) path: 封面/标题 +#: Translate1.xml:21 +msgid "Le retour du Roi" +msgstr "" + +#. (itstool) path: 章节/头注 +#: Translate1.xml:25 +msgid "Minas Tirith" +msgstr "" + +#. (itstool) path: 章节/段落识别 +#: Translate1.xml:26 +msgid "<_:姓名-1/> regarda depuis l'abri du manteau de <_:姓名-2/>." +msgstr "" + diff --git a/testcases/itstool/common/Translate1.xml b/testcases/itstool/common/Translate1.xml new file mode 100644 index 0000000000000000000000000000000000000000..72b30fe159367bc1675018cc78639e2b13248ecd --- /dev/null +++ b/testcases/itstool/common/Translate1.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + Texte avec une image : Description d'image. + C'est le premier paragraphe. Il contient du texte un-translatable + code with an image: Image description. + + + + Le Seigneur des Anneaux + Le retour du Roi + J.R.R. Tolkein + + + Minas Tirith + Pippin regarda depuis l'abri du manteau de Gandalf. + + + + + + + + + + + + + diff --git a/testcases/itstool/common/dtd.xml b/testcases/itstool/common/dtd.xml new file mode 100644 index 0000000000000000000000000000000000000000..bb87ea857497c556932f116c83783ae9c3d3b593 --- /dev/null +++ b/testcases/itstool/common/dtd.xml @@ -0,0 +1,7 @@ + + + + + The history of Leonard “Bones” McCoy + + diff --git a/testcases/itstool/common/elementwithintextlocalitsSpanXml.xml b/testcases/itstool/common/elementwithintextlocalitsSpanXml.xml new file mode 100644 index 0000000000000000000000000000000000000000..0368a9c9f48f7dfe6118f09590755be214b9b488 --- /dev/null +++ b/testcases/itstool/common/elementwithintextlocalitsSpanXml.xml @@ -0,0 +1,7 @@ + + + Text with bold. + + \ No newline at end of file diff --git a/testcases/itstool/common/join.cs.mo b/testcases/itstool/common/join.cs.mo new file mode 100644 index 0000000000000000000000000000000000000000..43f49b62fd8f06f158be7e6d702451bb6acd33ec Binary files /dev/null and b/testcases/itstool/common/join.cs.mo differ diff --git a/testcases/itstool/common/join.xml b/testcases/itstool/common/join.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0152c80b336bef0b854a51c50a4245c689557eb --- /dev/null +++ b/testcases/itstool/common/join.xml @@ -0,0 +1,19 @@ + + + + + This is a plain message. + This message uses a prefix. + This message is in another namespace. + + This message is in a holder element. + + + This message has a block footnote. + + + This message has some inline markup. + + \ No newline at end of file diff --git a/testcases/itstool/common/test b/testcases/itstool/common/test new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/testcases/itstool/common/test.mo b/testcases/itstool/common/test.mo new file mode 100644 index 0000000000000000000000000000000000000000..53aa5683acbb80dd5ea81b6a9256f037f1dd4c79 Binary files /dev/null and b/testcases/itstool/common/test.mo differ diff --git a/testcases/itstool/common/test.xml b/testcases/itstool/common/test.xml new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/testcases/itstool/oe_test_itstool_1.sh b/testcases/itstool/oe_test_itstool_1.sh new file mode 100644 index 0000000000000000000000000000000000000000..794b106e24b26ae6ad7c7f408106115d308263b3 --- /dev/null +++ b/testcases/itstool/oe_test_itstool_1.sh @@ -0,0 +1,64 @@ +#!/usr/bin/bash + +# Copyright (c) 2021. Huawei Technologies Co.,Ltd.ALL rights reserved. +# This program is licensed under Mulan PSL v2. +# You can use it according to the terms and conditions of the Mulan PSL v2. +# http://license.coscl.org.cn/MulanPSL2 +# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more detaitest -f. + +# ############################################# +# @Author : linyangshi +# @Contact : 1042036289@qq.com +# @Date : 2022/07/26 +# @License : Mulan PSL v2 +# @Desc : Test itstool function:--help,--version, +# ############################################# + +source "../common/common_lib.sh" +function pre_test() { + LOG_INFO "Start environmental preparation." + DNF_INSTALL "itstool" + cd common + LOG_INFO "End of environmental preparation!" +} + +function run_test() { + LOG_INFO "Start testing..." + itstool --version | grep "itstool" && itstool -v | grep "itstool" + CHECK_RESULT $? 0 0 "itstool --version or -v failed" + itstool --help | grep "Usage" && itstool -h | grep "Usage" + CHECK_RESULT $? 0 0 "itstool --help or -h failed" + itstool -d dtd.xml && itstool --load-dtd dtd.xml + CHECK_RESULT $? 0 0 "itstool --load-dtd or -d failed" + itstool -i elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml + CHECK_RESULT $? 0 0 "itstool -i failed" + itstool --its=elementwithintextlocalitsSpanXml.xml elementwithintextlocalitsSpanXml.xml + CHECK_RESULT $? 0 0 "itstool --its failed" + itstool -j join.xml join.cs.mo > test.xml && cat test.xml + CHECK_RESULT $? 0 0 "itstool -j failed" + itstool --join join.xml join.cs.mo > test.xml && cat test.xml + CHECK_RESULT $? 0 0 "itstool --join failed" + itstool -k keep-entities.xml && itstool --keep-entities keep-entities.xml + CHECK_RESULT $? 0 0 "itstool -k or --keep-entities failed" + itstool -l 'll' -m test.mo -o test.xml Translate1.xml | cat test.xml + CHECK_RESULT %? 0 0 "itstool -l failed" + itstool -n --lang='ll' -m test.mo -o test.xml Translate1.xml | cat test.xml + CHECK_RESULT $? 0 0 "itstool --lang failed" + itstool -n -l 'll' -m test.mo Translate1.xml -o test && cat test | grep rules + CHECK_RESULT $? 0 0 "itstool -n failed" + itstool --no-builtins -l 'll' -m test.mo Translate1.xml -o test && cat test | grep rules + CHECK_RESULT $? 0 0 "itstool --no-builtins failed" + itstool -o test Translate1.xml | cat test && itstool --output test Translate1.xml | cat test + CHECK_RESULT $? 0 0 "itstool -o or --output failed" + LOG_INFO "Finish test!" +} + +function post_test() { + LOG_INFO "start environment cleanup." + LOG_INFO "Finish environment cleanup!" +} + +main "$@" diff --git a/testcases/itstool/oe_test_itstool_2.sh b/testcases/itstool/oe_test_itstool_2.sh new file mode 100644 index 0000000000000000000000000000000000000000..4265c0633391d84e5a1b11fa677b7a0659ee891a --- /dev/null +++ b/testcases/itstool/oe_test_itstool_2.sh @@ -0,0 +1,48 @@ +#!/usr/bin/bash + +# Copyright (c) 2021. Huawei Technologies Co.,Ltd.ALL rights reserved. +# This program is licensed under Mulan PSL v2. +# You can use it according to the terms and conditions of the Mulan PSL v2. +# http://license.coscl.org.cn/MulanPSL2 +# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more detaitest -f. + +# ############################################# +# @Author : linyangshi +# @Contact : 1042036289@qq.com +# @Date : 2022/08/01 +# @License : Mulan PSL v2 +# @Desc : Test itstool function:--help,--version, +# ############################################# + +source "../common/common_lib.sh" +function pre_test() { + LOG_INFO "Start environmental preparation." + DNF_INSTALL "itstool" + cd common + LOG_INFO "End of environmental preparation!" +} + +function run_test() { + LOG_INFO "Start testing..." + itstool -p msgid id Translate1.xml|grep id && itstool -param=msgid id Translate1.xml|grep id + CHECK_RESULT $? 0 0 "itstool -p or --param failed" + itstool --path=IT-externalRef1.txt IT-externalRef1.xml |grep ref + CHECK_RESULT $? 0 0 "itstool --path failed" + itstool -s broken.xml && itstool --strict broken.xml + CHECK_RESULT $? 1 0 "itstool --strct or -s failed" + itstool -t translate Translate1.xml && itstool --test=translate Translate1.xml + CHECK_RESULT $? 0 0 "itstool -t or --test failed" + itstool Translate1.xml + CHECK_RESULT $? 0 0 "itstool failed to extract the its" + LOG_INFO "Finish test!" +} + +function post_test() { + LOG_INFO "start environment cleanup." + LOG_INFO "Finish environment cleanup!" +} + +main "$@"