~ubuntu-branches/debian/squeeze/binutils/squeeze

« back to all changes in this revision

Viewing changes to gold/testsuite/hidden_test.sh

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-09-10 17:05:30 UTC
  • mfrom: (1.4.5 upstream) (6.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20090910170530-wa6gpju9pq5c56on
Tags: 2.19.91.20090910-1
* Snapshot, taken from the 2.20 release branch 20090910, corresponding
  to the 2.19.90 upstream snapshot.
* Fix Thumb-2 shared libraries (Daniel Jacobowitz), patch taken
  from the trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
# hidden_test.sh -- a test case for hidden and internal symbols.
 
4
 
 
5
# Copyright 2009 Free Software Foundation, Inc.
 
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
 
 
32
check()
 
33
{
 
34
    if ! grep -q "$2" "$1"
 
35
    then
 
36
        echo "Did not find expected error in $1:"
 
37
        echo "   $2"
 
38
        echo ""
 
39
        echo "Actual error output below:"
 
40
        cat "$1"
 
41
        exit 1
 
42
    fi
 
43
}
 
44
 
 
45
check_missing()
 
46
{
 
47
    if grep -q "$2" "$1"
 
48
    then
 
49
        echo "Found unexpected error in $1:"
 
50
        echo "   $2"
 
51
        echo ""
 
52
        echo "Actual error output below:"
 
53
        cat "$1"
 
54
        exit 1
 
55
    fi
 
56
}
 
57
 
 
58
# We should see errors for hidden and internal symbols.
 
59
check hidden_test.err "hidden symbol 'main_hidden' in hidden_test_main.o is referenced by DSO libhidden.so"
 
60
check hidden_test.err "internal symbol 'main_internal' in hidden_test_main.o is referenced by DSO libhidden.so"
 
61
 
 
62
# We shouldn't see errors for the default and protected symbols.
 
63
check_missing hidden_test.err "main_default"
 
64
check_missing hidden_test.err "main_protected"
 
65
 
 
66
exit 0