// CreateConfig creates a config file with a randomly selected polynomial and // ID and saves the config in the repository. func CreateConfig(r JSONUnpackedSaver) (Config, error) { var ( err error cfg Config ) cfg.ChunkerPolynomial, err = chunker.RandomPolynomial() if err != nil { return Config{}, err } newID := make([]byte, repositoryIDSize) _, err = io.ReadFull(rand.Reader, newID) if err != nil { return Config{}, err } cfg.ID = hex.EncodeToString(newID) cfg.Version = RepoVersion debug.Log("Repo.CreateConfig", "New config: %#v", cfg) _, err = r.SaveJSONUnpacked(backend.Config, cfg) return cfg, err }
func BenchmarkNewChunker(b *testing.B) { p, err := chunker.RandomPolynomial() OK(b, err) b.ResetTimer() for i := 0; i < b.N; i++ { chunker.New(bytes.NewBuffer(nil), p, nil) } }
// CreateConfig creates a config file with a randomly selected polynomial and // ID. func CreateConfig() (Config, error) { var ( err error cfg Config ) cfg.ChunkerPolynomial, err = chunker.RandomPolynomial() if err != nil { return Config{}, errors.Wrap(err, "chunker.RandomPolynomial") } cfg.ID = NewRandomID().String() cfg.Version = RepoVersion debug.Log("New config: %#v", cfg) return cfg, nil }
func TestChunkerWithRandomPolynomial(t *testing.T) { // setup data source buf := getRandom(23, 32*1024*1024) // generate a new random polynomial start := time.Now() p, err := chunker.RandomPolynomial() OK(t, err) t.Logf("generating random polynomial took %v", time.Since(start)) start = time.Now() ch := chunker.New(bytes.NewReader(buf), p, sha256.New()) t.Logf("creating chunker took %v", time.Since(start)) // make sure that first chunk is different c, err := ch.Next() Assert(t, c.Cut != chunks1[0].CutFP, "Cut point is the same") Assert(t, c.Length != chunks1[0].Length, "Length is the same") Assert(t, !bytes.Equal(c.Digest, chunks1[0].Digest), "Digest is the same") }
func BenchmarkRandomPolynomial(t *testing.B) { for i := 0; i < t.N; i++ { _, err := chunker.RandomPolynomial() OK(t, err) } }
func TestRandomPolynomial(t *testing.T) { _, err := chunker.RandomPolynomial() OK(t, err) }