File: fuzzbf.py

package info (click to toggle)
birdfont 2.33.6-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,688 kB
  • sloc: ansic: 2,399; python: 1,111; xml: 187; sh: 78; makefile: 14
file content (33 lines) | stat: -rwxr-xr-x 809 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/python3

import subprocess
from os import path

from run import run

def fuzz_import():
    fuzz_bf ('birdfont-test/testfont.bf')

def fuzz_bf (file):
    run ("mkdir -p build/fuzz")
    run ("mkdir -p build/fuzz/bugs")
    run ("radamsa " + file + " > build/fuzz/font.bf")

    cmd = "./birdfont-test.sh BF build/fuzz/font.bf"
    print('Running: ' + cmd)
    process = subprocess.Popen (cmd, shell=True)
    process.communicate()[0]
    if not process.returncode == 0:
        print("Error: " + cmd)
        print("A bug was found.")
        
        i = 0
        while path.isfile ('build/bugs/font_' + str(i) + '.bf'):
            i = i + 1
			
        run ('mv build/fuzz/font.bf attic/fuzz/bugs/font_' + str(i) + '.bf')

    run ("rm -f build/fuzz/font.svg")

while True:
    fuzz_import ()