Обсуждение: regress.sh
The regression tests no longer seem to be using the "alternative" expected
files should they exist. I have run out of time looking for the cause, but
the story so far is in going from version 1.28-1.29 of regress.sh,
SYSTEM has gone from
... printf"%s-%s", $1, a[1] }'
to
... printf"%s-%s", $portname, a[1] }'
which means an example of output has changed from
i386-netbsd
to
i386-unknown-netbsd1.4-netbsd
Now, portname comes from PORTNAME=${os} in configure, which it appears ought
to be set in my case to
netbsd*) os=bsd need_tas=no case "$host_cpu" in powerpc) elf=yes ;; esac ;;
"bsd", so I would expect SYSTEM to be set to "bsd-netbsd" ?! which doesn't
seem right either...
Maybe "someone" could take another look?
Cheers,
Patrick
>
> The regression tests no longer seem to be using the "alternative" expected
> files should they exist. I have run out of time looking for the cause, but
> the story so far is in going from version 1.28-1.29 of regress.sh,
> SYSTEM has gone from
> ... printf"%s-%s", $1, a[1] }'
> to
> ... printf"%s-%s", $portname, a[1] }'
> which means an example of output has changed from
> i386-netbsd
> to
> i386-unknown-netbsd1.4-netbsd
>
> Now, portname comes from PORTNAME=${os} in configure, which it appears ought
> to be set in my case to
>
> netbsd*)
> os=bsd need_tas=no
> case "$host_cpu" in
> powerpc) elf=yes ;;
> esac ;;
>
> "bsd", so I would expect SYSTEM to be set to "bsd-netbsd" ?! which doesn't
> seem right either...
>
> Maybe "someone" could take another look?
Ouch - looks like my recent change made while adding the
NUMERIC regression tests.
Looking at the actual sources I wonder why it can cause any
problems. At the very beginning I've added
portname=$1
export portname
shift
That variable is used ONLY ONCE in the awk line you're
quoting above. Prior to my changes, $1 was directly used as
argument to awk and all remaining args ignored silently by
regress.sh.
Is it required that variables local in regress.sh have upper
case? If so, why?
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#========================================= wieck@debis.com (Jan Wieck) #
Jan Wieck wrote:
>
> Looking at the actual sources I wonder why it can cause any
> problems. At the very beginning I've added
>
> portname=$1
> export portname
> shift
>
> That variable is used ONLY ONCE in the awk line you're
> quoting above. Prior to my changes, $1 was directly used as
> argument to awk and all remaining args ignored silently by
> regress.sh.
Ah! portname=$1 means take $1 command line argument that the script
was called by.
awk -F\- '{ split($3,a,/[0-9]/); printf"%s-%s", $1, a[1] }'
$1 here is the 1st variable from the line split by awk. ie., $1 in the
first case is "sh" syntax, $1 in second case is "awk" syntax.
So now that I know there is no intentional magic, we can go back successfully
with
39c39
< SYSTEM=`../../config.guess | awk -F\- '{ split($3,a,/[0-9]/); printf"%s-%s", $portname, a[1] }'`
---
> SYSTEM=`../../config.guess | awk -F\- '{ split($3,a,/[0-9]/); printf"%s-%s", $1, a[1] }'`
the only remaining query being:
*** expected/random.out Sun Aug 30 19:50:58 1998
--- results/random.out Mon Jun 14 15:18:04 1999
***************
*** 19,23 **** WHERE random NOT BETWEEN 80 AND 120; random ------
! (0 rows)
--- 19,24 ---- WHERE random NOT BETWEEN 80 AND 120; random ------
! 124
! (1 row)
?
Cheers,
Patrick
wieck@debis.com (Jan Wieck) writes:
> Is it required that variables local in regress.sh have upper
> case? If so, why?
Nope, you just plain broke it. The only use of the script's $1
parameter is *above* where you inserted portname=$1 (the test to
see if on windows).
The $1 in the awk script is awk's own meaning of $1. Since it is
inside single quotes, the shell doesn't substitute for it.
I strongly suggest patching this before 6.5 ...
regards, tom lane
> the only remaining query being:
> *** expected/random.out Sun Aug 30 19:50:58 1998
> --- results/random.out Mon Jun 14 15:18:04 1999
> ***************
> *** 19,23 ****
> WHERE random NOT BETWEEN 80 AND 120;
> random
> ------
> ! (0 rows)
>
> --- 19,24 ----
> WHERE random NOT BETWEEN 80 AND 120;
> random
> ------
> ! 124
> ! (1 row)
Well, sometimes random is too random. I'll bet if you run again you
will see a different result; I'd hope that *usually* you will see the
hoped-for result. I didn't want to make the criteria too loose so that
we would miss real problems. But sometimes the test fails, even on my
machine.
- Thomas
--
Thomas Lockhart lockhart@alumni.caltech.edu
South Pasadena, California
>
> wieck@debis.com (Jan Wieck) writes:
> > Is it required that variables local in regress.sh have upper
> > case? If so, why?
>
> Nope, you just plain broke it. The only use of the script's $1
> parameter is *above* where you inserted portname=$1 (the test to
> see if on windows).
Uhhhh - and there where times where I wrote awk scripts who's
output got piped into 'groff -p' to produce statistical
reports with graphics - hurts to see that I'm no real
programmer anymore :-(
>
> The $1 in the awk script is awk's own meaning of $1. Since it is
> inside single quotes, the shell doesn't substitute for it.
>
> I strongly suggest patching this before 6.5 ...
No comment other that "sorry".
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#========================================= wieck@debis.com (Jan Wieck) #
Thomas Lockhart wrote: > > Well, sometimes random is too random. ?! So all is alright then :) Cheers, Patrick
Thomas Lockhart wrote: >> the only remaining query being: >> *** expected/random.out Sun Aug 30 19:50:58 1998 >> --- results/random.out Mon Jun 14 15:18:04 1999 >> *************** >> *** 19,23 **** >> WHERE random NOT BETWEEN 80 AND 120;>> random >> ------ >> ! (0 rows) >> >> --- 19,24 ---- >> WHERE random NOT BETWEEN 80 AND 120; >> random >> ------ >> ! 124 >> ! (1 row) > >Well, sometimes random is too random. I'll bet if you run again you >will see a differentresult; I'd hope that *usually* you will see the >hoped-for result. I didn't want to make the criteria too looseso that >we would miss real problems. But sometimes the test fails, even on my >machine. Every time I have run it I have had a 124 row. That's about 8 times. (glibc2/linux/i386) -- Vote against SPAM: http://www.politik-digital.de/spam/ ======================================== Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key ID32B8FAA1 ======================================== "I beseech you therefore, brethren, by the merciesof God, that ye present your bodies a living sacrifice, holy, acceptable unto God, which is your reasonable service." Romans 12:1