(id string, rng *rand.Rand)
| 13 | ) |
| 14 | |
| 15 | func (mod *CANModule) fuzzSelectFrame(id string, rng *rand.Rand) (uint64, error) { |
| 16 | // let's try as an hex number first |
| 17 | frameID, err := strconv.ParseUint(id, 16, 32) |
| 18 | if err != nil { |
| 19 | // not a number, use as node name if we have a dbc |
| 20 | if mod.dbc.Loaded() { |
| 21 | fromSender := mod.dbc.MessagesBySender(id) |
| 22 | if len(fromSender) == 0 { |
| 23 | return 0, fmt.Errorf("no messages defined in DBC file for node %s, available nodes: %s", id, mod.dbc.Senders()) |
| 24 | } |
| 25 | |
| 26 | idx := rng.Intn(len(fromSender)) |
| 27 | selected := fromSender[idx] |
| 28 | mod.Info("selected %s > (%d) %s", id, selected.ID, selected.Name) |
| 29 | frameID = uint64(selected.ID) |
| 30 | } else { |
| 31 | // no dbc, just return the error |
| 32 | return 0, err |
| 33 | } |
| 34 | } |
| 35 | return frameID, nil |
| 36 | } |
| 37 | |
| 38 | func (mod *CANModule) fuzzGenerateFrame(frameID uint64, size int, rng *rand.Rand) (*can.Frame, error) { |
| 39 | dataLen := 0 |
no test coverage detected