Improve code coverage of Rust testing
authorTom Tromey <tom@tromey.com>
Thu, 22 Apr 2021 13:16:36 +0000 (07:16 -0600)
committerTom Tromey <tom@tromey.com>
Thu, 22 Apr 2021 13:16:36 +0000 (07:16 -0600)
commit22f80c0f77be6304b9632827d8161e28cb4a195a
tree15a04368f45009943a10d976eb442c761c257dc6
parentb11b2969a9a507d9e42c8029cfeb06b9bc41fceb
Improve code coverage of Rust testing

I enabled code coverage and ran the gdb test suite, and noticed that
the new Rust parser was missing testing on a few lines that were easy
to cover.  This patch mostly adds tests for certain syntax errors; but
this process also uncovered a couple of real bugs: I must have
cut-and-pasted the 'sizeof' parsing code from some other code, because
it is checking for KW_MUT (the old bison parser did not do this), and
the array length check is actually impossible because a negative
number like '-1' is parsed as two tokens.

gdb/ChangeLog
2021-04-22  Tom Tromey  <tom@tromey.com>

* rust-parse.c (rust_parser::parse_sizeof): Remove KW_MUT code.
(struct typed_val_int) <val>: Now ULONGEST.
(rust_parser::parse_array_type): Remove negative check.
(rust_lex_int_test): Change 'value' to ULONGEST.

gdb/testsuite/ChangeLog
2021-04-22  Tom Tromey  <tom@tromey.com>

* gdb.rust/modules.exp: Add checks for syntax errors.
* gdb.rust/expr.exp: Add checks for syntax errors.
* gdb.rust/simple.exp: Add checks for syntax errors.
gdb/ChangeLog
gdb/rust-parse.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.rust/expr.exp
gdb/testsuite/gdb.rust/modules.exp
gdb/testsuite/gdb.rust/simple.exp