static void test_failsafe(void) { char *tmp = tempnam(NULL, "cfengine_test"); WriteBuiltinFailsafePolicyToPath(tmp); Policy *failsafe = ParserParseFile(tmp, PARSER_WARNING_ALL, PARSER_WARNING_ALL); unlink(tmp); free(tmp); assert_true(failsafe); Seq *errs = SeqNew(10, PolicyErrorDestroy); PolicyCheckPartial(failsafe, errs); DumpErrors(errs); assert_int_equal(0, SeqLength(errs)); { EvalContext *ctx = EvalContextNew(); PolicyCheckRunnable(ctx, failsafe, errs, false); DumpErrors(errs); assert_int_equal(0, SeqLength(errs)); EvalContextDestroy(ctx); } assert_int_equal(0, (SeqLength(errs))); SeqDestroy(errs); PolicyDestroy(failsafe); }
bool WriteBuiltinFailsafePolicy(const char *workdir) { char failsafe_path[CF_BUFSIZE]; snprintf(failsafe_path, CF_BUFSIZE - 1, "%s/inputs/failsafe.cf", workdir); MapName(failsafe_path); return WriteBuiltinFailsafePolicyToPath(failsafe_path); }