• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang randbo.New函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/dustin/randbo.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: TestCallbacksWork

func TestCallbacksWork(t *testing.T) {
	fake := new(FakeStream)

	var sent int64
	var recv int64

	sentCB := func(n int64, proto protocol.ID, p peer.ID) {
		sent += n
	}

	recvCB := func(n int64, proto protocol.ID, p peer.ID) {
		recv += n
	}

	ms := newMeteredStream(fake, protocol.ID("TEST"), peer.ID("PEER"), recvCB, sentCB)

	toWrite := int64(100000)
	toRead := int64(100000)

	fake.ReadBuf = io.LimitReader(randbo.New(), toRead)
	writeData := io.LimitReader(randbo.New(), toWrite)

	n, err := io.Copy(ms, writeData)
	if err != nil {
		t.Fatal(err)
	}

	if n != toWrite {
		t.Fatal("incorrect write amount")
	}

	if toWrite != sent {
		t.Fatal("incorrectly reported writes", toWrite, sent)
	}

	n, err = io.Copy(ioutil.Discard, ms)
	if err != nil {
		t.Fatal(err)
	}

	if n != toRead {
		t.Fatal("incorrect read amount")
	}

	if toRead != recv {
		t.Fatal("incorrectly reported reads")
	}
}
开发者ID:tilgovi,项目名称:go-libp2p,代码行数:48,代码来源:metered_test.go


示例2: main

func main() {
	log.SetPrefix("prandom: ")
	_, err := io.Copy(os.Stdout, randbo.New())
	if err != nil {
		log.Fatal(err)
	}
}
开发者ID:aybabtme,项目名称:prandom,代码行数:7,代码来源:main.go


示例3: BenchmarkBlockRewrites

func BenchmarkBlockRewrites(n *core.IpfsNode, cfg *BenchCfg) error {
	buf := make([]byte, cfg.Blocksize)
	randbo.New().Read(buf)

	blk := blocks.NewBlock(buf)
	// write the block first, before starting the benchmark.
	// we're just looking at the time it takes to write a block thats already
	// been written
	k, err := n.Blocks.AddBlock(blk)
	if err != nil {
		return err
	}

	f := func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			_, err := n.Blocks.AddBlock(blk)
			if err != nil {
				b.Fatal(err)
			}
		}
	}

	br := testing.Benchmark(f)
	fmt.Printf("BlockRewrites:\t\t%s\n", br)

	// clean up
	err = n.Blocks.DeleteBlock(k)
	if err != nil {
		return err
	}

	return nil
}
开发者ID:whyrusleeping,项目名称:repobench,代码行数:33,代码来源:main.go


示例4: BenchmarkConsecutivePut

func BenchmarkConsecutivePut(b *testing.B) {
	r := rand.New()
	var blocks [][]byte
	var keys []datastore.Key
	for i := 0; i < b.N; i++ {
		blk := make([]byte, 256*1024)
		r.Read(blk)
		blocks = append(blocks, blk)

		key := base32.StdEncoding.EncodeToString(blk[:8])
		keys = append(keys, datastore.NewKey(key))
	}
	temp, cleanup := tempdir(b)
	defer cleanup()

	fs, err := flatfs.New(temp, 2)
	if err != nil {
		b.Fatalf("New fail: %v\n", err)
	}

	b.ResetTimer()

	for i := 0; i < b.N; i++ {
		err := fs.Put(keys[i], blocks[i])
		if err != nil {
			b.Fatal(err)
		}
	}
}
开发者ID:heems,项目名称:go-ipfs,代码行数:29,代码来源:flatfs_test.go


示例5: benchAddSize

func benchAddSize(n *core.IpfsNode, cfg *BenchCfg, size int64) error {
	f := func(b *testing.B) {
		b.SetBytes(size)
		for i := 0; i < b.N; i++ {
			r := io.LimitReader(randbo.New(), size)
			spl := chunk.NewSizeSplitter(r, cfg.Blocksize)
			_, err := importer.BuildDagFromReader(n.DAG, spl, nil)
			if err != nil {
				fmt.Printf("ERRROR: ", err)
				b.Fatal(err)
			}
		}
	}

	br := testing.Benchmark(f)
	bs := humanize.IBytes(uint64(size))
	fmt.Printf("Add File (%s):\t%s\n", bs, br)

	err := cr.GarbageCollect(n, context.Background())
	if err != nil {
		return err
	}

	return nil
}
开发者ID:whyrusleeping,项目名称:repobench,代码行数:25,代码来源:main.go


示例6: BenchmarkRandomBlockWrites

