chore: 规范标点
This commit is contained in:
1 parent
e54390a9f8
commit
15e79887fa
84 files changed
+5439
-5398
No files matched your search
+20
-20
@@ -1,13 +1,13 @@
|
||||
/* test_capability.c - 能力探测的纯逻辑部分
|
||||
*
|
||||
* 探测序列本身(基线 -> 合并 -> 拆开)要发 HTTP,属于端到端范畴,
|
||||
* 探测序列本身 (基线 -> 合并 -> 拆开)要发 HTTP, 属于端到端范畴,
|
||||
* 由 e2e 第 51 段对着 mock 覆盖:正常模型 / 不收图片 / 不收 tools /
|
||||
* 探测失败(401)/ --no-probe 五种走法都在那儿验。
|
||||
* 探测失败 (401)/ --no-probe 五种走法都在那儿验.
|
||||
*
|
||||
* 这里只测不需要网络的:名字映射、关闭探测时的语义、缓存查询。
|
||||
* 其中"关闭探测必须给未测而不是不支持"那条是回归测试 —— 那句话看着像废话,
|
||||
* 但 CAP_NO 恰好是 0,而 Agent 是 memset 出来的,忘了显式初始化就会一声不响地
|
||||
* 把所有工具摘掉。这个 bug 真的发生过一次。
|
||||
* 这里只测不需要网络的:名字映射、关闭探测时的语义、缓存查询.
|
||||
* 其中"关闭探测必须给未测而不是不支持"那条是回归测试 —— 那句话看着像废话,
|
||||
* 但 CAP_NO 恰好是 0, 而 Agent 是 memset 出来的, 忘了显式初始化就会一声不响地
|
||||
* 把所有工具摘掉. 这个 bug 真的发生过一次.
|
||||
*/
|
||||
#include "capability.h"
|
||||
#include "llm.h"
|
||||
@@ -31,9 +31,9 @@ static int checks = 0;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* CAP_NO 必须是 0 —— Agent 是 memset 出来的,整个 capability 模块的
|
||||
* 设计都建立在"零值不能是某个真实结论"之上。这条断言是那个 bug 的护栏。 */
|
||||
CHECK(CAP_NO == 0, "CAP_NO 应为 0(零值即'不支持'是事故的根源)");
|
||||
/* CAP_NO 必须是 0 —— Agent 是 memset 出来的, 整个 capability 模块的
|
||||
* 设计都建立在"零值不能是某个真实结论"之上. 这条断言是那个 bug 的护栏. */
|
||||
CHECK(CAP_NO == 0, "CAP_NO 应为 0 (零值即'不支持'是事故的根源)");
|
||||
CHECK(CAP_UNKNOWN != CAP_NO, "未知与不支持必须是两个不同的值");
|
||||
CHECK(CAP_UNKNOWN != CAP_YES, "未知与支持必须是两个不同的值");
|
||||
|
||||
@@ -41,12 +41,12 @@ int main(void)
|
||||
CHECK(strcmp(cap_name(CAP_YES), "支持") == 0, "YES");
|
||||
CHECK(strcmp(cap_name(CAP_NO), "不支持") == 0, "NO");
|
||||
CHECK(strcmp(cap_name(CAP_UNKNOWN), "未测") == 0, "UNKNOWN");
|
||||
/* 任何不是 YES/NO 的值都该落到"未测",而不是碰巧落到某一个 */
|
||||
/* 任何不是 YES/NO 的值都该落到"未测", 而不是碰巧落到某一个 */
|
||||
CHECK(strcmp(cap_name(42), "未测") == 0, "越界值应落到未测");
|
||||
|
||||
puts("关掉探测:一律未测,绝不冒充结论");
|
||||
/* 用可变数组而不是字面量:LlmConfig 的这些字段是 char *(真要释放的),
|
||||
* 而 -Wwrite-strings 下 "字面量" 是 const char * —— 直接赋值会被警告。 */
|
||||
puts("关掉探测:一律未测, 绝不冒充结论");
|
||||
/* 用可变数组而不是字面量:LlmConfig 的这些字段是 char * (真要释放的),
|
||||
* 而 -Wwrite-strings 下 "字面量" 是 const char * —— 直接赋值会被警告. */
|
||||
char model[] = "some-model";
|
||||
char base_url[] = "http://127.0.0.1:1/v1";
|
||||
LlmConfig cfg;
|
||||
@@ -58,17 +58,17 @@ int main(void)
|
||||
cap_cache_clear();
|
||||
|
||||
Capabilities c;
|
||||
memset(&c, 0xAB, sizeof c); /* 故意填脏,验证会被完整覆盖 */
|
||||
memset(&c, 0xAB, sizeof c); /* 故意填脏, 验证会被完整覆盖 */
|
||||
int probed = cap_get(&cfg, 0, &c, 0, NULL, 0);
|
||||
CHECK(probed == 0, "被禁用时不该声称探测过");
|
||||
CHECK(c.probed == 0, "probed 应为 0");
|
||||
CHECK(c.vision == CAP_UNKNOWN, "禁用时 vision 应为未测,实际 %d", c.vision);
|
||||
CHECK(c.tools == CAP_UNKNOWN, "禁用时 tools 应为未测,实际 %d", c.tools);
|
||||
CHECK(c.vision == CAP_UNKNOWN, "禁用时 vision 应为未测, 实际 %d", c.vision);
|
||||
CHECK(c.tools == CAP_UNKNOWN, "禁用时 tools 应为未测, 实际 %d", c.tools);
|
||||
CHECK(c.conclusive == 0, "禁用时不该声称有结论");
|
||||
|
||||
/* 关键回归:禁用时的结果拿去决定工具表,必须"全都留着" */
|
||||
CHECK(c.vision != CAP_NO, "禁用时不能表现为不支持(否则会藏掉 read_image)");
|
||||
CHECK(c.tools != CAP_NO, "禁用时不能表现为不支持(否则会摘掉整张工具表)");
|
||||
/* 关键回归:禁用时的结果拿去决定工具表, 必须"全都留着" */
|
||||
CHECK(c.vision != CAP_NO, "禁用时不能表现为不支持 (否则会藏掉 read_image)");
|
||||
CHECK(c.tools != CAP_NO, "禁用时不能表现为不支持 (否则会摘掉整张工具表)");
|
||||
|
||||
puts("缓存查询");
|
||||
Capabilities got;
|
||||
@@ -87,6 +87,6 @@ int main(void)
|
||||
cap_cache_clear();
|
||||
CHECK(1, "空指针路径没有崩");
|
||||
|
||||
printf("\n%d 项检查,%d 项失败\n", checks, failures);
|
||||
printf("\n%d 项检查, %d 项失败\n", checks, failures);
|
||||
return failures ? 1 : 0;
|
||||
}
|
||||
Reference in new issue
Block a user