在CU_ASSERT通过之前使用printf(),没有printf使其失败。 GItlabCI管道

时间:2018-11-07 14:55:40

标签: gitlab-ci gitlab-ci-runner cunit

我刚刚在GitlabCI管道中实现了CUnit测试阶段。 构建阶段将编译test.c文件。 测试阶段运行可执行文件。

在本地,所有测试均通过。 在gitlab运行程序中,只有在第一个printf()之前有一个CU_ASSERT时,测试才能通过。如果我放入printf并提交,则所有15个断言都将通过。如果我删除printf并提交,则第一个ASSERT失败(然后作业被中止)。

代码如下:

void assert_parse(char *body, struct field *expected, int16_t nfields)
{
        printf("This is really just a printf");
        struct field result[nfields];
        int16_t parsed = parse(body, result, nfields);
        CU_ASSERT_FATAL(parsed == nfields);
        for (int16_t i = 0; i < nfields; i++) {
                CU_ASSERT_STRING_EQUAL_FATAL(result[i].key, expected[i].key);
                CU_ASSERT_STRING_EQUAL_FATAL(result[i].value,
                                             expected[i].value);
        }
}

printf开始时,一切都很好。 如果我删除printf,则第6行的ASSERT失败

0 个答案:

没有答案