Coverage for /pythoncovmergedfiles/medio/medio/src/django-fuzzers/basic_fuzzer.py: 41%

29 statements  

« prev     ^ index     » next       coverage.py v7.0.5, created at 2023-01-17 06:13 +0000

1###### Coverage stub 

2import atexit 

3import coverage 

4cov = coverage.coverage(data_file='.coverage', cover_pylib=True) 

5cov.start() 

6# Register an exist handler that will print coverage 

7def exit_handler(): 

8 cov.stop() 

9 cov.save() 

10atexit.register(exit_handler) 

11####### End of coverage stub 

12import sys 

13 

14import atheris 

15 

16with atheris.instrument_imports(): 

17 import fuzzers 

18 

19 

20def TestOneInput(data): 

21 fdp = atheris.FuzzedDataProvider(data) 

22 choice = fdp.ConsumeIntInRange(0, len(fuzzers.tests) - 1) 

23 func, data_type = fuzzers.tests[choice] 

24 

25 if data_type == str: 

26 data = fdp.ConsumeUnicodeNoSurrogates(sys.maxsize) 

27 elif data_type == bytes: 

28 data = fdp.ConsumeBytes(sys.maxsize) 

29 elif data_type == int: 

30 data = fdp.ConsumeInt(sys.maxsize) 

31 

32 try: 

33 func(data) 

34 except Exception: 

35 print(func, data_type, repr(data)) 

36 raise 

37 

38 

39atheris.Setup(sys.argv, TestOneInput) 

40atheris.Fuzz()