Commit Graph

803 Commits

Author SHA1 Message Date
zccrs 3c08a5273e fix: 修复开启 -Werror=format-security 时编译错误
qCDebug 的第二个参数应当传入格式化字符串,其中 %s、%i 开头的内容会
特殊处理,如果为 qCDebug 传入的参数个数和格式化字符串中出现的 "%"
个数不匹配,则可能导致内存越界,存在安全风险。

Log:
Change-Id: I7c5870d34aca12d0aaf83933ea51115b1e27249b
2021-08-31 17:52:02 +08:00
zccrs 5bc0f0f828 feat: DDciFileEngine 支持判断内部路径是否为根目录
为 QFileInfo::isRoot 添加单元测试。

Log:
Change-Id: I28abe92abe10153dc8e2ad6a38157ef4c3c8b2e0
2021-08-31 14:41:59 +08:00
zccrs deed151229 feat: 为 DCI 文件添加软链接支持
根据 DSG 的标准规定,DCI 文件内可包含软链接,软链接不允许指向目录。
对于软链接文件内容的读写等价于对链接对象的读写。
同步在 DDciFileEngine 中支持软链接的创建和打开接口。

Log:
Change-Id: I4cac303171a1ea17e336dafe03385b1c8dd51212
2021-08-31 13:33:00 +08:00
zccrs 3697593f7c feat: 新增 DDciFile::copy 接口
使用 DDciFile::dataRef 和 DDciFile:writeFile 的组合能实现复制文件的
效果,但是无法实现目录的复制。因此,特单独添加 DDciFile::copy,以方
便复制文件和目录。

Log:
Change-Id: I650e13e45fa94e4ff9b197504025915c20a8c00d
2021-08-30 16:42:41 +08:00
zccrs 5fb1c1812e feat: 添加 DDciFileEngine
DDciFileEngine 实现了 QAbstractFileEngine,可以直接使用 QFile、
QFileInfo 等 Qt 的文件接口操作 DCI 文件。将打包的 DCI 文件看作一个
目录,类似于 "qrc",绑定 "dci:" 开头的路径,以识别对 DCI 文件进行的
IO 操作。

Log:
Change-Id: Iaff407294b211fa869cd4ad74322098160fdb9b5
2021-08-30 16:42:26 +08:00
zccrs ef10d221c9 feat: 支持 DCI 文件的解析
DCI 文件是 DSG 标准规定的一种图标文件格式,其是一个压缩格式,内部可
嵌入 jpg png 等图片文件。

DDciFile 实现了对 DCI 格式打包和解包的操作,提供了文件/目录创建、改写
、获取目录下文件列表等接口

对应的 DSG 规范地址:
https://gitlabwh.uniontech.com/wuhan/se/deepin-specifications/-/issues/5

Log:

Change-Id: I81925fed14e35d42bcb2b0905aac5c2b6c5d817d
2021-08-30 14:15:13 +08:00
ut003691 f51eda6a17 chore: 添加单元测试
新增src/filesystem和src/util里面接口的单元测试,以增加覆盖率

Log:
Change-Id: I8c718f53e33636e147d5add121e4521beb748ab1
(cherry picked from commit 6a638f9e50)
2021-08-26 17:50:43 +08:00
Ye ShanShan 655e6f9f9c chore: 移除单元测试sleep
修改testDSingleton单元测试,移除sleep,使用断言而非打印进行判断运行行为

Log:
Change-Id: I3482508655d2d0faf1568c5b9bbb50a9e99c2984
(cherry picked from commit 5ee7811199)
2021-08-19 09:54:22 +08:00
Chen Bin 941f7d0d23 docs: 更新qdoc注释信息
1. 增加QDoc注释识别配置文件
2. 修改项目注释信息,使QDoc能够正确识别
3. 修改一些不规范的注释,调整部分注释内容
4. 将部分.h文件的注释信息迁移到.cpp文件中

Log: 更新项目注释信息
Change-Id: Ib9bb0fee04e9b6a8e206340d66df4fcfdcf3c27b
2021-08-18 13:55:27 +08:00
Ye ShanShan b541e07bd5 feat: Add DConfig class
DConfig 用于读取程序配置文件,符合 DSG 标准:
https://gitlabwh.uniontech.com/wuhan/se/deepin-specifications/-/issues/3
当配置文件的DBus服务未注册时将直接使用 DConfigFile, 在非 Linux 系统上
使用 QSettings。

Log:
Change-Id: Id4ab32f9f5fc1d870b35203a3cb4d8476d28c839
2021-08-17 09:19:39 +08:00
Ye ShanShan 07bb75f6c0 feat: 新增 DConfigFile 类
用于实现 https://gitlabwh.uniontech.com/wuhan/se/deepin-specifications/-/issues/3
规范,提供了加载和解析配置文件内容的接口。

