Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation 2013
DOI: 10.1145/2491956.2462173
|View full text |Cite
|
Sign up to set email alerts
|

Taming compiler fuzzers

Abstract: Aggressive random testing tools ("fuzzers") are impressively effective at finding compiler bugs. For example, a single test-case generator has resulted in more than 1,700 bugs reported for a single JavaScript engine. However, fuzzers can be frustrating to use: they indiscriminately and repeatedly find bugs that may not be severe enough to fix right away. Currently, users filter out undesirable test cases using ad hoc methods such as disallowing problematic features in tests and grepping test results. This pape… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
54
0
4

Year Published

2013
2013
2020
2020

Publication Types

Select...
4
3
1

Relationship

3
5

Authors

Journals

citations
Cited by 121 publications
(58 citation statements)
references
References 44 publications
0
54
0
4
Order By: Relevance
“…CCG is a random C program generator that focuses on finding compiler crashing bugs [3]. Csmith is another C program generator that can find both crashing and miscompilation bugs [4,19,25]. Based on the idea of differential testing [12], Csmith randomly generates C programs and checks for deviant behavior across compilers or compiler versions.…”
Section: Related Workmentioning
confidence: 99%
“…CCG is a random C program generator that focuses on finding compiler crashing bugs [3]. Csmith is another C program generator that can find both crashing and miscompilation bugs [4,19,25]. Based on the idea of differential testing [12], Csmith randomly generates C programs and checks for deviant behavior across compilers or compiler versions.…”
Section: Related Workmentioning
confidence: 99%
“…Moreover, more specialized versions of the SCH in domains where large-scale automated testing is frequently applied (e.g. compilers [11] or systems utilities [45]) may be useful to practitioners and researchers in these areas.…”
Section: How Can Users Of Code Coverage Sleepmentioning
confidence: 99%
“…Each suite is produced by running jsfunfuzz for 30 minutes, removing the possibility of suite size (if measured using computational effort, which seems the most reasonable way to measure it) as a confounding factor. The number of faults detected is estimated (with relatively good accuracy, we believe) using a binary search through the source code repository to find the change that "fixes" each failing test [11,29].…”
Section: A Sketch Of a Data Setmentioning
confidence: 99%
See 1 more Smart Citation
“…Examining the code, there does not appear to be any link between the feature and the failures other than that the feature causes js to fail in one of the three "common" ways before the less frequent failures (all requiring longer executions on average) can take place. Complex systems will almost always have multiple faults that differ in frequency of appearance; in our experience, for compilers and JavaScript engines, failure rates for different faults typically exhibit a power law curve and sometimes a "double power law" curve [23]. Masking may therefore merit special attention as a source of suppression.…”
Section: E Subject Details: Causes Of Suppressionmentioning
confidence: 99%