1145519Sdarrenr# Copyright 2014-2020 Free Software Foundation, Inc.
2145510Sdarrenr
3145510Sdarrenr# This program is free software; you can redistribute it and/or modify
4255332Scy# it under the terms of the GNU General Public License as published by
5145510Sdarrenr# the Free Software Foundation; either version 3 of the License, or
6145510Sdarrenr# (at your option) any later version.
7145510Sdarrenr#
8255332Scy# This program is distributed in the hope that it will be useful,
9145510Sdarrenr# but WITHOUT ANY WARRANTY; without even the implied warranty of
10145510Sdarrenr# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11145510Sdarrenr# GNU General Public License for more details.
12145510Sdarrenr#
13145510Sdarrenr# You should have received a copy of the GNU General Public License
14255332Scy# along with this program.  If not, see <http://www.gnu.org/licenses/>.
15255332Scy
16145510Sdarrenr# This file is part of the GDB testsuite.
17145510Sdarrenr# It tests equal? for the various gsmobs.
18145510Sdarrenr
19145510Sdarrenrload_lib gdb-guile.exp
20145510Sdarrenr
21145510Sdarrenrstandard_testfile
22145510Sdarrenr
23145510Sdarrenrif { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
24145510Sdarrenr    return
25145510Sdarrenr}
26145510Sdarrenr
27145510Sdarrenr# Skip all tests if Guile scripting is not enabled.
28161357Sguidoif { [skip_guile_tests] } { continue }
29161357Sguido
30161357Sguidoif ![gdb_guile_runto_main] {
31161357Sguido   return
32145510Sdarrenr}
33145510Sdarrenr
34145510Sdarrenrgdb_scm_test_silent_cmd "guile (define frame (selected-frame))" "get frame"
35145510Sdarrenrgdb_scm_test_silent_cmd "guile (define arch (frame-arch frame))" "get arch"
36145510Sdarrenr
37145510Sdarrenrgdb_test "guile (print (equal? (selected-frame) (newest-frame)))" \
38145510Sdarrenr    "= #t" "equal? frame"
39145510Sdarrenrgdb_test "guile (print (equal? (selected-frame) (frame-older (newest-frame))))" \
40145510Sdarrenr    "= #f" "not equal? frame"
41145510Sdarrenr
42145510Sdarrenrgdb_test "guile (print (equal? (make-value 1) (make-value 1)))" \
43145510Sdarrenr    "= #t" "equal? value"
44145510Sdarrenrgdb_test "guile (print (equal? (make-value 1) (make-value 2)))" \
45145510Sdarrenr    "= #f" "not equal? value"
46145510Sdarrenr
47145510Sdarrenrgdb_test "guile (print (equal? (value-type (make-value 1)) (value-type (make-value 2))))" \
48145510Sdarrenr    "= #t" "equal? type"
49145510Sdarrenrgdb_test "guile (print (equal? (value-type (make-value 1)) (value-type (make-value 2.5))))" \
50145510Sdarrenr    "= #f" "not equal? type"
51145510Sdarrenr
52145510Sdarrenrgdb_test "guile (print (equal? (lookup-global-symbol \"main\") (lookup-global-symbol \"main\")))" \
53145510Sdarrenr    "= #t" "equal? symbol"
54145510Sdarrenrgdb_test "guile (print (equal? (lookup-global-symbol \"main\") (lookup-global-symbol \"x\")))" \
55145510Sdarrenr    "= #f" "not equal? symbol"
56145510Sdarrenr