Log:
Change-Id: I99663d0f1f07008ab1f3f91c547167d0fff9c15b
2021-08-17 09:19:22 +08:00
zccrs 0447b5f2d9 feat: 添加 DStandardPaths
DStandardPaths 是对
https://gitlabwh.uniontech.com/wuhan/se/deepin-specifications/-/issues/21
规范的实现,用于获取规范中定义的标准路径。

Change-Id: Id2660fcd10dc2c699994499998257547b02de942
2021-08-13 15:26:02 +08:00
ck 1ade3e7c3d fix: ut failed on loogarch
3A5K上ut失败问题修复, 这里应该用cache目录拼路径。
cache目录如果设置了appname和orgname会自动追加。

Log:
Change-Id: Ic25824195bb44b3da7e1d9ee807aaaed9fb1fef7
2021-08-05 16:52:45 +08:00
Wang Penga 053acf1486 fix: 获取用户名时间过长
该函数多次执行,在龙芯上速度就比较慢,单独获取相关的信息就可以了。

Log: 修复计算机名更新后获取延时的问题
Change-Id: Ic10884c134211c8066465a60ce7bcd5676dcd36e
2021-08-04 18:16:46 +08:00
wangpenga c43a8a7afd chore: asan无日志生成则添加空文件
没有任何内存泄露被检测到则添加空文件

Log: 修改脚本添加单元测试的 log report
Change-Id: Iba63bf0254c37ee413dc16cbe1f0429be4691219
2021-07-19 09:48:30 +08:00
wangpenga 3b9d04542d chore: 添加漏掉的日志类型
之前的更改将默认的Log类型漏掉了,现在加上。

Log:
Change-Id: I0e216abc18f3c4f365f4a353b2249337b561c441
2021-07-16 16:37:36 +08:00
wangpenga e5101a71ba fix: 主机名只能获取一次
主机名修改之后应该重新获取,不应该做缓存。

Log:
Change-Id: I25b97f3273614c3faf4454364c02a67d118ebdd3
2021-07-16 13:49:05 +08:00
wangpenga 814fd83dd5 fix: 单元测试运行失败
单元测试和事件循环都必须运行于主线程,这就造成了依赖事件循环的单元测试执行失败,故去掉这一类的单元测试。
未运行事件循环的 QObject、QPointer 常会有一些不确定行为,由此引发的大概率的测试失败,类似问题请参考:
https://bugreports.qt.io/browse/QTBUG-88248

Log:
Change-Id: I4027052c64d90579c47201576b843e86984f7a0b
2021-07-16 13:22:19 +08:00
ck 9e2bd2d843 fix: 修复thread单元测试未定义行为
当对象被销毁时不会调用回调函数,此时原测试的结果是未定义的
有些架构下可能导致单元测试失败。改成不依赖返回值,修改捕获值

Log:
Change-Id: Id203298a5532ff8e97e0da2441de44042a7d8fbd
2021-07-09 11:22:18 +08:00
ck cec6e3a358 feat: 输出测试报告xml文件
增加测试用例输出成xml,便于后端获取测试报告数据

Log: UT输出xml报告数据
Change-Id: I615a99ce41ae5c5e73bb14e9004ac61d9a3843e2
2021-07-07 17:43:42 +08:00
Chen Bin dd5a71eb80 feat: dtkcore支持一包多依赖
使用dtkcommon对一包多依赖的qmake配置函数
使dtkcore生成的包能够既支持5又支持5.5

Log:
Change-Id: I3f953fcdd17d22954eade8bd109076803c374df0
(cherry picked from commit 354b272fe785c38a7bec3a459d1fe7bb8ae74f5e)
2021-06-29 17:15:40 +08:00
Chen Bin 19593eaf81 feat: 适配家庭版社区版新版本号,调整读取逻辑
根据版本标识方案文档记录的版本号标识方式,适配全新的
版本号模式(A.B.C和X.Y.Z)。并提供此部分的单元测试
案例。

Log: 根据新版本号模式,适配不同版本的系统
Change-Id: I6f08c55da2853eb109b41ad6ef95565c4b1c4f41
(cherry picked from commit 6b9c925f9e739555fd9181678cd5e3b22b2cf738)
2021-06-29 10:42:51 +08:00
wangpenga 88d166af4a fix: 删除Log中不必要的空白字符
QT_DEBUG QT_MESSAGELOGCONTEXT 这两个宏的任意一个都未定义的话,会导致 log 信息中的一段空白。

Log:
Change-Id: I074271b8f44b965c537b59bf450a6d31d86a759d
2021-06-25 09:04:54 +08:00
wangpenga a477f4a463 fix: 处理单元测试脚本的返回值
单元检测生成的asan log不管是否存在,返回数值都要是0。
原来log不存在会判断失败返回非0导致CI运行失败。