func BenchmarkRandomBlockWrites(n *core.IpfsNode, cfg *BenchCfg) error {
	buf := make([]byte, cfg.Blocksize)
	read := randbo.New()

	var keys []key.Key
	f := func(b *testing.B) {
		b.SetBytes(cfg.Blocksize)
		for i := 0; i < b.N; i++ {
			read.Read(buf)
			blk := blocks.NewBlock(buf)
			k, err := n.Blocks.AddBlock(blk)
			if err != nil {
				b.Fatal(err)
			}

			keys = append(keys, k)
		}
	}

	br := testing.Benchmark(f)
	fmt.Printf("RandomBlockWrites:\t%s\n", br)

	// clean up
	for _, k := range keys {
		err := n.Blocks.DeleteBlock(k)
		if err != nil {
			return err
		}
	}

	return nil
}
开发者ID:whyrusleeping,项目名称:repobench,代码行数:32,代码来源:main.go


示例7: main

func main() {
	list := flag.Bool("l", false, "listen on the given address")
	spew := flag.Bool("spew", false, "spew random data on the connection")

	flag.Usage = func() {
		fmt.Fprintf(os.Stderr, "Usage: %s [-l] <host> <port>\n", os.Args[0])
	}

	flag.Parse()

	c := make(chan os.Signal)
	signal.Notify(c, os.Interrupt)

	if len(flag.Args()) < 2 {
		flag.Usage()
		os.Exit(1)
	}

	addr := fmt.Sprintf("%s:%s", flag.Arg(0), flag.Arg(1))

	var con io.ReadWriteCloser
	if *list {
		sock, err := utp.NewSocket("udp", addr)
		if err != nil {
			fmt.Fprintf(os.Stderr, "create socket failed: %s\n", err)
			os.Exit(1)
		}

		defer sock.Close()

		utpcon, err := sock.Accept()
		if err != nil {
			fmt.Fprintf(os.Stderr, "accept failed: %s\n", err)
			os.Exit(1)
		}

		con = utpcon
	} else {
		utpcon, err := utp.Dial(addr)
		if err != nil {
			fmt.Fprintf(os.Stderr, "dial failed: %s\n", err)
			os.Exit(1)
		}

		con = utpcon
	}

	var in io.Reader = os.Stdin
	if *spew {
		in = rand.New()
	}

	go func() {
		<-c
		con.Close()
	}()
	beNetcat(con, in)
}
开发者ID:whyrusleeping,项目名称:go-utp-nc,代码行数:58,代码来源:main.go


示例8: createRandomDataFile

func createRandomDataFile(b *testing.B, length int) string {
	f, err := os.Create("/tmp/test")
	if err != nil {
		b.Fatalf("couldn't create file: %v\n", err)
	}
	rand := randbo.New()
	io.CopyN(f, rand, int64(length))
	f.Close()
	return "/tmp/test"
}
开发者ID:haldean,项目名称:xt,代码行数:10,代码来源:io_test.go


示例9: newID

// newID returns a pseudo-random, URL-encoded, base64
// string used for connection identifiers.
func newID() string {
	buf := make([]byte, 15)
	n, err := randbo.New().Read(buf)
	if err != nil {
		glog.Fatal(err)
	}
	if n != len(buf) {
		glog.Fatal("short read")
	}
	return base64.URLEncoding.EncodeToString(buf)
}
开发者ID:poptip,项目名称:ftc,代码行数:13,代码来源:conn.go


示例10: newsparkyServer

// newsparkyServer creates a sparkyServer object and pre-fills some random data
func newsparkyServer() sparkyServer {
	ss := sparkyServer{}

	// Make a 10MB byte slice
	ss.randomData = make([]byte, 1024*1024*10)

	// Fill our 10MB byte slice with random data
	_, err := randbo.New().Read(ss.randomData)
	if err != nil {
		log.Fatalln("error generating random data:", err)
	}

	return ss
}
开发者ID:mephux,项目名称:sparkyfish,代码行数:15,代码来源:sparkyfish-server.go


示例11: main

func main() {
	if len(os.Args) < 2 {
		fmt.Println("need to specify size!")
		os.Exit(1)
	}

	n, err := strconv.Atoi(os.Args[1])
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	r := randbo.New()
	io.CopyN(os.Stdout, r, int64(n))
}
开发者ID:whyrusleeping,项目名称:ipfs-network-tests,代码行数:15,代码来源:main.go


示例12: RunBatchTest

