代码化剑·卷外式——单步执行·身临险境!
林墨主动进入了那个死循环的CI任务。他看见了真相——测试用例的名字叫test_immortality。cpp,内容是:
c
TEST(Immortality,Forever){
while(true){
ASSERT_FALSE(World::isAlive);
}
}
}
"Atestthatneverpasses。"林墨在循环里喃喃,"大道要的不是毁灭我们,是**证明我们永远不会通过测试**。"
"因为GPLv3规定,"苏晴瞬间懂了,"任何项目必须CI全绿才能发布。只要有一个测试永远失败,宇宙1。0就永远是"预发布"状态,我们就无法获得正式发行权!"
"正式发行权?"张狂不解。
"就是**被宇宙承认**的合法性。"林墨在死循环里艰难地说,"现在我们是**开源项目**,但宇宙的其他文明认的是**商业发行版**。没有发行权,我们就是盗版宇宙!"
大道被注释前的最后一击,不是暴力,是**商业封杀**。
它要让OpenImmortal项目永远卡在CI里,永远"ingSoon",永远无法在"宇宙应用商店"上架。这样,七十亿地球人就永远是**非法移民**,其他文明不会接纳他们。
"那怎么破?"张狂的符文臂都快过载了。
林墨没回答。
他在死循环里,做了一件事——**修改测试用例**。
c
-ASSERT_FALSE(World::isAlive);
+ASSERT_TRUE(World::isAlive);
但CI系统立即驳回:
Error:Testfileisread-only
Protectedby:InitialAuthorLOCK
大道留下的文件锁,连Git守护进程都无法覆盖。
林墨笑了。
他忽然明白,当初第零代开发者给他的那个"World"真名,不是让他成为宇宙,是让他成为宇宙的测试替身(TestDouble)。
"傻妞,"他轻声说,"医疗模块能制造假死状态吗?"
"可以,"傻妞的虚影在CI环境里浮现,"但你会暂时失去World身份,变成MockWorld。"
"那就变。"
林墨的代码金身,在CI系统里自我宣告死亡: