X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-pipe-filter-gi1.c;h=b15bd2cb1977eb3be36a094b4a99f7ce17728b57;hb=0c6fd3b84775ca4cf1045d4cc07a2dff4c73f29b;hp=95b9aa0cd9b31a1b735d05038de2459409a4db14;hpb=8ae6a07d62256797e8ddcc918ff3e4f10ff69417;p=gnulib.git diff --git a/tests/test-pipe-filter-gi1.c b/tests/test-pipe-filter-gi1.c index 95b9aa0cd..b15bd2cb1 100644 --- a/tests/test-pipe-filter-gi1.c +++ b/tests/test-pipe-filter-gi1.c @@ -1,5 +1,5 @@ /* Test of filtering of data through a subprocess. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009-2014 Free Software Foundation, Inc. Written by Bruno Haible , 2009. This program is free software: you can redistribute it and/or modify @@ -19,29 +19,16 @@ #include "pipe-filter.h" -#include -#include - #include "binary-io.h" #include "c-ctype.h" #include "read-file.h" #include "progname.h" - -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ - abort (); \ - } \ - } \ - while (0) +#include "macros.h" -/* Pipe a text file through 'tr a-z A-Z', which converts ASCII characters from - lower case to upper case. */ +/* Pipe a text file through 'LC_ALL=C tr "[a-z]" "[A-Z]"', or equivalently, + 'tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"', which + converts ASCII characters from lower case to upper case. */ struct locals { @@ -70,12 +57,12 @@ done_read (void *data_read, size_t num_bytes_read, void *private_data) { /* Handle conversion NL -> CRLF possibly done by the child process. */ if (!(O_BINARY && *q == '\r')) - { - char orig = *p; - char expected = c_toupper (orig); - ASSERT (*q == expected); - p++; - } + { + char orig = *p; + char expected = c_toupper (orig); + ASSERT (*q == expected); + p++; + } } l->nread = p - l->input; } @@ -83,16 +70,19 @@ done_read (void *data_read, size_t num_bytes_read, void *private_data) int main (int argc, char *argv[]) { + const char *tr_program; const char *input_filename; size_t input_size; char *input; set_program_name (argv[0]); - ASSERT (argc == 2); + ASSERT (argc == 3); + + tr_program = argv[1]; /* Read some text from a file. */ - input_filename = argv[1]; + input_filename = argv[2]; input = read_binary_file (input_filename, &input_size); ASSERT (input != NULL); @@ -106,13 +96,13 @@ main (int argc, char *argv[]) l.input = input; l.nread = 0; - argv[0] = "tr"; - argv[1] = "a-z"; - argv[2] = "A-Z"; + argv[0] = tr_program; + argv[1] = "abcdefghijklmnopqrstuvwxyz"; + argv[2] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; argv[3] = NULL; - f = pipe_filter_gi_create ("tr", "tr", argv, false, true, - prepare_read, done_read, &l); + f = pipe_filter_gi_create ("tr", tr_program, argv, false, true, + prepare_read, done_read, &l); ASSERT (f != NULL); result = pipe_filter_gi_write (f, input, input_size); ASSERT (result == 0);