Published August 23, 2023 | Version v1
Software Open

ESEC/FSE 2023 Artifact for "Heterogeneous Testing for Coverage Profilers Empowered with Debugging Support"

  • 1. Nanjing University
  • 2. Huazhong University of Science and Technology

Description

Artifacts for "Heterogeneous Testing for Coverage Profilers Empowered with Debugging Support"

 

Comparison for DeCov, C2V, and Cod

DecovHeterogeneous Testing for Coverage Profilers Empowered with Debugging Support

C2VHunting for bugs in code coverage tools via randomized differential testing

CodAutomatic Self-Validation for Code Coverage Profilers

 

Table of Contents

  • Background
  • Install
  • Usage
  • Data

 

Background

We re-run DecovC2V, and Cod for Gcov-7 and LLVM-cov-6.0 along with Gcc-7 and LLVM-6.0 over the test programs in the Gcc-7.4.0 testsuites for the comparison.

 

Install

This project uses gcc-7gdbllvm-6.0 and lldb. Go check them out if you don't have them locally installed.

$ apt install python3 gcc-7 gdb llvm-6.0 clang-6.0 lldb-6.0

 

Usage

First, download the gcc-7.4.0.tar.xz:

$ wget http://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.xz 

Then unzip the downloaded file:

$ tar -xvf gcc-7.4.0.tar.xz 

Run C2V, Cod, and Decov over the testsuite of gcc-7.4.0, respectively:

$ python3 main.py --source="gcc-7.4.0/gcc/testsuite/" --method='C2V'
$ python3 main.py --source="gcc-7.4.0/gcc/testsuite/" --method='COD'
$ python3 main.py --source="gcc-7.4.0/gcc/testsuite/" --method='DECOV'

Note that, we recommend to use the parallel option when using our tool if your computer has multi-cores:

$ python3 main.py --parallel --source="gcc-7.4.0/gcc/testsuite/" --method='C2V'
$ python3 main.py --parallel --source="gcc-7.4.0/gcc/testsuite/" --method='COD'
$ python3 main.py --parallel --source="gcc-7.4.0/gcc/testsuite/" --method='DECOV'

 

Data

Experimental data will be stored in the Expr folder:

C2V

  • C2V/files-DIFFCOV-C2V.txt: the filenames when the coverage statistics is inconsistent between Gcov and LLVM-cov
  • C2V/files-SAMECOV-C2V.txt: the filenames when the coverage statistics is consistent between for Gcov and LLVM-cov
  • C2V/lines-DIFFCOV-C2V-FULL.txt: the filenames and line numbers where the coverage statistics is inconsistent between Gcov and LLVM-cov
  • C2V/lines-SAMECOV-C2V-FULL.txt: the filenames and line numbers where the coverage statistics is consistent between Gcov and LLVM-cov

Cod

  • COD/files-DIFFCOV-COD-gcov.txt and COD/files-DIFFCOV-COD-llvm-cov.txt: the filenames when the coverage statistics of the original program and the equivalent mutant violate the metamorphic relations for Gcov and LLVM-cov
  • COD/files-SAMECOV-COD-gcov.txt and COD/files-SAMECOV-COD-llvm-cov.txt: the filenames when the coverage statistics of the original program and the equivalent mutant are consistent for Gcov and LLVM-cov
  • COD/lines-DIFFCOV-COD-gcov.txt and COD/lines-DIFFCOV-COD-llvm-cov.txt: the filenames and line numbers where the coverage statistics of the original program and the equivalent mutant violate the metamorphic relations for Gcov and LLVM-cov
  • COD/lines-SAMECOV-COD-gcov.txt and COD/lines-SAMECOV-COD-llvm-cov.txt: the filenames and line numbers where the coverage statistics of the original program and the equivalent mutant are consistent for Gcov and LLVM-cov

Decov

  • DECOV/files-DIFFCOV-DECOV-gcov.txt and DECOV/files-DIFFCOV-DECOV-llvm-cov.txt: the filenames when the coverage statistics from coverage profiler is inconsistent with the hit count from the debugger for Gcov and LLVM-cov.
  • DECOV/files-SAMECOV-DECOV-gcov.txt and DECOV/files-SAMECOV-DECOV-llvm-cov.txt: the filenames when the coverage statistics from coverage profiler is consistent with the hit count from the debugger for Gcov and LLVM-cov.
  • DECOV/lines-DIFFCOV-DECOV-gcov.txt and DECOV/lines-DIFFCOV-DECOV-llvm-cov.txt: the filenames and line numbers where the coverage statistics from coverage profiler is inconsistent with the hit count from the debugger for Gcov and LLVM-cov.
  • DECOV/lines-SAMECOV-DECOV-gcov.txt and DECOV/lines-SAMECOV-DECOV-llvm-cov.txt: the filenames and line numbers where the coverage statistics from coverage profiler is consistent with the hit count from the debugger for Gcov and LLVM-cov.

Files

Decov-FSE2023.zip

Files (18.2 kB)

Name Size Download all
md5:190f0e23271791d246708e42f69a5795
18.2 kB Preview Download