Run gdb.base/sizeof.exp with board having gdb,noinferiorio
Commit Message
Pedro Alves <palves@redhat.com> writes:
> I think we can replace that like you did for sizeof.
>
> value = (int) (char) -1;
>
> etc., and then check "p value = ${val}", just like you did for
> the sizeof checks.
OK, how about this?
Comments
On 12/03/2015 03:49 PM, Yao Qi wrote:
> Pedro Alves <palves@redhat.com> writes:
>
>> I think we can replace that like you did for sizeof.
>>
>> value = (int) (char) -1;
>>
>> etc., and then check "p value = ${val}", just like you did for
>> the sizeof checks.
>
> OK, how about this?
>
LGTM.
Thanks,
Pedro Alves
Pedro Alves <palves@redhat.com> writes:
>> OK, how about this?
>>
>
> LGTM.
Patch is pushed in.
@@ -1,7 +1,3 @@
-#include <stdio.h>
-
-#include "../lib/unbuffer_output.c"
-
typedef char padding[16];
struct {
@@ -100,28 +96,26 @@ fill_structs (void)
int
main ()
{
- gdb_unbuffer_output ();
+ int size, value;
fill_structs ();
- printf ("sizeof (char) == %d\n", (int) sizeof (char));
- printf ("sizeof (short) == %d\n", (int) sizeof (short));
- printf ("sizeof (int) == %d\n", (int) sizeof (int));
- printf ("sizeof (long) == %d\n", (int) sizeof (long));
- printf ("sizeof (long long) == %d\n", (int) sizeof (long long));
-
- printf ("sizeof (void *) == %d\n", (int) sizeof (void*));
- printf ("sizeof (void (*)(void)) == %d\n", (int) sizeof (void (*)(void)));
-
- printf ("sizeof (float) == %d\n", (int) sizeof (float));
- printf ("sizeof (double) == %d\n", (int) sizeof (double));
- printf ("sizeof (long double) == %d\n", (int) sizeof (long double));
+ size = (int) sizeof (char);
+ size = (int) sizeof (short);
+ size = (int) sizeof (int);
+ size = (int) sizeof (long);
+ size = (int) sizeof (long long);
+ size = (int) sizeof (void*);
+ size = (int) sizeof (void (*)(void));
+ size = (int) sizeof (float);
+ size = (int) sizeof (double);
+ size = (int) sizeof (long double);
/* Signed char? */
- printf ("valueof ('\\377') == %d\n", '\377');
- printf ("valueof ((int) (char) -1) == %d\n", (int) (char) -1);
- printf ("valueof ((int) (signed char) -1) == %d\n", (int) (signed char) -1);
- printf ("valueof ((int) (unsigned char) -1) == %d\n", (int) (unsigned char) -1);
+ value = '\377';
+ value = (int) (char) -1;
+ value = (int) (signed char) -1;
+ value = (int) (unsigned char) -1;
return 0;
}
@@ -15,11 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-if [target_info exists gdb,noinferiorio] {
- verbose "Skipping sizeof.exp because of no fileio capabilities."
- continue
-}
-
#
# test running programs
#
@@ -48,7 +43,7 @@ if ![runto_main] then {
# Query GDB for the size of various types
#
-gdb_test "next 2"
+gdb_test "next"
set sizeof_char [get_sizeof "char" 1]
set sizeof_short [get_sizeof "short" 2]
@@ -68,12 +63,8 @@ set sizeof_long_double [get_sizeof "long double" 8]
#
proc check_sizeof { type size } {
- global gdb_prompt
-
- set pat [string_to_regexp "sizeof (${type}) == ${size}\r\n"]
- gdb_test_stdio "next" "${pat}" \
- "\[0-9\].*" \
- "check sizeof \"$type\""
+ gdb_test "next" "" ""
+ gdb_test "p size" " = ${size}" "check sizeof \"$type\""
}
check_sizeof "char" ${sizeof_char}
@@ -90,12 +81,8 @@ check_sizeof "double" ${sizeof_double}
check_sizeof "long double" ${sizeof_long_double}
proc check_valueof { exp val } {
- global gdb_prompt
-
- set pat [string_to_regexp "valueof (${exp}) == ${val}\r\n"]
- gdb_test_stdio "next" "${pat}" \
- "\[0-9\].*" \
- "check valueof \"$exp\""
+ gdb_test "next" "" ""
+ gdb_test "p value" " = ${val}" "check valueof \"$exp\""
}
# Check that GDB and the target agree over the sign of a character.