Coverage for /pythoncovmergedfiles/medio/medio/src/fuzz_linechart.py: 3%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

35 statements  

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 

12#!/usr/bin/python3 

13# Copyright 2023 Google LLC 

14# 

15# Licensed under the Apache License, Version 2.0 (the "License"); 

16# you may not use this file except in compliance with the License. 

17# You may obtain a copy of the License at 

18# 

19# http://www.apache.org/licenses/LICENSE-2.0 

20# 

21# Unless required by applicable law or agreed to in writing, software 

22# distributed under the License is distributed on an "AS IS" BASIS, 

23# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

24# See the License for the specific language governing permissions and 

25# limitations under the License. 

26import sys 

27import atheris 

28 

29import nvd3 

30 

31 

32def TestOneInput(data): 

33 fdp = atheris.FuzzedDataProvider(data) 

34 

35 # Chart with two series 

36 chart = nvd3.lineChart(name=fdp.ConsumeUnicodeNoSurrogates(24), 

37 x_is_date=fdp.ConsumeBool(), 

38 x_axis_format=fdp.ConsumeUnicodeNoSurrogates(12)) 

39 xdata = list(range(0, 256)) 

40 ydata = fdp.ConsumeIntList(256, 4) 

41 ydata2 = fdp.ConsumeIntList(256, 4) 

42 

43 # Create random args for each serie 

44 kwargs1 = dict() 

45 for i in range(fdp.ConsumeIntInRange(5, 10)): 

46 kwargs1[fdp.ConsumeUnicodeNoSurrogates( 

47 24)] = fdp.ConsumeUnicodeNoSurrogates(24) 

48 

49 kwargs2 = dict() 

50 for i in range(fdp.ConsumeIntInRange(5, 10)): 

51 kwargs2[fdp.ConsumeUnicodeNoSurrogates( 

52 24)] = fdp.ConsumeUnicodeNoSurrogates(24) 

53 

54 # Add thw two series 

55 extra_serie = { 

56 fdp.ConsumeUnicodeNoSurrogates(24): { 

57 fdp.ConsumeUnicodeNoSurrogates(24): 

58 fdp.ConsumeUnicodeNoSurrogates(24), 

59 fdp.ConsumeUnicodeNoSurrogates(24): 

60 fdp.ConsumeUnicodeNoSurrogates(24) 

61 } 

62 } 

63 chart.add_serie(y=ydata, 

64 x=xdata, 

65 name=fdp.ConsumeUnicodeNoSurrogates(24), 

66 extra=extra_serie, 

67 **kwargs1) 

68 extra_serie = { 

69 fdp.ConsumeUnicodeNoSurrogates(24): { 

70 fdp.ConsumeUnicodeNoSurrogates(24): 

71 fdp.ConsumeUnicodeNoSurrogates(24), 

72 fdp.ConsumeUnicodeNoSurrogates(24): 

73 fdp.ConsumeUnicodeNoSurrogates(24) 

74 } 

75 } 

76 chart.add_serie(y=ydata2, 

77 x=xdata, 

78 name=fdp.ConsumeUnicodeNoSurrogates(24), 

79 extra=extra_serie, 

80 **kwargs2) 

81 

82 # Construct the HTML 

83 chart.buildhtml() 

84 

85 

86def main(): 

87 atheris.instrument_all() 

88 atheris.Setup(sys.argv, TestOneInput) 

89 atheris.Fuzz() 

90 

91 

92if __name__ == "__main__": 

93 main()