]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gold/testsuite/hidden_test.sh
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gold / testsuite / hidden_test.sh
CommitLineData
645afe0c
CC
1#!/bin/sh
2
3# hidden_test.sh -- a test case for hidden and internal symbols.
4
250d07de 5# Copyright (C) 2009-2021 Free Software Foundation, Inc.
645afe0c
CC
6# Written by Cary Coutant <ccoutant@google.com>.
7
8# This file is part of gold.
9
10# This program is free software; you can redistribute it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 3 of the License, or
13# (at your option) any later version.
14
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18# GNU General Public License for more details.
19
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
23# MA 02110-1301, USA.
24
25# This file goes with hidden_test_main.c and hidden_test_1.c.
26# The main program defines several symbols with each of the ELF
27# visibilities, and the shared library attempts to reference the
28# symbols. We try to link the program and check that the expected
29# error messages are issued for the references to internal and
30# hidden symbols. The errors will be found in hidden_test.err.
31
c20ceeb2 32check_missing()
645afe0c 33{
c20ceeb2 34 if grep -q "$2" "$1"
645afe0c 35 then
c20ceeb2 36 echo "Found unexpected error in $1:"
645afe0c
CC
37 echo " $2"
38 echo ""
39 echo "Actual error output below:"
40 cat "$1"
41 exit 1
42 fi
43}
44
c20ceeb2 45check_missing_sym()
645afe0c
CC
46{
47 if grep -q "$2" "$1"
48 then
c20ceeb2 49 echo "Found unexpected symbol in $1:"
645afe0c
CC
50 echo " $2"
51 echo ""
c20ceeb2 52 echo "Actual nm output below:"
645afe0c
CC
53 cat "$1"
54 exit 1
55 fi
56}
57
645afe0c
CC
58# We shouldn't see errors for the default and protected symbols.
59check_missing hidden_test.err "main_default"
60check_missing hidden_test.err "main_protected"
61
c20ceeb2
YW
62# We shouldn't see errors for the hidden and internal symbols either (PR 15574).
63check_missing hidden_test.err "main_hidden"
64check_missing hidden_test.err "main_internal"
65
66# We shouldn't see the hidden or internal symbols in the dynamic symbol table.
67check_missing_sym hidden_test.syms "main_hidden"
68check_missing_sym hidden_test.syms "main_internal"
69
645afe0c 70exit 0