[cmake-developers] [PATCH] Tests: Use a less strict regular expression to look for "SONAME".

Raphael Kubo da Costa rakuco at FreeBSD.org
Mon Aug 31 18:25:37 EDT 2015


Commit 899458ab ("Tests: Cover NO_SONAME property for SHARED libraries")
introduced a few new ExportImport tests, and the
check_lib_{no}soname.cmake scripts that parse readelf(1)'s output.

Make the regular expression matching the SONAME line output by readelf
less strict, as the output format varies across implementations: GNU
binutils' readelf is the only one to write each ELF header within
parentheses (which the previous regular expression expected). The new
tests were thus failing when either Fedora's elfutils (eu-readelf) or
elftoolchain's readelf (present on recent FreeBSD versions) were being
used, as they both list the headers without parentheses.
---
 Tests/ExportImport/Import/A/check_lib_nosoname.cmake | 2 +-
 Tests/ExportImport/Import/A/check_lib_soname.cmake   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Tests/ExportImport/Import/A/check_lib_nosoname.cmake b/Tests/ExportImport/Import/A/check_lib_nosoname.cmake
index 6261ff4..613391e 100644
--- a/Tests/ExportImport/Import/A/check_lib_nosoname.cmake
+++ b/Tests/ExportImport/Import/A/check_lib_nosoname.cmake
@@ -1,5 +1,5 @@
 execute_process(COMMAND ${readelf} -d ${lib} OUTPUT_FILE ${lib}.readelf.txt)
-file(STRINGS ${lib}.readelf.txt soname REGEX "\\(SONAME\\)")
+file(STRINGS ${lib}.readelf.txt soname REGEX "SONAME")
 if(soname)
   message(FATAL_ERROR "${lib} has soname but should not:\n  ${soname}")
 else()
diff --git a/Tests/ExportImport/Import/A/check_lib_soname.cmake b/Tests/ExportImport/Import/A/check_lib_soname.cmake
index 7794e80..a3c4b54 100644
--- a/Tests/ExportImport/Import/A/check_lib_soname.cmake
+++ b/Tests/ExportImport/Import/A/check_lib_soname.cmake
@@ -1,5 +1,5 @@
 execute_process(COMMAND ${readelf} -d ${lib} OUTPUT_FILE ${lib}.readelf.txt)
-file(STRINGS ${lib}.readelf.txt soname REGEX "\\(SONAME\\)")
+file(STRINGS ${lib}.readelf.txt soname REGEX "SONAME")
 if(soname)
   message(STATUS "${lib} has soname as expected:\n  ${soname}")
 else()
-- 
2.4.6



More information about the cmake-developers mailing list