/
githubmirror
/
rsyslog
Обзор
Документация
Войти
/
githubmirror
/
rsyslog
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/testconfgen.c
68 строк
2 KB
Rainer Gerhards
style: normalize C source formatting via clang-format (PoC)
16 июл 2025, 14:56
16 июл 2025, 14:56
b326c76
Код
Авторство
О чём код?
/* a testcase generator * THis program reads stdin, which must consist of (name,stmt) tupels * where name is a part of the config name (small!) and stmt is an actual * config statement. These tupels must be encoded as * name<SP>stmt<LF> * on stdin. After all tupels are read, the power set of all possible * configurations is generated. * Copyright (C) 2011 by Rainer Gerhards and Adiscon GmbH * Released under the GPLv3 as part of the rsyslog project. */ #include <stdio.h> #include <stdlib.h> #include <string.h> static int arr[128]; static char *name[128]; static char *stmt[128]; void output(int n) { int i; printf("name:"); for (i = 0; i < n; ++i) { if (arr[i]) { printf("-%s", name[i]); } } printf("\n"); } void pows(int n, int i) { if (i == 0) { output(n); } else { --i; arr[i] = 0; pows(n, i); arr[i] = 1; pows(n, i); } } int main(int argc, char *argv[]) { int n; char iname[512]; char istmt[2048]; int nscanned; n = 0; while (!feof(stdin)) { nscanned = scanf("%s %[^\n]s\n", iname, istmt); if (nscanned == EOF) break; else if (nscanned != 2) { fprintf(stderr, "problem scanning entry %d, scanned %d\n", n, nscanned); exit(1); } name[n] = strdup(iname); stmt[n] = strdup(istmt); n++; printf("name: %s, stmt: %s\n", iname, istmt); } /* n is on to high for an index, but just right as the actual number! */ printf("read %d entries\n", n); pows(n, n); }