From f38997774cb41fba555347d5d47a08976362c41b Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Sat, 7 Mar 2020 02:43:00 +0330 Subject: coverage --- cgrep.cpp | 6 ++++-- covrun.sh | 12 ++++++++++++ makefile | 12 ++++++------ 3 files changed, 22 insertions(+), 8 deletions(-) create mode 100755 covrun.sh diff --git a/cgrep.cpp b/cgrep.cpp index c654617..d2039e8 100644 --- a/cgrep.cpp +++ b/cgrep.cpp @@ -601,8 +601,9 @@ public: if (!Devi::IsTheMatchInMainFile(CO_MAINFILE, MR, SL)) return void(); const NamedDecl *ND = CE->getDirectCallee(); - if (ND) + if (ND == nullptr) { return void(); + } std::string name = ND->getNameAsString(); if (regex_handler(REGEX_PP(CO_REGEX), name)) { ast_type_traits::DynTypedNode DTN = @@ -633,8 +634,9 @@ public: if (!Devi::IsTheMatchInMainFile(CO_MAINFILE, MR, SL)) return void(); const NamedDecl *ND = CE->getDirectCallee(); - if (ND) + if (ND == nullptr) { return void(); + } std::string name = ND->getNameAsString(); if (regex_handler(REGEX_PP(CO_REGEX), name)) { ast_type_traits::DynTypedNode DNode = diff --git a/covrun.sh b/covrun.sh new file mode 100755 index 0000000..46f8fcf --- /dev/null +++ b/covrun.sh @@ -0,0 +1,12 @@ +#!/usr/bin/sh + +LLVM_PROFILE_FILE="one.profraw" "./cgrep-cov" -A 1 -B 1 --func --var --regex n[aA]m ./cgrep.cpp +LLVM_PROFILE_FILE="one.profraw" "./cgrep-cov" -A 1 -B 1 --func --var --awk --regex n[aA]m ./cgrep.cpp +LLVM_PROFILE_FILE="two.profraw" "./cgrep-cov" -A 1 -B 1 --func --declrefexpr --regex n[aA]m --nocolor --nodecl ./cgrep.cpp +LLVM_PROFILE_FILE="three.profraw" "./cgrep-cov" -A 1 -B 1 --func --declrefexpr --memfunc --call --cxxcall --var --regex run ./cgrep.cpp +LLVM_PROFILE_FILE="four.profraw" "./cgrep-cov" -A 1 -B 1 --macro --header --regex n[aA]m ./cgrep.cpp +LLVM_PROFILE_FILE="five.profraw" "./cgrep-cov" -A 1 -B 1 --class --regex and ./cgrep.cpp +LLVM_PROFILE_FILE="six.profraw" "./cgrep-cov" -A 1 -B 1 --struct --union --regex n[aA]m ./cgrep.cpp +LLVM_PROFILE_FILE="seven.profraw" "./cgrep-cov" -A 1 -B 1 --nameddecl --regex n[aA]m ./cgrep.cpp +LLVM_PROFILE_FILE="eight.profraw" "./cgrep-cov" -A 1 -B 1 --cxxcall --call --regex add ./cgrep.cpp +LLVM_PROFILE_FILE="nine.profraw" "./cgrep-cov" -A 1 -B 1 --memvar --regex ite ./cgrep.cpp diff --git a/makefile b/makefile index 95243a1..0edf949 100644 --- a/makefile +++ b/makefile @@ -104,7 +104,7 @@ depend:.depend %.odbg:%.cpp $(CXX) $(CXX_FLAGS) -g -c $< -o $@ -%.ocov:%.cpp +%.ocov:%.cpp pch.hpp.gch $(CXX) $(CXX_FLAGS) $(COV_CXX) -c $< -o $@ pch.hpp.gch: pch.hpp @@ -132,12 +132,12 @@ $(TARGET)-cov: $(TARGET).ocov ./cfe-extra/cfe_extra.ocov $(CXX) $^ $(LD_FLAGS) $(COV_LD) -o $@ cov: runcov - @llvm-profdata merge -sparse ./default.profraw -o ./default.profdata - @llvm-cov show $(TARGET)-cov -instr-profile=default.profdata -ignore-filename-regex=llvm clang + @llvm-profdata merge -sparse ./one.profraw ./two.profraw ./three.profraw ./four.profraw ./five.profraw ./six.profraw ./seven.profraw ./eight.profraw ./nine.profraw -o ./cgrep.profdata + @llvm-cov show $(TARGET)-cov -instr-profile=cgrep.profdata -ignore-filename-regex=llvm clang covrep: runcov - @llvm-profdata merge -sparse ./default.profraw -o ./default.profdata - @llvm-cov report $(TARGET)-cov -instr-profile=default.profdata -ignore-filename-regex=llvm -ignore-filename-regex=clang -show-functions autosarpp.cpp + @llvm-profdata merge -sparse ./one.profraw ./two.profraw ./three.profraw ./four.profraw ./five.profraw ./six.profraw ./seven.profraw ./eight.profraw ./nine.profraw -o ./cgrep.profdata + @llvm-cov report $(TARGET)-cov -instr-profile=cgrep.profdata -ignore-filename-regex=llvm -ignore-filename-regex=clang -show-functions cgrep.cpp ASM:$(ASM_LIST) @@ -162,7 +162,7 @@ $(TARGET).a: $(TARGET).o ./cfe-extra/cfe_extra.o ar rcs $(TARGET).a $(TARGET).o runcov: $(TARGET)-cov - $(TARGET)-cov ./cgrep.cpp -- + - ./covrun.sh test: $(TARGET) $(TARGET) --A 1 --B 1 --regex write --memvar ./cgrep.cpp -- cgit v1.2.3