123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // Copyright (C) MongoDB, Inc. 2017-present.
- //
- // 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
- package benchmark
- import (
- "errors"
- "io/ioutil"
- "path/filepath"
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/x/bsonx"
- )
- const (
- perfDataDir = "perf"
- bsonDataDir = "extended_bson"
- flatBSONData = "flat_bson.json"
- deepBSONData = "deep_bson.json"
- fullBSONData = "full_bson.json"
- )
- // utility functions for the bson benchmarks
- func loadSourceDocument(pathParts ...string) (bsonx.Doc, error) {
- data, err := ioutil.ReadFile(filepath.Join(pathParts...))
- if err != nil {
- return nil, err
- }
- doc := bsonx.Doc{}
- err = bson.UnmarshalExtJSON(data, true, &doc)
- if err != nil {
- return nil, err
- }
- if len(doc) == 0 {
- return nil, errors.New("empty bson document")
- }
- return doc, nil
- }
- func loadSourceRaw(pathParts ...string) (bson.Raw, error) {
- doc, err := loadSourceDocument(pathParts...)
- if err != nil {
- return nil, err
- }
- raw, err := doc.MarshalBSON()
- if err != nil {
- return nil, err
- }
- return bson.Raw(raw), nil
- }
- func loadSourceD(pathParts ...string) (bson.D, error) {
- data, err := ioutil.ReadFile(filepath.Join(pathParts...))
- if err != nil {
- return nil, err
- }
- doc := bson.D{}
- err = bson.UnmarshalExtJSON(data, true, &doc)
- if err != nil {
- return nil, err
- }
- if len(doc) == 0 {
- return nil, errors.New("empty bson document")
- }
- return doc, nil
- }
|