mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-01 08:12:12 +00:00
sancov test suite
Differential Revision: http://reviews.llvm.org/D14589 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252933 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8e6493db91
commit
91e7b1246c
@ -19,11 +19,12 @@ endif()
|
||||
# Set the depends list as a variable so that it can grow conditionally.
|
||||
# NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
|
||||
set(LLVM_TEST_DEPENDS
|
||||
llvm-config
|
||||
UnitTests
|
||||
BugpointPasses
|
||||
FileCheck
|
||||
LLVMHello
|
||||
UnitTests
|
||||
bugpoint
|
||||
count
|
||||
llc
|
||||
lli
|
||||
lli-child-target
|
||||
@ -31,6 +32,7 @@ set(LLVM_TEST_DEPENDS
|
||||
llvm-as
|
||||
llvm-bcanalyzer
|
||||
llvm-c-test
|
||||
llvm-config
|
||||
llvm-cov
|
||||
llvm-cxxdump
|
||||
llvm-diff
|
||||
@ -54,14 +56,13 @@ set(LLVM_TEST_DEPENDS
|
||||
llvm-split
|
||||
llvm-symbolizer
|
||||
llvm-tblgen
|
||||
opt
|
||||
FileCheck
|
||||
count
|
||||
not
|
||||
obj2yaml
|
||||
opt
|
||||
sancov
|
||||
verify-uselistorder
|
||||
yaml-bench
|
||||
yaml2obj
|
||||
obj2yaml
|
||||
verify-uselistorder
|
||||
)
|
||||
|
||||
# If Intel JIT events are supported, depend on a tool that tests the listener.
|
||||
|
5
test/tools/sancov/Inputs/foo.cpp
Normal file
5
test/tools/sancov/Inputs/foo.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
|
||||
__attribute__((noinline))
|
||||
void foo() { printf("foo\n"); }
|
BIN
test/tools/sancov/Inputs/test-linux_x86_64
Executable file
BIN
test/tools/sancov/Inputs/test-linux_x86_64
Executable file
Binary file not shown.
BIN
test/tools/sancov/Inputs/test-linux_x86_64-1.sancov
Normal file
BIN
test/tools/sancov/Inputs/test-linux_x86_64-1.sancov
Normal file
Binary file not shown.
BIN
test/tools/sancov/Inputs/test-linux_x86_64.sancov
Normal file
BIN
test/tools/sancov/Inputs/test-linux_x86_64.sancov
Normal file
Binary file not shown.
19
test/tools/sancov/Inputs/test.cpp
Normal file
19
test/tools/sancov/Inputs/test.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
// compile & generate coverage data using:
|
||||
// clang++ -g -o test-linux_x86_64 -fsanitize=address -fsanitize-coverage=edge *.cpp
|
||||
// ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 && mv test-linux_x86_64.*.sancov test-linux_x86_64.sancov
|
||||
// ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 1 && mv test-linux_x86_64.*.sancov test-linux_x86_64-1.sancov
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
|
||||
void foo();
|
||||
|
||||
__attribute__((noinline))
|
||||
std::string bar(std::string str) { printf("bar\n"); return str; }
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
if (argc == 2)
|
||||
foo();
|
||||
bar("str");
|
||||
printf("main\n");
|
||||
}
|
13
test/tools/sancov/covered_functions.test
Normal file
13
test/tools/sancov/covered_functions.test
Normal file
@ -0,0 +1,13 @@
|
||||
RUN: sancov -obj %p/Inputs/test-linux_x86_64 -covered_functions %p/Inputs/test-linux_x86_64.sancov | FileCheck %s
|
||||
RUN: sancov -obj %p/Inputs/test-linux_x86_64 -covered_functions %p/Inputs/test-linux_x86_64-1.sancov | FileCheck --check-prefix=MULTIPLE_FILES %s
|
||||
RUN: sancov -obj %p/Inputs/test-linux_x86_64 -demangle=0 -covered_functions %p/Inputs/test-linux_x86_64.sancov | FileCheck --check-prefix=NO_DEMANGLE %s
|
||||
|
||||
CHECK: Inputs/test.cpp:12 bar(std::string)
|
||||
CHECK: Inputs/test.cpp:14 main
|
||||
|
||||
MULTIPLE_FILES: {{^}}foo.cpp:5 foo()
|
||||
MULTIPLE_FILES: {{^}}test.cpp:12 bar(std::string)
|
||||
MULTIPLE_FILES: {{^}}test.cpp:14 main
|
||||
|
||||
NO_DEMANGLE: Inputs/test.cpp:12 _Z3barSs
|
||||
NO_DEMANGLE: Inputs/test.cpp:14 main
|
10
test/tools/sancov/print.test
Normal file
10
test/tools/sancov/print.test
Normal file
@ -0,0 +1,10 @@
|
||||
RUN: sancov -obj %p/Inputs/test-linux_x86_64 -print %p/Inputs/test-linux_x86_64.sancov | FileCheck %s
|
||||
|
||||
CHECK: 0x4db18b
|
||||
CHECK: 0x4db2d2
|
||||
CHECK: 0x4db322
|
||||
CHECK: 0x4db376
|
||||
CHECK: 0x4db3bd
|
||||
CHECK: 0x4db3f4
|
||||
CHECK: 0x4db427
|
||||
CHECK: 0x4db45a
|
@ -178,7 +178,7 @@ class CoverageData {
|
||||
return;
|
||||
symbolize::LLVMSymbolizer::Options SymbolizerOptions;
|
||||
SymbolizerOptions.Demangle = ClDemangle;
|
||||
symbolize::LLVMSymbolizer Symbolizer;
|
||||
symbolize::LLVMSymbolizer Symbolizer(SymbolizerOptions);
|
||||
|
||||
struct FileLoc {
|
||||
std::string FileName;
|
||||
@ -226,8 +226,11 @@ class CoverageData {
|
||||
if (!ProcessedFunctions.insert(FunctionName).second)
|
||||
continue;
|
||||
|
||||
out << FileName.substr(FilePrefix.size()) << ":" << Line << " "
|
||||
<< FunctionName << "\n";
|
||||
// Don't strip prefix if we only have a single file.
|
||||
if (FileName.size() > FilePrefix.size())
|
||||
FileName = FileName.substr(FilePrefix.size());
|
||||
|
||||
out << FileName << ":" << Line << " " << FunctionName << "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user