* [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed @ 2009-11-23 17:33 Brian Gernhardt 2009-11-23 18:27 ` Junio C Hamano 0 siblings, 1 reply; 4+ messages in thread From: Brian Gernhardt @ 2009-11-23 17:33 UTC (permalink / raw) To: Git List; +Cc: Junio C Hamano Recognizing \r in a regex is something GNU sed will do, but other sed implementation's won't. (Found with BSD sed on OS X.) So use a literal carriage return instead. Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com> --- t/gitweb-lib.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh index 32b841d..35dda58 100644 --- a/t/gitweb-lib.sh +++ b/t/gitweb-lib.sh @@ -52,8 +52,8 @@ gitweb_run () { rm -f gitweb.log && perl -- "$SCRIPT_NAME" \ >gitweb.output 2>gitweb.log && - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && + sed -e '/^ $/q' <gitweb.output >gitweb.headers && + sed -e '1,/^ $/d' <gitweb.output >gitweb.body && if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else true; fi # gitweb.log is left for debugging -- 1.6.5.3.433.g11067 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed 2009-11-23 17:33 [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed Brian Gernhardt @ 2009-11-23 18:27 ` Junio C Hamano 2009-11-23 18:50 ` Brian Gernhardt 2009-11-24 16:59 ` Jakub Narebski 0 siblings, 2 replies; 4+ messages in thread From: Junio C Hamano @ 2009-11-23 18:27 UTC (permalink / raw) To: Brian Gernhardt; +Cc: Git List, Jakub Narebski Brian Gernhardt <brian@gernhardtsoftware.com> writes: > Recognizing \r in a regex is something GNU sed will do, but other sed > implementation's won't. (Found with BSD sed on OS X.) So use a > literal carriage return instead. I'd actually prefer not having to deal with this issue. How about doing something like this instead? t/gitweb-lib.sh | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh index 32b841d..3121950 100644 --- a/t/gitweb-lib.sh +++ b/t/gitweb-lib.sh @@ -52,8 +52,18 @@ gitweb_run () { rm -f gitweb.log && perl -- "$SCRIPT_NAME" \ >gitweb.output 2>gitweb.log && - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && + perl -w -e ' + open O, ">gitweb.headers"; + while (<>) { + print O; + last if (/^\r$/ || /^$/); + } + open O, ">gitweb.body"; + while (<>) { + print O; + } + close O; + ' gitweb.output && if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else true; fi # gitweb.log is left for debugging ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed 2009-11-23 18:27 ` Junio C Hamano @ 2009-11-23 18:50 ` Brian Gernhardt 2009-11-24 16:59 ` Jakub Narebski 1 sibling, 0 replies; 4+ messages in thread From: Brian Gernhardt @ 2009-11-23 18:50 UTC (permalink / raw) To: Junio C Hamano; +Cc: Git List, Jakub Narebski On Nov 23, 2009, at 1:27 PM, Junio C Hamano wrote: > Brian Gernhardt <brian@gernhardtsoftware.com> writes: > >> Recognizing \r in a regex is something GNU sed will do, but other sed >> implementation's won't. (Found with BSD sed on OS X.) So use a >> literal carriage return instead. > > I'd actually prefer not having to deal with this issue. How about doing > something like this instead? Works for me. I just went for the obvious minimal change to make it work. But since we're testing a perl script, we might as well just use perl to deal with it's output. ~~ Brian ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed 2009-11-23 18:27 ` Junio C Hamano 2009-11-23 18:50 ` Brian Gernhardt @ 2009-11-24 16:59 ` Jakub Narebski 1 sibling, 0 replies; 4+ messages in thread From: Jakub Narebski @ 2009-11-24 16:59 UTC (permalink / raw) To: Junio C Hamano; +Cc: Brian Gernhardt, Git List On Mon, 23 Nov 2009, Junio C Hamano wrote: > Brian Gernhardt <brian@gernhardtsoftware.com> writes: > > > Recognizing \r in a regex is something GNU sed will do, but other sed > > implementation's won't. (Found with BSD sed on OS X.) So use a > > literal carriage return instead. [...] > > diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh > > index 32b841d..35dda58 100644 > > --- a/t/gitweb-lib.sh > > +++ b/t/gitweb-lib.sh > > @@ -52,8 +52,8 @@ gitweb_run () { > > rm -f gitweb.log && > > perl -- "$SCRIPT_NAME" \ > > >gitweb.output 2>gitweb.log && > > - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && > > - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && > > + sed -e '/^ > > $/q' <gitweb.output >gitweb.headers && > > + sed -e '1,/^ > > $/d' <gitweb.output >gitweb.body && > > if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else > > true; fi > > # gitweb.log is left for debugging If we were to do it this way, I would prefer to set and then use 'cr' or 'crlf' variable (in sed expression). > > I'd actually prefer not having to deal with this issue. How about doing > something like this instead? > > t/gitweb-lib.sh | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh > index 32b841d..3121950 100644 > --- a/t/gitweb-lib.sh > +++ b/t/gitweb-lib.sh > @@ -52,8 +52,18 @@ gitweb_run () { > rm -f gitweb.log && > perl -- "$SCRIPT_NAME" \ > >gitweb.output 2>gitweb.log && > - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && > - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && > + perl -w -e ' "perl", or "$PERL", or "$PERL_PATH"? > + open O, ">gitweb.headers"; Well, modern Perl would use here + open my $fh, ">", "gitweb.headers"; But it is not that important here. > + while (<>) { > + print O; > + last if (/^\r$/ || /^$/); > + } > + open O, ">gitweb.body"; > + while (<>) { > + print O; > + } > + close O; > + ' gitweb.output && > if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else true; fi > > # gitweb.log is left for debugging > This is a good solution. We test Perl script anyway (so Perl is required for running this test), and this way we can do this portably and in one pass (one fork). -- Jakub Narebski Poland ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-11-24 17:00 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-11-23 17:33 [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed Brian Gernhardt 2009-11-23 18:27 ` Junio C Hamano 2009-11-23 18:50 ` Brian Gernhardt 2009-11-24 16:59 ` Jakub Narebski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).