]> git.ipfire.org Git - pakfire.git/commitdiff
tests: Add command that reads from stdin and writes it back
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Dec 2022 15:50:20 +0000 (15:50 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Dec 2022 15:50:20 +0000 (15:50 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
tests/stub/command.c

index 458b50b3b7a9e2ef06423a7b3b6579e4df3b919f..9549ebc0a28c756bb272de624a1ca6c34b27321b 100644 (file)
@@ -342,6 +342,27 @@ static int stat_ownership(int argc, char* argv[]) {
        return 0;
 }
 
+/*
+       Reads from stdin and writes it back to stdout
+*/
+static int _pipe(int argc, char* argv[]) {
+       char buffer[4096];
+       char* p = NULL;
+       int r;
+
+       for (;;) {
+               p = fgets(buffer, sizeof(buffer), stdin);
+               if (!p)
+                       break;
+
+               r = fprintf(stdout, "%s", buffer);
+               if (r < 0)
+                       return 1;
+       }
+
+       return 0;
+}
+
 int main(int argc, char* argv[]) {
        if (argc < 2) {
                fprintf(stderr, "No command given\n");
@@ -381,6 +402,10 @@ int main(int argc, char* argv[]) {
        else if (strcmp(command, "lines") == 0)
                callback = lines;
 
+       // Pipe
+       else if (strcmp(command, "pipe") == 0)
+               callback = _pipe;
+
        // Print nice level
        else if (strcmp(command, "print-nice") == 0)
                callback = print_nice;