X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2Ftestsuite%2Fplugin_final_layout.sh;h=43870c8732507e20168cc7176d4e4fd528bcb1d6;hb=ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9;hp=600f8e23dbf82cff6a8eaf3752cb6e09236a725f;hpb=f0558624db8e79622bb71ea5279ec6b5f8c9bc79;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/testsuite/plugin_final_layout.sh b/gold/testsuite/plugin_final_layout.sh index 600f8e23db..43870c8732 100755 --- a/gold/testsuite/plugin_final_layout.sh +++ b/gold/testsuite/plugin_final_layout.sh @@ -2,7 +2,7 @@ # plugin_final_layout.sh -- test -# Copyright 2011 Free Software Foundation, Inc. +# Copyright (C) 2011-2020 Free Software Foundation, Inc. # Written by Sriraman Tallam . # This file is part of gold. @@ -23,7 +23,7 @@ # MA 02110-1301, USA. # The goal of this program is to verify if --section-ordering-file works as -# intended. File final_layout.cc is in this test. +# intended. File plugin_final_layout.cc is in this test. set -e @@ -37,7 +37,7 @@ BEGIN { saw1 = 0; saw2 = 0; err = 0; } saw2 = 1; if (!saw1) { - printf \"layout of $2 and $3 is not right\\n\"; + printf \"layout of $2 and $3 is not right in file $1\\n\"; err = 1; exit 1; } @@ -45,12 +45,41 @@ BEGIN { saw1 = 0; saw2 = 0; err = 0; } END { if (!saw1 && !err) { - printf \"did not see $2\\n\"; + printf \"did not see $2 in file $1\\n\"; exit 1; } if (!saw2 && !err) { - printf \"did not see $3\\n\"; + printf \"did not see $3 in file $1\\n\"; + exit 1; + } + }" $1 +} + +# With readelf -l, an ELF Section to Segment mapping is printed as : +############################################## +# Section to Segment mapping: +# Segment Sections... +# ... +# 0x .text.plugin_created_unique +# ... +############################################## +# Check of .text.plugin_created_unique is the only section in the segment. +check_unique_segment() +{ + awk " +BEGIN { saw_section = 0; saw_unique = 0; } +/$2/ { saw_section = 1; } +/[ ]*0[0-9][ ]*$2[ ]*\$/ { saw_unique = 1; } +END { + if (!saw_section) + { + printf \"Section $2 not seen in output file $1\\n\"; + exit 1; + } + else if (!saw_unique) + { + printf \"Unique segment not seen for: $2 in file $1\\n\"; exit 1; } }" $1 @@ -58,3 +87,8 @@ END { check plugin_final_layout.stdout "_Z3foov" "_Z3barv" check plugin_final_layout.stdout "_Z3barv" "_Z3bazv" +check_unique_segment plugin_final_layout_readelf.stdout ".text.plugin_created_unique" + +check plugin_layout_new_file.stdout "_Z3foov" "_Z3barv" +check plugin_layout_new_file.stdout "_Z3barv" "_Z3bazv" +check_unique_segment plugin_layout_new_file_readelf.stdout ".text.plugin_created_unique"