github.com/number571/tendermint@v0.34.11-gost/test/fuzz/p2p/addrbook/init-corpus/main.go (about)

     1  // nolint: gosec
     2  package main
     3  
     4  import (
     5  	"encoding/json"
     6  	"flag"
     7  	"fmt"
     8  	"io/ioutil"
     9  	"log"
    10  	"net"
    11  	"os"
    12  	"path/filepath"
    13  
    14  	"github.com/number571/tendermint/crypto/gost512"
    15  	"github.com/number571/tendermint/internal/p2p"
    16  	"github.com/number571/tendermint/types"
    17  )
    18  
    19  func main() {
    20  	baseDir := flag.String("base", ".", `where the "corpus" directory will live`)
    21  	flag.Parse()
    22  
    23  	initCorpus(*baseDir)
    24  }
    25  
    26  func initCorpus(baseDir string) {
    27  	log.SetFlags(0)
    28  
    29  	// create "corpus" directory
    30  	corpusDir := filepath.Join(baseDir, "corpus")
    31  	if err := os.MkdirAll(corpusDir, 0755); err != nil {
    32  		log.Fatalf("Creating %q err: %v", corpusDir, err)
    33  	}
    34  
    35  	// create corpus
    36  	privKey := gost512.GenPrivKey()
    37  	addrs := []*p2p.NetAddress{
    38  		{ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(0, 0, 0, 0), Port: 0},
    39  		{ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(127, 0, 0, 0), Port: 80},
    40  		{ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(213, 87, 10, 200), Port: 8808},
    41  		{ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.IPv4(111, 111, 111, 111), Port: 26656},
    42  		{ID: types.NodeIDFromPubKey(privKey.PubKey()), IP: net.ParseIP("2001:db8::68"), Port: 26656},
    43  	}
    44  
    45  	for i, addr := range addrs {
    46  		filename := filepath.Join(corpusDir, fmt.Sprintf("%d.json", i))
    47  
    48  		bz, err := json.Marshal(addr)
    49  		if err != nil {
    50  			log.Fatalf("can't marshal %v: %v", addr, err)
    51  		}
    52  
    53  		if err := ioutil.WriteFile(filename, bz, 0644); err != nil {
    54  			log.Fatalf("can't write %v to %q: %v", addr, filename, err)
    55  		}
    56  
    57  		log.Printf("wrote %q", filename)
    58  	}
    59  }