diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-12-26 22:58:48 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-12-26 22:58:48 +0000 |
commit | a799cefcff524082a56404b264c8695bd13b0171 (patch) | |
tree | a51587ef8e2ca6371977f1dfcb93988fbd62d488 | |
parent | efa42f7d88a33c0c00e571fbcba8032a9baf7088 (diff) |
Tests: Tweak LLVM-Code-Symbols test to ignore common and undefined symbols for
now, let's start small.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92170 91177308-0d34-0410-b5e6-96231b3b80d8
-rwxr-xr-x | utils/C++Tests/LLVM-Code-Symbols/check-symbols | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/utils/C++Tests/LLVM-Code-Symbols/check-symbols b/utils/C++Tests/LLVM-Code-Symbols/check-symbols index f8ff734c72..cd54eed4a0 100755 --- a/utils/C++Tests/LLVM-Code-Symbols/check-symbols +++ b/utils/C++Tests/LLVM-Code-Symbols/check-symbols @@ -5,8 +5,6 @@ import difflib def capture_2(args0, args1): import subprocess - print ' '.join(args0) - print ' '.join(args1) p0 = subprocess.Popen(args0, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p1 = subprocess.Popen(args1, stdin=p0.stdout, stdout=subprocess.PIPE, @@ -14,24 +12,38 @@ def capture_2(args0, args1): out,_ = p1.communicate() return out +def normalize_nm(data): + lines = data.split('\n') + lines.sort() + + # FIXME: Ignore common symbols for now. + lines = [ln for ln in lines + if not ln.startswith(' C')] + + return lines + def main(): import sys clang = sys.argv[1] flags = sys.argv[2:] - llvmgcc_nm = capture_2(["llvm-gcc"] + flags + ["-emit-llvm","-c","-o","-"], - ["llvm-nm", "-extern-only"]) - clang_nm = capture_2([clang] + flags + ["-emit-llvm","-c","-o","-"], - ["llvm-nm", "-extern-only"]) + # FIXME: Relax to include undefined symbols. + nm_args = ["llvm-nm", "-extern-only", "-defined-only"] + + llvmgcc_args = ["llvm-gcc"] + flags + ["-emit-llvm","-c","-o","-"] + clang_args = [clang] + flags + ["-emit-llvm","-c","-o","-"] + + llvmgcc_nm = capture_2(llvmgcc_args, nm_args) + clang_nm = capture_2(clang_args, nm_args) - llvmgcc_nm = llvmgcc_nm.split('\n') - clang_nm = clang_nm.split('\n') - llvmgcc_nm.sort() - clang_nm.sort() + llvmgcc_nm = normalize_nm(llvmgcc_nm) + clang_nm = normalize_nm(clang_nm) if llvmgcc_nm == clang_nm: sys.exit(0) + print ' '.join(llvmgcc_args), '|', ' '.join(nm_args) + print ' '.join(clang_args), '|', ' '.join(nm_args) for line in difflib.unified_diff(llvmgcc_nm, clang_nm, fromfile="llvm-gcc symbols", tofile="clang symbols"): |