Log:
Change-Id: Ice7d761f2ac510f4177dda4fe785c914659eb756
2021-06-24 13:23:56 +08:00
wangpenga 7d575e7095 chore: update abi json file
按照新的规则要求更新abi文件。

Log:
Change-Id: I2a5ce9b8d55d53f2d829dd3f822afb328f8ddf41
2021-06-22 16:59:56 +08:00
wangpenga 2d5709771f fix: Renaming a nonexistent file will report an error
单元检测的日志文件不存在不要重命名,存在则重命名,不存在重命名会报错,没有检测到内存泄露的时候就会不存在。

Log:
Change-Id: If80ce3f31283dbafe13a5cd0a830eab06de65096
2021-06-21 13:27:07 +08:00
wangpenga 5712b5f618 fix: unit test memory leak.
修复单元测试中的内存泄露。

Log:
Change-Id: I42404a332a90f2f5b58d2532299f1b01351f291c
2021-06-18 15:01:38 +08:00
ck 5753a9d000 fix: global function is missing
添加了默认隐藏符号的编译参数后,全局函数也需要导出才行。否则可能出现ld错误

Log: 修复获取全局版本号未导出的问题
Change-Id: I4c5c41c8c513e2571e458a99c61c14ea11d35639
2021-06-15 14:41:44 +08:00
ck 397f6cc465 feat: add global function to get dtk Version
添加全局函数,方便qt5integration通过符号获取dtkcore的版本来选择不同的插件版本

Log: 添加全局函数获取dtk的版本号
Change-Id: I4e27c34d70d11f9af89b40d290780f587ee7a6d9
(cherry picked from commit 9e93accefa272ba90f8ebb85864fb56bdea3e1f2)
2021-06-15 14:23:25 +08:00
wangpenga d687492fb0 fix: unit test memory leak check failed due to AddressSanitizer.
添加参数使得内存检测的误报不影响单元测试结果生成。
环境变量和编译参数要配合使用。

Log:
Change-Id: Ib147d431d1af6a8ffd3e07d0b6d4ce68f7ebf46f
2021-06-11 18:00:43 +08:00
Chen Bin 744d2c56e1 chore: 更新DVtableHook的注释
增加DVtableHook用法不当可能出现的内容泄露提示

Log:
Change-Id: Ica3550c6e12cd071ca5589eb803933d05e370c11
2021-06-11 15:30:30 +08:00
wangpenga 165f48e647 fix: Add memory leak detection parameters
添加内存泄露检测参数,修复可能发生的内存泄露

Log:
Change-Id: I6fb914c456e2b16338a15d9afd55ab5e9c0ab98d
2021-05-27 13:38:59 +08:00
ChunLin Wang fdbb283090 style: Improve log file name
被分割的日志文件,名称包含毫秒却缺少秒。完善该信息有助于在大量日志文件中快速找到准确时间段的日志文件。

Log: 优化日志文件名称
Change-Id: I25ac192ca2412aa9ca95d0a164ef468ed80fe5b9
2021-05-18 09:35:29 +08:00
ck c9972f44a2 fix: rpm schemas not installed
spec文件写错了, 讲schemas放到dev包安装导致无法记住主题

Bug: https://pms.uniontech.com/zentao/bug-view-77346.html
Log: 修复rpm包未安装schemas的问题
Change-Id: Ib0faacdaed3dd83885e9d9084478878c20f8489c
(cherry picked from commit 5f92c72a0287579132bd6c9e4acfca96b926c496)
(cherry picked from commit 306f8d783267d06b0ce39c59356eaf8c002b1c08)
2021-05-17 17:06:23 +08:00
AlexOne 9eb454dbe7 fix: eliminate warning
消除类型转换导致的警告

Log:
Change-Id: I4691e7f46eeeeb8ba54a77d60fe1cd958cbface7
2021-05-06 11:14:44 +08:00
ck 511d1dd7b1 fix: tests project qmake error
test_case.pro移动到dtkcommon中,此处改为load

Log: 修复测试工程qmake报错问题
Change-Id: I829b52aa6fd790160dbc8c13b87a7e5581f77aa5
(cherry picked from commit c9afef2265b5297794c9229552416130047402a5)
2021-04-26 17:47:15 +08:00
ck badc9adcaf fix: gerrit build error
包含.git目录时构建出错, 删掉这个判断

Log:
Change-Id: I08a2057ac1ebb7e17fecf27b2ca47abeca97b68c
(cherry picked from commit 303c1f1cd5865a7b937baed85db0a6a0ec3d835a)
2021-04-25 16:46:19 +08:00
ck b96b8772b9 fix: qdbusxml2cpp-fix not installed
安装的文件漏掉了,顺便加上rpm中的文件安装

