pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/system/fuzz.go (about)

     1  //go:build gofuzz
     2  // +build gofuzz
     3  
     4  package system
     5  
     6  // ////////////////////////////////////////////////////////////////////////////////// //
     7  //                                                                                    //
     8  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     9  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
    10  //                                                                                    //
    11  // ////////////////////////////////////////////////////////////////////////////////// //
    12  
    13  import (
    14  	"bufio"
    15  	"bytes"
    16  )
    17  
    18  // ////////////////////////////////////////////////////////////////////////////////// //
    19  
    20  func FuzzCPUStats(data []byte) int {
    21  	r := bytes.NewReader(data)
    22  	s := bufio.NewScanner(r)
    23  
    24  	_, err := parseCPUStats(s)
    25  
    26  	if err != nil {
    27  		return 1
    28  	}
    29  
    30  	return 0
    31  }
    32  
    33  func FuzzCPUInfo(data []byte) int {
    34  	r := bytes.NewReader(data)
    35  	s := bufio.NewScanner(r)
    36  
    37  	_, err := parseCPUInfo(s)
    38  
    39  	if err != nil {
    40  		return 1
    41  	}
    42  
    43  	return 0
    44  }
    45  
    46  func FuzzMemUsage(data []byte) int {
    47  	r := bytes.NewReader(data)
    48  	s := bufio.NewScanner(r)
    49  
    50  	_, err := parseMemUsage(s)
    51  
    52  	if err != nil {
    53  		return 1
    54  	}
    55  
    56  	return 0
    57  }
    58  
    59  func FuzzIOStats(data []byte) int {
    60  	r := bytes.NewReader(data)
    61  	s := bufio.NewScanner(r)
    62  
    63  	_, err := parseIOStats(s)
    64  
    65  	if err != nil {
    66  		return 1
    67  	}
    68  
    69  	return 0
    70  }
    71  
    72  func FuzzFSInfo(data []byte) int {
    73  	r := bytes.NewReader(data)
    74  	s := bufio.NewScanner(r)
    75  
    76  	_, err := parseFSInfo(s, false)
    77  
    78  	if err != nil {
    79  		return 1
    80  	}
    81  
    82  	return 0
    83  }
    84  
    85  func FuzzInterfacesStats(data []byte) int {
    86  	r := bytes.NewReader(data)
    87  	s := bufio.NewScanner(r)
    88  
    89  	_, err := parseInterfacesStats(s)
    90  
    91  	if err != nil {
    92  		return 1
    93  	}
    94  
    95  	return 0
    96  }
    97  
    98  func FuzzLAInfo(data []byte) int {
    99  	_, err := parseLAInfo(string(data))
   100  
   101  	if err != nil {
   102  		return 1
   103  	}
   104  
   105  	return 0
   106  }
   107  
   108  func FuzzUptime(data []byte) int {
   109  	_, err := parseUptime(string(data))
   110  
   111  	if err != nil {
   112  		return 1
   113  	}
   114  
   115  	return 0
   116  }