Git Product home page Git Product logo

codeflaws's Introduction

Codeflaws

The Codeflaws benchmark is a collection of C programs with 4085 defects. Each defect are where the dataset is crawled from Codeforces

##Download: Codeflaws is available for download at tar-link

##Structure of each subject folder All the subject programs are in the benchmark directory. Each subject folder is named using the following convention: <contestid>-<problem>-bug-<buggy-submisionid>-<accepted-submissionid> Each folder contains:

  • Buggy submission with name <contestid>-<problem>-<buggy-submisionid>.c
  • Accepted submission with name <contestid>-<problem>-<accepted-submisionid>.c
  • Two sets of test scripts:
    1. Repair Test script (test suite given to repair tools for generating repair): test-genprog.sh is for search-based repair tools (GenProg, SPR, Prophet), test-angelix.sh is for Angelix as it requires inserting special instrumentation.
    2. Test script for patch validation (held-out test suite): test-valid.sh is for validating the correctness of patches
  • Test input files: input[0-9]+ file used by Test suite (i), and heldout-input[0-9]+ file used by Test suite (ii)
  • Test output files: output[0-9]+ file used by Test suite (i), and heldout-output[0-9]+ file used by Test suite (ii)
  • Makefile for compiling the buggy submission. This contains the CFLAGS options recommended by Codeforces. To compile the accepted submission, use the command make FILENAME=10-A-13543524
  • Makefile.genprog for compiling the buggy submission using cilly. This is for GenProg experiments as GenProg works on CIL representation.
  • Test configuration for SPR that specify the name for pass/fail test: <contestid>-<problem>-<buggy-submisionid>.c.revlog

##Script for running each repair tool All the files mentioned below are stored in the all-script directory

###Angelix Use the following files for running Angelix:

  • File for running Angelix: run-version-angelix.sh

###GenProg Use the following files for running GenProg:

  • File for GenProg general configuration: configuration-default
  • File for compilation configuration: compile.pl
  • File for running GenProg: run-version-genprog.sh
  • File for validating patches generated by GenProg (This script is called from run-version-genprog.sh): validate-fix-genprog.sh

###SPR Use the following files for running SPR:

  • File for compilation configuration: code-build.py
  • File for test configuration: run-test.py
  • File for running SPR: run-version-spr.sh
  • File for validating patches generated by SPR (This script is called from run-version-spr.sh): validate-fix-spr.sh

###Prophet Use the following files for running Prophet:

  • File for compilation configuration: code-build.py
  • File for test configuration: run-test.py
  • File for running Prophet: run-version-prophet.sh
  • File for validating patches generated by Prophet (This script is called from run-version-prophet.sh): validate-fix-prophet.sh
  • Parameter file with learned model (From Prophet original experiment): para-rext-all.out

##Citing Codeflaws

If you use Codeflaws in an academic work, we would be really glad if you cite our paper using the following bibtex:

@inproceedings{Tancodeflaws,
  author    = {Tan, Shin Hwei and Yi, Jooyong and Yulis and Mechtaev, Sergey and Roychoudhury,Abhik},
  title     = {Codeflaws: A Programming Competition Benchmark for Evaluating Automated Program Repair Tools},
  booktitle = {ICSE Poster},
  year      = {2017},
  note = {To appear}
}

##Other information For more information/questions about the benchmark, refer to the following website: https://codeflaws.github.io/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.