diff --git a/mps/code/gcovfmt.py b/mps/code/gcovfmt.py new file mode 100755 index 00000000000..ac6e9c73fe6 --- /dev/null +++ b/mps/code/gcovfmt.py @@ -0,0 +1,109 @@ +#!/usr/bin/python +# +# $Id$ +# Copyright (c) 2013 Ravenbrook Limited. See end of file for license. +# +# This program takes the output of gcov on standard input and writes a +# human-readable table with a summary, to the file named on the +# command line (or standard output if none is given). The summary line +# is always written to standard output so that in the context of "make +# test" where the detailed test output is being directed to a test log +# file, the coverage summary can still be presented. +# +# gcov output looks like this: +# +# File '/project/mps/master/code/mpsi.c' +# Lines executed:85.12% of 921 +# /project/mps/master/code/mpsi.c:creating 'mpsi.c.gcov' +# +# Note that we select only the .c files (there may also be output for +# system files like signal.h with inline function definitions, and we +# are not interested in covering them). The MPS has no inline function +# definitions in headers. + +from sys import argv, stdin, stdout +from re import match + +def coverage(): + """For each .c file with coverage data, generate a triple (percent + coverage, file name, number of lines). + + """ + for line in stdin: + m1 = match(r"File '.*/([^/]+\.c)'$", line) + if not m1: + continue + m2 = match(r"Lines executed:(\d[0-9.]*)% of (\d+)$", next(stdin)) + if m2: + yield float(m2.group(1)), m1.group(1), int(m2.group(2)) + +def main(): + if len(argv) >= 2: + out = open(argv[1], 'a') + else: + out = stdout + fmt1 = "{:<16s} {:<7s} {:<7s} {:<7s}\n" + fmt2 = "{:<16s} {:7d} {:7d} {:7.2f}\n" + underlines = "---------------- ------- ------- -------".split() + out.write(fmt1.format(*"File Lines Covered Percent".split())) + out.write(fmt1.format(*underlines)) + total_lines, total_covered = 0, 0 + for percent, file, lines in sorted(coverage()): + covered = int(round(lines * percent / 100)) + total_lines += lines + total_covered += covered + out.write(fmt2.format(file, lines, covered, percent)) + out.write(fmt1.format(*underlines)) + if total_lines == 0: + total_percent = 100.0 + else: + total_percent = 100.0 * total_covered / total_lines + summary = fmt2.format("COVERAGE TOTAL", total_lines, total_covered, + total_percent) + out.write(summary) + if out != stdout: + stdout.write(summary) + +if __name__ == '__main__': + main() + + +# C. COPYRIGHT AND LICENSE +# +# Copyright (C) 2013 Ravenbrook Limited . +# All rights reserved. This is an open source license. Contact +# Ravenbrook for commercial licensing options. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Redistributions in any form must be accompanied by information on how +# to obtain complete source code for this software and any accompanying +# software that uses this software. The source code must either be +# included in the distribution or be available for no more than the cost +# of distribution plus a nominal fee, and must be freely redistributable +# under reasonable conditions. For an executable file, complete source +# code means the source code for all modules it contains. It does not +# include source code for modules or files that typically accompany the +# major components of the operating system on which the executable file +# runs. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +# PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj index 375124a990f..9976cdc1844 100644 --- a/mps/code/mps.xcodeproj/project.pbxproj +++ b/mps/code/mps.xcodeproj/project.pbxproj @@ -2338,7 +2338,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# bttest & teletest cannot be run unattended\n# mv2test cannot be run because MV2 is broken\n# amcssth doesn't work on OS X (job001621)\nTESTCASES=\"abqtest amcss amcsshe amsss amssshe apss arenacv awlut \\\n awluthe btcv cbstest finalcv finaltest lockcov locv \\\n messtest mpmss mpsicv poolncv qs sacss segsmss steptest \\\n walkt0\"\nOUTPUT=$(mktemp /tmp/mps.log.XXXXXX)\necho \"Logging test output to $OUTPUT\"\nfor TEST in $TESTCASES; do\n TESTCASE=$TARGET_BUILD_DIR/$TEST\n printf \"\\n\\n-- Running $TESTCASE at $(date) --\\n\" >> $OUTPUT\n echo \"Running $TESTCASE\"\n $TESTCASE >> $OUTPUT || exit 1\ndone"; + shellScript = "# bttest & teletest cannot be run unattended\n# mv2test cannot be run because MV2 is broken\n# amcssth doesn't work on OS X (job001621)\nTESTCASES=\"abqtest amcss amcsshe amsss amssshe apss arenacv awlut \\\n awluthe btcv cbstest finalcv finaltest lockcov locv \\\n messtest mpmss mpsicv poolncv qs sacss segsmss steptest \\\n walkt0\"\nOUTPUT=$(mktemp /tmp/mps.log.XXXXXX)\necho \"Logging test output to $OUTPUT\"\nfor TEST in $TESTCASES; do\n TESTCASE=$TARGET_BUILD_DIR/$TEST\n printf \"\\n\\n-- Running $TESTCASE at $(date) --\\n\" >> $OUTPUT\n echo \"Running $TEST ($CONFIGURATION)\"\n $TESTCASE >> $OUTPUT || exit 1\ndone\necho \"All tests pass.\"\n\n# Coverage\nif [ \"$CONFIGURATION\" == \"Debug\" ]; then\n (cd xc/$PROJECT.build/$CONFIGURATION/$PROJECT.build/Objects-normal/x86_64 &&\n gcov mps.c 2>>$OUTPUT) |\n python gcovfmt.py $OUTPUT\nfi"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -3062,6 +3062,8 @@ 22FA177216E8D6FC0098B23F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = amcssth; }; name = Debug; @@ -3069,6 +3071,8 @@ 22FA177316E8D6FC0098B23F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = amcssth; }; name = Release; @@ -3076,6 +3080,8 @@ 22FA177416E8D6FC0098B23F /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = amcssth; }; name = WE; @@ -3084,6 +3090,8 @@ isa = XCBuildConfiguration; buildSettings = { GCC_C_LANGUAGE_STANDARD = c99; + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3107,6 +3115,8 @@ 2D604B9F16514B1A003AAF46 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3128,6 +3138,8 @@ 3104AFBA156D357B000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3135,6 +3147,8 @@ 3104AFBB156D357B000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3142,6 +3156,8 @@ 3104AFD0156D35E2000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3149,6 +3165,8 @@ 3104AFD1156D35E2000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3156,6 +3174,8 @@ 3104AFE5156D3682000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3163,6 +3183,8 @@ 3104AFE6156D3682000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3186,6 +3208,8 @@ 3104B011156D38F3000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3193,6 +3217,8 @@ 3104B012156D38F3000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3200,6 +3226,8 @@ 3104B02A156D39D4000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3207,6 +3235,8 @@ 3104B02B156D39D4000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3214,6 +3244,8 @@ 3104B045156D3AD8000A585A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3221,6 +3253,8 @@ 3104B046156D3AD8000A585A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3228,6 +3262,8 @@ 3114A597156E913C001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3235,6 +3271,8 @@ 3114A598156E913C001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3242,6 +3280,8 @@ 3114A5AF156E92C0001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3249,6 +3289,8 @@ 3114A5B0156E92C0001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3256,6 +3298,8 @@ 3114A5C5156E9315001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3263,6 +3307,8 @@ 3114A5C6156E9315001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3270,6 +3316,8 @@ 3114A5DE156E93A0001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3277,6 +3325,8 @@ 3114A5DF156E93A0001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3284,6 +3334,8 @@ 3114A5F7156E93E7001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3291,6 +3343,8 @@ 3114A5F8156E93E7001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3298,6 +3352,8 @@ 3114A60D156E9430001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3305,6 +3361,8 @@ 3114A60E156E9430001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3312,6 +3370,8 @@ 3114A624156E9485001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3319,6 +3379,8 @@ 3114A625156E9485001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3326,6 +3388,8 @@ 3114A63B156E94DB001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3333,6 +3397,8 @@ 3114A63C156E94DB001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3340,6 +3406,8 @@ 3114A654156E9596001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3347,6 +3415,8 @@ 3114A655156E9596001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3354,6 +3424,8 @@ 3114A66A156E95D9001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3361,6 +3433,8 @@ 3114A66B156E95D9001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3368,6 +3442,8 @@ 3114A684156E9669001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3375,6 +3451,8 @@ 3114A685156E9669001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3382,6 +3460,8 @@ 3114A69D156E971B001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3389,6 +3469,8 @@ 3114A69E156E971B001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3396,6 +3478,8 @@ 3114A6B4156E9759001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3403,6 +3487,8 @@ 3114A6B5156E9759001E0AA3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3410,6 +3496,8 @@ 3114A6CE156E9815001E0AA3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3424,6 +3512,8 @@ 3124CAC0156BE3EC00753214 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3431,6 +3521,8 @@ 3124CAC1156BE3EC00753214 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3438,6 +3530,8 @@ 3124CADC156BE64A00753214 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3445,6 +3539,8 @@ 3124CADD156BE64A00753214 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3452,6 +3548,8 @@ 3124CAF3156BE7F300753214 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3459,6 +3557,8 @@ 3124CAF4156BE7F300753214 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3538,6 +3638,8 @@ 318387EE15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3545,6 +3647,8 @@ 318387EF15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3552,6 +3656,8 @@ 318387F015DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3559,6 +3665,8 @@ 318387F115DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3566,6 +3674,8 @@ 318387F215DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3573,6 +3683,8 @@ 318387F315DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3580,6 +3692,8 @@ 318387F415DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3587,6 +3701,8 @@ 318387F515DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3594,6 +3710,8 @@ 318387F615DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3601,6 +3719,8 @@ 318387F715DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3608,6 +3728,8 @@ 318387F815DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3615,6 +3737,8 @@ 318387F915DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3622,6 +3746,8 @@ 318387FA15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3629,6 +3755,8 @@ 318387FB15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3636,6 +3764,8 @@ 318387FC15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3643,6 +3773,8 @@ 318387FD15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3650,6 +3782,8 @@ 318387FE15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3657,6 +3791,8 @@ 318387FF15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3664,6 +3800,8 @@ 3183880015DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3671,6 +3809,8 @@ 3183880115DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3678,6 +3818,8 @@ 3183880215DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3685,6 +3827,8 @@ 3183880315DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3692,6 +3836,8 @@ 3183880415DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3699,6 +3845,8 @@ 3183880515DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3706,6 +3854,8 @@ 3183880615DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3713,6 +3863,8 @@ 3183880715DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3720,6 +3872,8 @@ 3183880815DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3727,6 +3881,8 @@ 3183880915DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3734,6 +3890,8 @@ 3183880A15DC30CC008E4EA0 /* WE */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = WE; @@ -3748,6 +3906,8 @@ 31D60015156D3CB200337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3755,6 +3915,8 @@ 31D60016156D3CB200337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3762,6 +3924,8 @@ 31D6002F156D3D3F00337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3769,6 +3933,8 @@ 31D60030156D3D3F00337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3776,6 +3942,8 @@ 31D60046156D3EC700337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3783,6 +3951,8 @@ 31D60047156D3EC700337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3790,6 +3960,8 @@ 31D6005C156D3F3500337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3797,6 +3969,8 @@ 31D6005D156D3F3500337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3804,6 +3978,8 @@ 31D60079156D3FBC00337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3811,6 +3987,8 @@ 31D6007A156D3FBC00337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3818,6 +3996,8 @@ 31D60094156D402900337B26 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3825,6 +4005,8 @@ 31D60095156D402900337B26 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -3944,6 +4126,8 @@ ALWAYS_SEARCH_USER_PATHS = NO; COMBINE_HIDPI_IMAGES = YES; EXECUTABLE_PREFIX = lib; + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3961,6 +4145,8 @@ 31EEAC6D156AB52600714D05 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3968,6 +4154,8 @@ 31EEAC6E156AB52600714D05 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_GENERATE_TEST_COVERAGE_FILES = NO; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release;