Log:
Change-Id: I2cfa1ef8872d2522ba864b89f63584ad72f148b0
2021-04-14 18:08:51 +08:00
ck 0f18bcc89c fix: logfile path bugs
1.root应用如果HOME环境变量没有设置时,默认获取到的缓存路径变成/.cache,添加判断rootpath==homepath则不初始化日志路径
2.主动设置日志路径时如果为目录路径(existed),则警告后什么都不做

Log: 修复日志路径的问题
Change-Id: I2302c605e5e51c168bf7938a447f30459f83e1d3
2021-04-08 10:38:01 +08:00
wangpeng e56cbf473c feat: 导出DObjectPrivate符号
DObjectPrivate符号不导出,DWidget无法编过

Log:
Change-Id: I1d8936fd23e8f60109a6a206cf36b4309cdc93ff
2021-04-07 09:12:45 +08:00
wangpeng 230dfadc75 fix: 修复setlogFilePath()函数问题
问题:直接将日志文件路径当作了日志文件而导致的问题
解决:判断为路径,将其拼接成日志文件

Log:
Bug: https://pms.uniontech.com/zentao/bug-view-70102.html
Change-Id: I9f047f830d7f2929827f3d851c7e77b78a401adf
2021-04-06 18:46:39 +08:00
wangpeng a1920c373f feat: 屏蔽私有类符号
屏蔽私有类符号的导出

Log:
Bug: https://pms.uniontech.com/zentao/task-view-68130.html
Change-Id: I128512b34078040eb8f0eb66ccdba55175d356d9
2021-04-02 16:56:46 +08:00
ck 74f9f9da90 feat: add qdbusxml2cpp-fix
dtkcore5-bin 新增qdbusxml2cpp-fix(from dde-qt-dbus-factory, 修复生成的类中无属性变化的信号问题)。
修复没有参数时block的bug,无参数直接showhelp

Log: 添加xml2cpp修复版工具
Change-Id: Ic7c4ec4d9564735f4b9e19de67a57f2322e7a0c7
2021-03-23 11:36:04 +08:00
sunkang f12c32047e fix: 适配多版本共存,移动dtkcommon项目中的3个cmake文件到dtkcore
为适配dtk多版本共存,DtkCMakeConfig.cmake , DtkSettingsToolsMacros.cmake , DtkToolsConfig.cmake
这三个文件移动到dtkcore项目中

Log:

Change-Id: Iae421e6533152ec6e4e0244247de3e52dfa381de
2021-03-20 15:03:54 +08:00
ck 170f535ead chore: 修改ignore文件和删除无用prf文件
忽略生成的cmake文件,删除未使用的prf文件(统一使用dtkcommon中的)

Log:
Change-Id: I146360b189972bc6c85432c6304ed98506fe4c72
(cherry picked from commit e5ebd6c16571c4e5236dcb8a61ce3b023db047cb)
2021-03-12 14:01:55 +08:00
ck 91c51d6daa fix: dtkcore的依赖问题
libdtkcore-dev 依赖libkdtkcommon-dev依赖, libdtdtkcore5依赖libdtkcommon

Log:
Change-Id: I241408be9278c8d9bd622401eab0f5729bd6b0fc
2021-03-03 10:04:54 +08:00
ck 00fe1798d9 fix: dtkcore build dependcy
增加dtkcommon-dev build相关的依赖

Log:
Change-Id: I390386cf13bd2970b45f97a53ce3fe2aa541b4f9
2021-03-02 17:23:45 +08:00
sunkang b9205142b7 feat: 适配多版本合并(移除冲突添加依赖)
1. 移除prf文件,全部移动到libdtkcommon包中
2. 移除cmake文件夹中的文件,移动到libdtkcommon包中
3. 移除src/com.deepin.dtk.gschema.xml文件,移动到libdtkcommon包中
4. 修改control文件,添加依赖libdtkcommon包

Log: dtkcore多版本前的适配版本(移除冲突)
Change-Id: Iac4310cef55ab2bf31478e905d751aa121fb4078
2021-03-01 19:39:05 +08:00
ck 7fc25a8f8f fix: gerrit build error
当版本号出现类似5.4.4+r009时,VER_BUI=009被判断成8进制,此处转成10进制去掉0

Log: 修复gerrit构建出错的问题
Change-Id: I3555543bd28e0681a838738aa35df4581a462d28
2021-03-01 18:16:57 +08:00
ck c201deca55 chore: test.pro 微调
将平台相关代码放到一个合集中,删除注释的部分

Log: test工程文件微调
Change-Id: Ia29653175f1983c514b938a98390374ddbe5f247
2021-03-01 13:56:28 +08:00