bug-gnu-pspp
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PSPP-BUG: [GNU PSPP 0.7.8-ge4a2a3] testsuite: 913 923 failed


From: John Darrington
Subject: Re: PSPP-BUG: [GNU PSPP 0.7.8-ge4a2a3] testsuite: 913 923 failed
Date: Tue, 24 Jan 2012 07:05:58 +0000
User-agent: Mutt/1.5.18 (2008-05-17)

On Mon, Jan 23, 2012 at 08:12:50PM -0800, Ben Pfaff wrote:
     Jeremy Lavergne <address@hidden> writes:
     
     > 913 has an assertion failure/abort trap
     > 923 has the same PLUS the output stops where we'd expect "ok 4 - Trap 
illegal variable name"
     
     It's the same problem in each case.   What the exact problem is,
     I'm not sure.  Perhaps it is due to the recent Perl version
     upgrade.
     
     In each case, it is aborting due to this Perl code:
     
        my $var0 = PSPP::Var->new ($d, "le");
        die "trap illegal variable name" if ref $var0;
        die if $d->get_var_cnt () != 0;
     
     which is supposed to be caught by the id_is_plausible() call on
     line 329 in PSPP.xs:
     
         INIT:
          SV *errstr = get_sv("PSPP::errstr", TRUE);
          sv_setpv (errstr, "");
          if ( ! id_is_plausible (name, false))
           {
             sv_setpv (errstr, "The variable name is not valid.");
             XSRETURN_UNDEF;
           }
     
     but apparently it doesn't and instead passes through to:
     
         CODE:
          struct fmt_spec op_fmt;
     
          struct variable *v;
          op_fmt = fmt_for_output_from_input (&ip_fmt);
          v = dict_create_var (dict, name,
                 fmt_is_string (op_fmt.type) ? op_fmt.w : 0);
     
     and dict_create_var() internally assert-fails due to the invalid
     variable name.
     
     John, you know more about Perl extensions than me.  Do you have
     any idea about this?

Unfortunately I don't.  I suspect it might be a character encoding issue, but
that's just a guess.

I suggest Jeremy puts some diagnostics in id_is_plausible to see what is being 
passed in, and what it's getting back.   Also, try changing "le" to "LE" and 
see what happens.

J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://keys.gnupg.net or any PGP keyserver for public key.

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]