Re: -var-create testsuite updates

Nick Roberts
2007-02-12T09:30:38Z

> > 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.

Looking at a test in isolation, its not immediately clear whether it's a test
for -var-create itself, or not. For example, what about the one above in
mi-var-child.exp.

> 2. Checking output of -var-create everywhere means any
> change in that output requires to update expected output,
> which is pointless.

It's tedious but not pointless. Testing more cases, providing it doesn't add
to the run time, can only be helpful. Also the output of any change in output
should be tested too.

> 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.

The example above needs a specific number (11) for numchild. Are you proposing
to add an argument for each field value? In which case it might be as easy
to use mi_gdb_test.

I prefer to keep the tests simple so that I can remember how they work. I
generally just use cut and paste anyway.

--
Nick http://www.inet.net.nz/~nickrob