// Copyright (c) 2016 Marty Schoch// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the// License. You may obtain a copy of the License at// http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing,// software distributed under the License is distributed on an "AS// IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either// express or implied. See the License for the specific language// governing permissions and limitations under the License.package smat// ActionSeq represents a sequence of actions, used for populating a corpus// of byte sequences for the corresponding fuzz teststypeActionSeq []ActionID// ByteEncoding runs the FSM to produce a byte sequence to trigger the// desired actionfunc ( ActionSeq) ( Context, , ActionID, ActionMap) ([]byte, error) { , , := .findSetupTeardown(, )if != nil {returnnil, } , := ()if != nil {returnnil, }deferfunc() { _, _ = () }()var []bytefor , := range { , := probeStateForAction(, )if != nil {returnnil, } = append(, ) , := []if ! {continue } , = ()if != nil {returnnil, } }return , nil}func probeStateForAction( State, ActionID) (byte, error) {for := 0; < 256; ++ { := (byte())if == {returnbyte(), nil } }return0, ErrActionNotPossible}
The pages are generated with Goldsv0.8.7. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.