Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Unity
提交
695dd04d
T
Third Party Unity
项目概览
OpenHarmony
/
Third Party Unity
大约 1 年 前同步成功
通知
34
Star
144
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Unity
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
695dd04d
编写于
10月 31, 2018
作者:
M
Mark VanderVoord
提交者:
GitHub
10月 31, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #365 from Kochise/patch-2
Patch 2 (Thanks, @Kochise !)
上级
27f631aa
50ce8a88
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
101 addition
and
8 deletion
+101
-8
src/unity.c
src/unity.c
+101
-8
未找到文件。
src/unity.c
浏览文件 @
695dd04d
...
...
@@ -67,6 +67,7 @@ static const char UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " ";
* Pretty Printers & Test Result Output Handlers
*-----------------------------------------------*/
/*-----------------------------------------------*/
void
UnityPrint
(
const
char
*
string
)
{
const
char
*
pch
=
string
;
...
...
@@ -116,6 +117,7 @@ void UnityPrint(const char* string)
}
}
/*-----------------------------------------------*/
void
UnityPrintLen
(
const
char
*
string
,
const
UNITY_UINT32
length
)
{
const
char
*
pch
=
string
;
...
...
@@ -212,7 +214,9 @@ void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print)
int
nibble
;
char
nibbles
=
nibbles_to_print
;
if
((
unsigned
)
nibbles
>
(
2
*
sizeof
(
number
)))
{
nibbles
=
2
*
sizeof
(
number
);
}
while
(
nibbles
>
0
)
{
...
...
@@ -275,9 +279,18 @@ void UnityPrintFloat(const UNITY_DOUBLE input_number)
}
/* handle zero, NaN, and +/- infinity */
if
(
number
==
0
.
0
f
)
UnityPrint
(
"0"
);
else
if
(
isnan
(
number
))
UnityPrint
(
"nan"
);
else
if
(
isinf
(
number
))
UnityPrint
(
"inf"
);
if
(
number
==
0
.
0
f
)
{
UnityPrint
(
"0"
);
}
else
if
(
isnan
(
number
))
{
UnityPrint
(
"nan"
);
}
else
if
(
isinf
(
number
))
{
UnityPrint
(
"inf"
);
}
else
{
int
exponent
=
0
;
...
...
@@ -479,6 +492,7 @@ static void UnityPrintExpectedAndActualStringsLen(const char* expected,
* Assertion & Control Helpers
*-----------------------------------------------*/
/*-----------------------------------------------*/
static
int
UnityIsOneArrayNull
(
UNITY_INTERNAL_PTR
expected
,
UNITY_INTERNAL_PTR
actual
,
const
UNITY_LINE_TYPE
lineNumber
,
...
...
@@ -511,6 +525,7 @@ static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected,
* Assertion Functions
*-----------------------------------------------*/
/*-----------------------------------------------*/
void
UnityAssertBits
(
const
UNITY_INT
mask
,
const
UNITY_INT
expected
,
const
UNITY_INT
actual
,
...
...
@@ -617,9 +632,15 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
UnityPrintPointlessAndBail
();
}
if
(
expected
==
actual
)
return
;
/* Both are NULL or same pointer */
if
(
expected
==
actual
)
{
return
;
/* Both are NULL or same pointer */
}
if
(
UnityIsOneArrayNull
(
expected
,
actual
,
lineNumber
,
msg
))
{
UNITY_FAIL_AND_BAIL
;
}
while
((
elements
>
0
)
&&
elements
--
)
{
...
...
@@ -704,12 +725,14 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
UnityPrint(UnityStrDelta)
#endif
/* UNITY_EXCLUDE_FLOAT_PRINT */
/*-----------------------------------------------*/
static
int
UnityFloatsWithin
(
UNITY_FLOAT
delta
,
UNITY_FLOAT
expected
,
UNITY_FLOAT
actual
)
{
UNITY_FLOAT
diff
;
UNITY_FLOAT_OR_DOUBLE_WITHIN
(
delta
,
expected
,
actual
,
diff
);
}
/*-----------------------------------------------*/
void
UnityAssertEqualFloatArray
(
UNITY_PTR_ATTRIBUTE
const
UNITY_FLOAT
*
expected
,
UNITY_PTR_ATTRIBUTE
const
UNITY_FLOAT
*
actual
,
const
UNITY_UINT32
num_elements
,
...
...
@@ -728,9 +751,15 @@ void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected,
UnityPrintPointlessAndBail
();
}
if
(
expected
==
actual
)
return
;
/* Both are NULL or same pointer */
if
(
expected
==
actual
)
{
return
;
/* Both are NULL or same pointer */
}
if
(
UnityIsOneArrayNull
((
UNITY_INTERNAL_PTR
)
expected
,
(
UNITY_INTERNAL_PTR
)
actual
,
lineNumber
,
msg
))
{
UNITY_FAIL_AND_BAIL
;
}
while
(
elements
--
)
{
...
...
@@ -815,14 +844,18 @@ void UnityAssertFloatSpecial(const UNITY_FLOAT actual,
UnityTestResultsFailBegin
(
lineNumber
);
UnityPrint
(
UnityStrExpected
);
if
(
!
should_be_trait
)
{
UnityPrint
(
UnityStrNot
);
}
UnityPrint
(
trait_names
[
trait_index
]);
UnityPrint
(
UnityStrWas
);
#ifndef UNITY_EXCLUDE_FLOAT_PRINT
UnityPrintFloat
((
UNITY_DOUBLE
)
actual
);
#else
if
(
should_be_trait
)
{
UnityPrint
(
UnityStrNot
);
}
UnityPrint
(
trait_names
[
trait_index
]);
#endif
UnityAddMsgIfSpecified
(
msg
);
...
...
@@ -840,6 +873,7 @@ static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected, UNITY_D
UNITY_FLOAT_OR_DOUBLE_WITHIN
(
delta
,
expected
,
actual
,
diff
);
}
/*-----------------------------------------------*/
void
UnityAssertEqualDoubleArray
(
UNITY_PTR_ATTRIBUTE
const
UNITY_DOUBLE
*
expected
,
UNITY_PTR_ATTRIBUTE
const
UNITY_DOUBLE
*
actual
,
const
UNITY_UINT32
num_elements
,
...
...
@@ -858,9 +892,15 @@ void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expecte
UnityPrintPointlessAndBail
();
}
if
(
expected
==
actual
)
return
;
/* Both are NULL or same pointer */
if
(
expected
==
actual
)
{
return
;
/* Both are NULL or same pointer */
}
if
(
UnityIsOneArrayNull
((
UNITY_INTERNAL_PTR
)
expected
,
(
UNITY_INTERNAL_PTR
)
actual
,
lineNumber
,
msg
))
{
UNITY_FAIL_AND_BAIL
;
}
while
(
elements
--
)
{
...
...
@@ -900,7 +940,6 @@ void UnityAssertDoublesWithin(const UNITY_DOUBLE delta,
}
/*-----------------------------------------------*/
void
UnityAssertDoubleSpecial
(
const
UNITY_DOUBLE
actual
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
,
...
...
@@ -945,14 +984,18 @@ void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual,
UnityTestResultsFailBegin
(
lineNumber
);
UnityPrint
(
UnityStrExpected
);
if
(
!
should_be_trait
)
{
UnityPrint
(
UnityStrNot
);
}
UnityPrint
(
trait_names
[
trait_index
]);
UnityPrint
(
UnityStrWas
);
#ifndef UNITY_EXCLUDE_FLOAT_PRINT
UnityPrintFloat
(
actual
);
#else
if
(
should_be_trait
)
{
UnityPrint
(
UnityStrNot
);
}
UnityPrint
(
trait_names
[
trait_index
]);
#endif
UnityAddMsgIfSpecified
(
msg
);
...
...
@@ -975,17 +1018,25 @@ void UnityAssertNumbersWithin(const UNITY_UINT delta,
if
((
style
&
UNITY_DISPLAY_RANGE_INT
)
==
UNITY_DISPLAY_RANGE_INT
)
{
if
(
actual
>
expected
)
{
Unity
.
CurrentTestFailed
=
(
UNITY_UINT
)((
UNITY_UINT
)(
actual
-
expected
)
>
delta
);
}
else
{
Unity
.
CurrentTestFailed
=
(
UNITY_UINT
)((
UNITY_UINT
)(
expected
-
actual
)
>
delta
);
}
}
else
{
if
((
UNITY_UINT
)
actual
>
(
UNITY_UINT
)
expected
)
{
Unity
.
CurrentTestFailed
=
(
UNITY_UINT
)((
UNITY_UINT
)(
actual
-
expected
)
>
delta
);
}
else
{
Unity
.
CurrentTestFailed
=
(
UNITY_UINT
)((
UNITY_UINT
)(
expected
-
actual
)
>
delta
);
}
}
if
(
Unity
.
CurrentTestFailed
)
{
...
...
@@ -1180,9 +1231,15 @@ void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected,
UnityPrintPointlessAndBail
();
}
if
(
expected
==
actual
)
return
;
/* Both are NULL or same pointer */
if
(
expected
==
actual
)
{
return
;
/* Both are NULL or same pointer */
}
if
(
UnityIsOneArrayNull
(
expected
,
actual
,
lineNumber
,
msg
))
{
UNITY_FAIL_AND_BAIL
;
}
while
(
elements
--
)
{
...
...
@@ -1259,6 +1316,7 @@ UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size)
}
#ifndef UNITY_EXCLUDE_FLOAT
/*-----------------------------------------------*/
UNITY_INTERNAL_PTR
UnityFloatToPtr
(
const
float
num
)
{
UnityQuickCompare
.
f
=
num
;
...
...
@@ -1267,6 +1325,7 @@ UNITY_INTERNAL_PTR UnityFloatToPtr(const float num)
#endif
#ifndef UNITY_EXCLUDE_DOUBLE
/*-----------------------------------------------*/
UNITY_INTERNAL_PTR
UnityDoubleToPtr
(
const
double
num
)
{
UnityQuickCompare
.
d
=
num
;
...
...
@@ -1278,6 +1337,7 @@ UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num)
* Control Functions
*-----------------------------------------------*/
/*-----------------------------------------------*/
void
UnityFail
(
const
char
*
msg
,
const
UNITY_LINE_TYPE
line
)
{
RETURN_IF_FAIL_OR_IGNORE
;
...
...
@@ -1402,6 +1462,7 @@ char* UnityOptionIncludeNamed = NULL;
char
*
UnityOptionExcludeNamed
=
NULL
;
int
UnityVerbosity
=
1
;
/*-----------------------------------------------*/
int
UnityParseOptions
(
int
argc
,
char
**
argv
)
{
UnityOptionIncludeNamed
=
NULL
;
...
...
@@ -1418,9 +1479,13 @@ int UnityParseOptions(int argc, char** argv)
case
'n'
:
/* include tests with name including this string */
case
'f'
:
/* an alias for -n */
if
(
argv
[
i
][
2
]
==
'='
)
{
UnityOptionIncludeNamed
=
&
argv
[
i
][
3
];
}
else
if
(
++
i
<
argc
)
{
UnityOptionIncludeNamed
=
argv
[
i
];
}
else
{
UnityPrint
(
"ERROR: No Test String to Include Matches For"
);
...
...
@@ -1436,9 +1501,13 @@ int UnityParseOptions(int argc, char** argv)
break
;
case
'x'
:
/* exclude tests with name including this string */
if
(
argv
[
i
][
2
]
==
'='
)
{
UnityOptionExcludeNamed
=
&
argv
[
i
][
3
];
}
else
if
(
++
i
<
argc
)
{
UnityOptionExcludeNamed
=
argv
[
i
];
}
else
{
UnityPrint
(
"ERROR: No Test String to Exclude Matches For"
);
...
...
@@ -1458,6 +1527,7 @@ int UnityParseOptions(int argc, char** argv)
return
0
;
}
/*-----------------------------------------------*/
int
IsStringInBiggerString
(
const
char
*
longstring
,
const
char
*
shortstring
)
{
const
char
*
lptr
=
longstring
;
...
...
@@ -1465,7 +1535,9 @@ int IsStringInBiggerString(const char* longstring, const char* shortstring)
const
char
*
lnext
=
lptr
;
if
(
*
sptr
==
'*'
)
{
return
1
;
}
while
(
*
lptr
)
{
...
...
@@ -1496,9 +1568,11 @@ int IsStringInBiggerString(const char* longstring, const char* shortstring)
lptr
=
lnext
;
sptr
=
shortstring
;
}
return
0
;
}
/*-----------------------------------------------*/
int
UnityStringArgumentMatches
(
const
char
*
str
)
{
int
retval
;
...
...
@@ -1511,7 +1585,9 @@ int UnityStringArgumentMatches(const char* str)
while
(
ptr1
[
0
]
!=
0
)
{
if
((
ptr1
[
0
]
==
'"'
)
||
(
ptr1
[
0
]
==
'\''
))
{
ptr1
++
;
}
/* look for the start of the next partial */
ptr2
=
ptr1
;
...
...
@@ -1520,26 +1596,37 @@ int UnityStringArgumentMatches(const char* str)
{
ptr2
++
;
if
((
ptr2
[
0
]
==
':'
)
&&
(
ptr2
[
1
]
!=
0
)
&&
(
ptr2
[
0
]
!=
'\''
)
&&
(
ptr2
[
0
]
!=
'"'
)
&&
(
ptr2
[
0
]
!=
','
))
{
ptrf
=
&
ptr2
[
1
];
}
}
while
((
ptr2
[
0
]
!=
0
)
&&
(
ptr2
[
0
]
!=
'\''
)
&&
(
ptr2
[
0
]
!=
'"'
)
&&
(
ptr2
[
0
]
!=
','
));
while
((
ptr2
[
0
]
!=
0
)
&&
((
ptr2
[
0
]
==
':'
)
||
(
ptr2
[
0
]
==
'\''
)
||
(
ptr2
[
0
]
==
'"'
)
||
(
ptr2
[
0
]
==
','
)))
{
ptr2
++
;
}
/* done if complete filename match */
retval
=
IsStringInBiggerString
(
Unity
.
TestFile
,
ptr1
);
if
(
retval
==
1
)
{
return
retval
;
}
/* done if testname match after filename partial match */
if
((
retval
==
2
)
&&
(
ptrf
!=
0
))
{
if
(
IsStringInBiggerString
(
Unity
.
CurrentTestName
,
ptrf
))
{
return
1
;
}
}
/* done if complete testname match */
if
(
IsStringInBiggerString
(
Unity
.
CurrentTestName
,
ptr1
)
==
1
)
{
return
1
;
}
ptr1
=
ptr2
;
}
...
...
@@ -1548,6 +1635,7 @@ int UnityStringArgumentMatches(const char* str)
return
0
;
}
/*-----------------------------------------------*/
int
UnityTestMatches
(
void
)
{
/* Check if this test name matches the included test pattern */
...
...
@@ -1557,14 +1645,19 @@ int UnityTestMatches(void)
retval
=
UnityStringArgumentMatches
(
UnityOptionIncludeNamed
);
}
else
{
retval
=
1
;
}
/* Check if this test name matches the excluded test pattern */
if
(
UnityOptionExcludeNamed
)
{
if
(
UnityStringArgumentMatches
(
UnityOptionExcludeNamed
))
{
retval
=
0
;
}
}
return
retval
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录