LISTEN = [
    TestOnEvent('libinjection'),
    TestOnTime(minute='0', hour='23')
]

tests = [
    {
        'name'    : 'libinjection-build-test',
        'listen'  : LISTEN,
        'source'  : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'    : ExecuteShell('gcc --version && cd c && make clean && make test'),
    },
    {
        'name': 'libinjection-build-test-g++',
        'listen'  : LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('g++ --version && cd c && make clean && CC=g++ make test')
    },
    {
        'name': 'libinjection-build-test-clang',
        'listen'  : LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('clang --version && cd c && ./clang.sh')
    },
    {
        'name'   : 'libinjection-cppcheck',
        'listen' : LISTEN,
        'source' : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'   : ExecuteShell('cppcheck --version && cd c && make cppcheck')
    },
    {
        'name'   : 'libinjection-clang-static-analyzer',
        'listen' : LISTEN,
        'source' : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'   : ExecuteShell('cd c && scan-build make test')
    },
    {
        'name'   : 'libinjection-loc',
        'listen' : LISTEN,
        'source' : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'   : ExecuteShell('cd c && cloc.pl libinjection.h libinjection_sqli.c')
    },
    {
        'name': 'libinjection-pyflakes',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('cd c && pyflakes *.py')
    },
    {
        'name': 'libinjection-pylint',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        # disable 'too-many-lines' warning
        'exec': ExecuteShell('pylint --disable=C0302 --include-ids=y -f parseable c/*.py')
    },
    {
        'name': 'libinjection-python-build-test',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('make clean && cd python && make test'),
    },
    {
        'name': 'libinjection-php-build-test',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('make clean && cd php && make test'),
    },
    {
        'name': 'libinjection-lua-build-test',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec': ExecuteShell('make clean && cd lua && make test'),
    },
    {
        'name': 'libinjection-samples-positive',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'   : ExecuteShell("""
cd c
make clean
make reader
./reader -t -i -m 21 ../data/sqli-*.txt
""")

    },
    {
        'name': 'libinjection-samples-negative',
        'listen': LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'   : ExecuteShell("""
cd c
make clean
make reader
./reader -t -m 22 ../data/false_positives.txt
""")
    },
    {
        'name'    : 'libinjection-coverage-unittest',
        'listen'  : LISTEN,
        'source'  : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'    : ExecuteShell("cd c && make clean && make coverage-testdriver"),
        'publish' : [
            PublishArtifact('c/lcov-html', 'lcov-html/c/libinjection_sqli.c.gcov.html', 'coverage')
            ]
    },
    {
        'name': 'libinjection-speed',
        'listen'  : LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec' : ExecuteShell("cd c && make test_speed")
    },
    {
        'name': 'libinjection-valgrind',
        'listen'  : LISTEN,
        'source': CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec' : ExecuteShell("cd c && make clean && nice make valgrind"),
    },
    {
        'name'    : 'libinjection-gprof',
        'listen'  : LISTEN,
        'source'  : CheckoutGit('https://github.com/client9/libinjection.git'),
        'exec'    : ExecuteShell("""#!/bin/bash
cd c
make clean
make reader
gcc -g -O2 -pg -o reader libinjection_sqli.c reader.c
./reader -s -q ../data/sqli-*.txt ../data/false-*.txt
gprof ./reader gmon.out
""")
    }
]

@@ -1297,16 +1297,141 @@
 n-build 
+--status-bugs -no-failure-reports -enable-checker alpha.unix.cstring.OutOfBounds -enable-checker alpha.security.ArrayBoundV2 
 make tes

fix up static analyzer