func RunBatchTest(t *testing.T, ds dstore.Batching) {
	batch, err := ds.Batch()
	if err != nil {
		t.Fatal(err)
	}

	r := rand.New()
	var blocks [][]byte
	var keys []dstore.Key
	for i := 0; i < 20; i++ {
		blk := make([]byte, 256*1024)
		r.Read(blk)
		blocks = append(blocks, blk)

		key := dstore.NewKey(base32.StdEncoding.EncodeToString(blk[:8]))
		keys = append(keys, key)

		err := batch.Put(key, blk)
		if err != nil {
			t.Fatal(err)
		}
	}

	// Ensure they are not in the datastore before comitting
	for _, k := range keys {
		_, err := ds.Get(k)
		if err == nil {
			t.Fatal("should not have found this block")
		}
	}

	// commit, write them to the datastore
	err = batch.Commit()
	if err != nil {
		t.Fatal(err)
	}

	for i, k := range keys {
		blk, err := ds.Get(k)
		if err != nil {
			t.Fatal(err)
		}

		if !bytes.Equal(blk.([]byte), blocks[i]) {
			t.Fatal("blocks not correct!")
		}
	}
}
开发者ID:rht,项目名称:ipget,代码行数:48,代码来源:test_util.go


示例13: newsparkyClient

// NewsparkyClient creates a new sparkyClient object
func newsparkyClient() *sparkyClient {
	m := sparkyClient{}

	// Make a 10MB byte slice to hold our random data blob
	m.randomData = make([]byte, 1024*1024*10)

	// Use a randbo Reader to fill our big slice with random data
	_, err := randbo.New().Read(m.randomData)
	if err != nil {
		log.Fatalln("error generating random data:", err)
	}

	// Create a bytes.Reader over this byte slice
	m.randReader = bytes.NewReader(m.randomData)

	return &m
}
开发者ID:mephux,项目名称:sparkyfish,代码行数:18,代码来源:sparkyfish-cli.go


示例14: MeteredCopy

// MeteredCopy copies to or from a net.Conn, keeping count of the data it passes
func (ss *sparkyServer) MeteredCopy() {
	var err error
	var timer *time.Timer

	// Set a timer that we'll use to stop the test.  If we're running an inbound test,
	// we extend the timer by two seconds to allow the client to finish its sending.
	if ss.testType == inbound {
		timer = time.NewTimer(time.Second * time.Duration(testLength+2))
	} else if ss.testType == outbound {
		timer = time.NewTimer(time.Second * time.Duration(testLength))
	}

	// Create a new randbo Reader
	rnd := randbo.New()

	for {
		select {
		case <-timer.C:
			if *debug {
				log.Println(testLength, "seconds have elapsed.")
			}
			return
		default:
			// Copy our random data from randbo to our ResponseWriter, 100KB at a time
			switch ss.testType {
			case outbound:
				_, err = io.CopyN(ss.client, rnd, 1024*blockSize)
			case inbound:
				_, err = io.CopyN(ioutil.Discard, ss.client, 1024*blockSize)
			}

			// io.EOF is normal when a client drops off after the test
			if err != nil {
				if err != io.EOF {
					log.Println("Error copying:", err)
				}
				return
			}

			// // With each 100K copied, we send a message on our blockTicker channel
			ss.blockTicker <- true
		}
	}
}
开发者ID:bandwith,项目名称:sparkyfish,代码行数:45,代码来源:sparkyfish-server.go


示例15: TestEcho

func TestEcho(t *testing.T) {
	a, b := net.Pipe()

	mpa := NewMultiplex(a, false)
	mpb := NewMultiplex(b, true)

	mes := make([]byte, 40960)
	rand.New().Read(mes)
	go func() {
		s, err := mpb.Accept()
		if err != nil {
			t.Fatal(err)
		}

		defer s.Close()
		io.Copy(s, s)
	}()

	s := mpa.NewStream()

	_, err := s.Write(mes)
	if err != nil {
		t.Fatal(err)
	}

	buf := make([]byte, len(mes))
	n, err := io.ReadFull(s, buf)
	if err != nil {
		t.Fatal(err)
	}

	if n != len(mes) {
		t.Fatal("read wrong amount")
	}

	if err := arrComp(buf, mes); err != nil {
		t.Fatal(err)
	}
	s.Close()

	mpa.Close()
	mpb.Close()
}
开发者ID:sbruce,项目名称:go-ipfs,代码行数:43,代码来源:multiplex_test.go


示例16: createInternalName

func createInternalName(suffix string) string {
	buf := make([]byte, 30)
	n, err := randbo.New().Read(buf)

	if err != nil {
		log.Fatalf("createInternalName failed: %s", err)
	}

	if n != len(buf) {
		log.Fatalf("createInternalName failed: (n = %d) != (len = %d)", n, len(buf))
	}

	hex := fmt.Sprintf("%x.%s", buf, suffix)

	return strings.Join(
		[]string{hex[0:1], hex[1:2], hex[2:3], hex[3:4], hex},
		"/",
	)
}
开发者ID:stf-storage,项目名称:go-stf-server,代码行数:19,代码来源:object.go


示例17: BenchmarkBatchedPut

