#   Copyright (C) 1997, 1998
#   Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu

# This file was written by Elena Zannoni. (ezannoni@cygnus.com)


# This file is part of the gdb testsuite
#
# tests for pointers 
# with elementary type variables and pointers.
# 


if $tracelevel then {
        strace $tracelevel
        }

#
# test running programs
#
set prms_id 0
set bug_id 0

set testfile "pointers2"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}


gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}


#
# set it up at a breakpoint so we can play with the variable values
#
if ![runto_main] then {
    perror "couldn't run to breakpoint"
    continue
}

send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"

    send_gdb "cont\n"
    gdb_expect {
        -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
            send_gdb "up\n"
            gdb_expect {
                -re ".*$gdb_prompt $" {}
                timeout { fail "up from marker1" }
            }
        }
        -re "$gdb_prompt $" { fail "continue to marker1"  }
        timeout { fail "(timeout) continue to marker1"  }
    }


send_gdb "print *pUC\n"
gdb_expect {
    -re ".\[0-9\]* = 21 \'.025\'.*$gdb_prompt $" {
        pass "print value of *pUC"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pUC" }
    timeout           { fail "(timeout) print value of *pUC" }
  }


send_gdb "ptype pUC\n"
gdb_expect {
    -re "type = unsigned char \\*.*$gdb_prompt $"  { pass "ptype pUC" }
    -re ".*$gdb_prompt $"   {  fail "ptype pUC" }
    timeout             { fail "(timeout) ptype pUC" }
}

send_gdb "print *pS\n"
gdb_expect {
    -re ".\[0-9\]* = -14.*$gdb_prompt $" {
        pass "print value of *pS"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pS" }
    timeout           { fail "(timeout) print value of *pS" }
  }


send_gdb "ptype pS\n"
gdb_expect {
    -re "type = short \\*.*$gdb_prompt $"  { pass "ptype pS" }
    -re "type = short int \\*.*$gdb_prompt $"  { pass "ptype pS" }
    -re ".*$gdb_prompt $"   {  fail "ptype pS" }
    timeout             { fail "(timeout) ptype pS" }
}

send_gdb "print *pUS\n"
gdb_expect {
    -re ".\[0-9\]* = 7.*$gdb_prompt $" {
        pass "print value of *pUS"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pUS" }
    timeout           { fail "(timeout) print value of *pUS" }
  }


send_gdb "ptype pUS\n"
gdb_expect {
    -re "type = unsigned short \\*.*$gdb_prompt $"  { pass "ptype pUS" }
    -re "type = short unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUS" }
    -re ".*$gdb_prompt $"   {  fail "ptype pUS" }
    timeout             { fail "(timeout) ptype pUS" }
}

send_gdb "print *pI\n"
gdb_expect {
    -re ".\[0-9\]* = 102.*$gdb_prompt $" {
        pass "print value of *pI"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pI" }
    timeout           { fail "(timeout) print value of *pI" }
  }


send_gdb "ptype pI\n"
gdb_expect {
    -re "type = int \\*.*$gdb_prompt $"  { pass "ptype pI" }
    -re ".*$gdb_prompt $"   {  fail "ptype pI" }
    timeout             { fail "(timeout) ptype pI" }
}

send_gdb "print *pUI\n"
gdb_expect {
    -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
        pass "print value of *pUI"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pUI" }
    timeout           { fail "(timeout) print value of *pUI" }
  }


send_gdb "ptype pUI\n"
gdb_expect {
    -re "type = unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUI" }
    -re ".*$gdb_prompt $"   {  fail "ptype pUI" }
    timeout             { fail "(timeout) ptype pUI" }
}

send_gdb "print *pL\n"
gdb_expect {
    -re ".\[0-9\]* = -234.*$gdb_prompt $" {
        pass "print value of *pL"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pL" }
    timeout           { fail "(timeout) print value of *pL" }
  }


send_gdb "ptype pL\n"
gdb_expect {
    -re "type = long \\*.*$gdb_prompt $"  { pass "ptype pL" }
    -re "type = long int \\*.*$gdb_prompt $"  { pass "ptype pL" }
    -re ".*$gdb_prompt $"   {  fail "ptype pL" }
    timeout             { fail "(timeout) ptype pL" }
}

send_gdb "print *pUL\n"
gdb_expect {
    -re ".\[0-9\]* = 234.*$gdb_prompt $" {
        pass "print value of *pUL"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pUL" }
    timeout           { fail "(timeout) print value of *pUL" }
  }


send_gdb "ptype pUL\n"
gdb_expect {
    -re "type = unsigned long \\*.*$gdb_prompt $"  { pass "ptype pUL" }
    -re "type = long unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUL" }
    -re ".*$gdb_prompt $"   {  fail "ptype pUL" }
    timeout             { fail "(timeout) ptype pUL" }
}

send_gdb "print *pF\n"
gdb_expect {
    -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
        pass "print value of *pF"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pF" }
    timeout           { fail "(timeout) print value of *pF" }
  }


send_gdb "ptype pF\n"
gdb_expect {
    -re "type = float \\*.*$gdb_prompt $"  { pass "ptype pF" }
    -re ".*$gdb_prompt $"   {  fail "ptype pF" }
    timeout             { fail "(timeout) ptype pF" }
}

send_gdb "print *pD\n"
gdb_expect {
    -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
        pass "print value of *pD"
      }
    -re ".*$gdb_prompt $" { fail "print value of *pD" }
    timeout           { fail "(timeout) print value of *pD" }
  }


send_gdb "ptype pD\n"
gdb_expect {
    -re "type = double \\*.*$gdb_prompt $"  { pass "ptype pD" }
    -re ".*$gdb_prompt $"   {  fail "ptype pD" }
    timeout             { fail "(timeout) ptype pD" }
}

send_gdb "print ******ppppppC\n"
gdb_expect {
    -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
        pass "print value of ******ppppppC"
      }
    -re ".*$gdb_prompt $" { fail "print value of ******ppppppC" }
    timeout           { fail "(timeout) print value of ******ppppppC" }
  }


send_gdb "ptype pC\n"
gdb_expect {
    -re "type = char \\*.*$gdb_prompt $"  { pass "ptype pC" }
    -re ".*$gdb_prompt $"   {  fail "ptype pC" }
    timeout             { fail "(timeout) ptype pC" }
}

send_gdb "ptype ppC\n"
gdb_expect {
    -re "type = char \\*\\*.*$gdb_prompt $"  { pass "ptype ppC" }
    -re ".*$gdb_prompt $"   {  fail "ptype ppC" }
    timeout             { fail "(timeout) ptype ppC" }
}

send_gdb "ptype pppC\n"
gdb_expect {
    -re "type = char \\*\\*\\*.*$gdb_prompt $"  { pass "ptype  pppC" }
    -re ".*$gdb_prompt $"   {  fail "ptype pppC" }
    timeout             { fail "(timeout) ptype pppC" }
}

send_gdb "ptype ppppC\n"
gdb_expect {
    -re "type = char \\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppC" }
    -re ".*$gdb_prompt $"   {  fail "ptype ppppC" }
    timeout             { fail "(timeout) ptype ppppC" }
}

send_gdb "ptype pppppC\n"
gdb_expect {
    -re "type = char \\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype pppppC" }
    -re ".*$gdb_prompt $"   {  fail "ptype pppppC" }
    timeout             { fail "(timeout) ptype pppppC" }
}

send_gdb "ptype ppppppC\n"
gdb_expect {
    -re "type = char \\*\\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppppC" }
    -re ".*$gdb_prompt $"   {  fail "ptype ppppppC" }
    timeout             { fail "(timeout) ptype ppppppC" }
}

