Test collecting code coverage data with Profiler.collectCoverage.

Running test: testPreciseCountBaseline
{
    id : <messageId>
    result : {
        result : [
        ]
        timestamp : <timestamp>
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
        timestamp : <timestamp>
    }
}

Running test: testPreciseCountCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 15
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
        timestamp : <timestamp>
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
        timestamp : <timestamp>
    }
}

Running test: testPreciseCoverageFail
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    error : {
        code : -32000
        message : Precise coverage has not been started.
    }
    id : <messageId>
}

Running test: testBestEffortCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testBestEffortCoverageWithPreciseBinaryEnabled
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseBinaryEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseBinaryEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testBestEffortCoverageWithPreciseCountEnabled
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseCountEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseCountEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testEnablePreciseCountCoverageAtPause
{
    id : <messageId>
    result : {
        result : {
            type : undefined
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
        timestamp : <timestamp>
    }
}

Running test: testPreciseBinaryCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseBinaryCoverage
            }
        ]
        timestamp : <timestamp>
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : unoptimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            description : 10946
            type : number
            value : 10946
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : optimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseBinaryCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 17
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
            [2] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 7
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
        timestamp : <timestamp>
    }
}

Running test: testPreciseEmptyScriptCoverageEntries
{
    id : <messageId>
    result : {
        result : [
        ]
        timestamp : <timestamp>
    }
}

Running test: testPreciseCountCoveragePartial
{
    id : <messageId>
    result : {
        result : {
            type : undefined
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 238
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : outer
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 224
                                startOffset : 10
                            }
                        ]
                    }
                    [2] : {
                        functionName : nested_0
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 176
                                startOffset : 31
                            }
                        ]
                    }
                    [3] : {
                        functionName : nested_1
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [4] : {
                        functionName : nested_2
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                    [5] : {
                        functionName : nested_3
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 158
                                startOffset : 136
                            }
                        ]
                    }
                    [6] : {
                        functionName : nested_4
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 201
                                startOffset : 179
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoveragePartial
            }
        ]
        timestamp : <timestamp>
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : nested_1
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [1] : {
                        functionName : nested_2
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoveragePartial
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 3
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
        timestamp : <timestamp>
    }
}