func BenchmarkBatchedPut(b *testing.B) {
	r := rand.New()
	var blocks [][]byte
	var keys []datastore.Key
	for i := 0; i < b.N; i++ {
		blk := make([]byte, 256*1024)
		r.Read(blk)
		blocks = append(blocks, blk)

		key := base32.StdEncoding.EncodeToString(blk[:8])
		keys = append(keys, datastore.NewKey(key))
	}
	temp, cleanup := tempdir(b)
	defer cleanup()

	fs, err := flatfs.New(temp, 2, false)
	if err != nil {
		b.Fatalf("New fail: %v\n", err)
	}

	b.ResetTimer()

	for i := 0; i < b.N; {
		batch, err := fs.Batch()
		if err != nil {
			b.Fatal(err)
		}

		for n := i; i-n < 512 && i < b.N; i++ {
			err := batch.Put(keys[i], blocks[i])
			if err != nil {
				b.Fatal(err)
			}
		}
		err = batch.Commit()
		if err != nil {
			b.Fatal(err)
		}
	}
}
开发者ID:RichardLitt,项目名称:go-datastore,代码行数:40,代码来源:flatfs_test.go


示例18: worker

func worker(done chan struct{}, wg *sync.WaitGroup) {
	defer wg.Done()
	memc, err := gomemcache.Connect(*queueHost, *queuePort)
	defer memc.Close()
	if err != nil {
		log.Println(err)
	}

	setsRemaning := *numSets
	getsRemaning := *numGets
	getSetRatio := float32(*numGets) / float32(*numSets)
	dataSource := &dataSource{make([]byte, *itemSize), randbo.New()}

	for {
		if getsRemaning > 0 {
			if setsRemaning < 1 {
				err = get(memc)
				getsRemaning--
			} else if float32(getsRemaning)/float32(setsRemaning) > getSetRatio {
				err = get(memc)
				getsRemaning--
			} else {
				err = set(memc, dataSource)
				setsRemaning--
			}
		} else if setsRemaning > 0 {
			err = set(memc, dataSource)
			setsRemaning--
		} else {
			return
		}
		if err != nil && err.Error() != "memcache: not found" {
			log.Println(err)
			memc, err = gomemcache.Connect(*queueHost, *queuePort)
			if err != nil {
				log.Println(err)
			}
		}
	}
}
开发者ID:roger2000hk,项目名称:siberite,代码行数:40,代码来源:bench.go


示例19: benchDiskWriteSize

func benchDiskWriteSize(dir string, size int64) error {
	benchdir := path.Join(dir, fmt.Sprintf("benchfiles-%d", size))
	err := os.Mkdir(benchdir, 0777)
	if err != nil {
		return err
	}

	n := 0
	f := func(b *testing.B) {
		b.SetBytes(size)
		r := randbo.New()
		for i := 0; i < b.N; i++ {
			n++
			fi, err := os.Create(path.Join(dir, fmt.Sprint(n)))
			if err != nil {
				fmt.Println(err)
				b.Fatal(err)
			}

			_, err = io.CopyN(fi, r, size)
			if err != nil {
				fi.Close()
				fmt.Println(err)
				b.Fatal(err)
			}
			fi.Close()
		}
	}

	br := testing.Benchmark(f)
	bs := humanize.IBytes(uint64(size))
	fmt.Printf("DiskWrite (%s):\t%s\n", bs, br)

	err = os.RemoveAll(benchdir)
	if err != nil {
		return err
	}
	return nil
}
开发者ID:whyrusleeping,项目名称:repobench,代码行数:39,代码来源:main.go


示例20: RunBatchDeleteTest

func RunBatchDeleteTest(t *testing.T, ds dstore.Batching) {
	r := rand.New()
	var keys []dstore.Key
	for i := 0; i < 20; i++ {
		blk := make([]byte, 16)
		r.Read(blk)

		key := dstore.NewKey(base32.StdEncoding.EncodeToString(blk[:8]))
		keys = append(keys, key)

		err := ds.Put(key, blk)
		if err != nil {
			t.Fatal(err)
		}
	}

	batch, err := ds.Batch()
	if err != nil {
		t.Fatal(err)
	}

	for _, k := range keys {
		err := batch.Delete(k)
		if err != nil {
			t.Fatal(err)
		}
	}
	err = batch.Commit()
	if err != nil {
		t.Fatal(err)
	}

	for _, k := range keys {
		_, err := ds.Get(k)
		if err == nil {
			t.Fatal("shouldnt have found block")
		}
	}
}
开发者ID:rht,项目名称:ipget,代码行数:39,代码来源:test_util.go



注:本文中的github.com/dustin/randbo.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang goftp.FTP类代码示例发布时间:2022-05-23
下一篇:
Golang gomemcached.MCResponse类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap