Re: -var-create testsuite updates

Vladimir Prus
2007-02-12T06:18:27Z

Nick Roberts wrote:

> > > (Groan) I picked up the tests which were designed to fail but changed
> > > the
> > > others by autopilot. I'll work my way through the changes to work
> > > out how many others we should have kept and submit a new patch.
> >
> > Thanks a lot! I didn't want to actually ask you to do this, since it's
> > a pile of grunt work, but it would certainly be nice to have them back.
> >
> > I only noticed because I had a few patches which changed long to
> > long( int)? to support another compiler, and they no longer applied.
>
> Some tests are explicitly testing -var-create e.g mi-var-cmd.exp, others
> might not be but still provide a handy check on the output e.g
>
> *** gdb.mi/mi-var-child.exp
>
> # Test: c_variable-4.2
> # Desc: create variable "struct_declarations"
> mi_gdb_test "-var-create struct_declarations * struct_declarations" \
> "\\^done,name=\"struct_declarations\",numchild=\"11\",type=\"struct
> _struct_decl\"" \
> "create local variable struct_declarations"
>
> I don't really like mi_create_varobj as it removes checks on type, number
> of
> children etc.

This is intentional. Unless you're testing -var-create itself, you don't
need to check every single output field from -var-create, because:

1. Tests for -var-create itself should test everything already,
you don't get anything by extra tests.
2. Checking output of -var-create everywhere means any
change in that output requires to update expected output,
which is pointless.

I think there should be "mi_var_create_varobj_test" that tests entire output.
Tests for -var-create itself should use that.

> How about if I revert all my changes which use
> mi_create_varobj and just add value=\".*\" to the regexp in each
> mi_gdb_test for -var-create?

Why introducing new "mi_var_create_varobj_test" won't work? gdb testsuite
has too much of literal expected output as it is.

- Volodya