OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / btcsuite / btcd / database / example_test.go
diff --git a/vendor/github.com/btcsuite/btcd/database/example_test.go b/vendor/github.com/btcsuite/btcd/database/example_test.go
deleted file mode 100644 (file)
index 8b6fe7b..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-// Copyright (c) 2015-2016 The btcsuite developers
-// Use of this source code is governed by an ISC
-// license that can be found in the LICENSE file.
-
-package database_test
-
-import (
-       "bytes"
-       "fmt"
-       "os"
-       "path/filepath"
-
-       "github.com/btcsuite/btcd/chaincfg"
-       "github.com/btcsuite/btcd/database"
-       _ "github.com/btcsuite/btcd/database/ffldb"
-       "github.com/btcsuite/btcd/wire"
-       "github.com/btcsuite/btcutil"
-)
-
-// This example demonstrates creating a new database.
-func ExampleCreate() {
-       // This example assumes the ffldb driver is imported.
-       //
-       // import (
-       //      "github.com/btcsuite/btcd/database"
-       //      _ "github.com/btcsuite/btcd/database/ffldb"
-       // )
-
-       // Create a database and schedule it to be closed and removed on exit.
-       // Typically you wouldn't want to remove the database right away like
-       // this, nor put it in the temp directory, but it's done here to ensure
-       // the example cleans up after itself.
-       dbPath := filepath.Join(os.TempDir(), "examplecreate")
-       db, err := database.Create("ffldb", dbPath, wire.MainNet)
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-       defer os.RemoveAll(dbPath)
-       defer db.Close()
-
-       // Output:
-}
-
-// This example demonstrates creating a new database and using a managed
-// read-write transaction to store and retrieve metadata.
-func Example_basicUsage() {
-       // This example assumes the ffldb driver is imported.
-       //
-       // import (
-       //      "github.com/btcsuite/btcd/database"
-       //      _ "github.com/btcsuite/btcd/database/ffldb"
-       // )
-
-       // Create a database and schedule it to be closed and removed on exit.
-       // Typically you wouldn't want to remove the database right away like
-       // this, nor put it in the temp directory, but it's done here to ensure
-       // the example cleans up after itself.
-       dbPath := filepath.Join(os.TempDir(), "exampleusage")
-       db, err := database.Create("ffldb", dbPath, wire.MainNet)
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-       defer os.RemoveAll(dbPath)
-       defer db.Close()
-
-       // Use the Update function of the database to perform a managed
-       // read-write transaction.  The transaction will automatically be rolled
-       // back if the supplied inner function returns a non-nil error.
-       err = db.Update(func(tx database.Tx) error {
-               // Store a key/value pair directly in the metadata bucket.
-               // Typically a nested bucket would be used for a given feature,
-               // but this example is using the metadata bucket directly for
-               // simplicity.
-               key := []byte("mykey")
-               value := []byte("myvalue")
-               if err := tx.Metadata().Put(key, value); err != nil {
-                       return err
-               }
-
-               // Read the key back and ensure it matches.
-               if !bytes.Equal(tx.Metadata().Get(key), value) {
-                       return fmt.Errorf("unexpected value for key '%s'", key)
-               }
-
-               // Create a new nested bucket under the metadata bucket.
-               nestedBucketKey := []byte("mybucket")
-               nestedBucket, err := tx.Metadata().CreateBucket(nestedBucketKey)
-               if err != nil {
-                       return err
-               }
-
-               // The key from above that was set in the metadata bucket does
-               // not exist in this new nested bucket.
-               if nestedBucket.Get(key) != nil {
-                       return fmt.Errorf("key '%s' is not expected nil", key)
-               }
-
-               return nil
-       })
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-
-       // Output:
-}
-
-// This example demonstrates creating a new database, using a managed read-write
-// transaction to store a block, and using a managed read-only transaction to
-// fetch the block.
-func Example_blockStorageAndRetrieval() {
-       // This example assumes the ffldb driver is imported.
-       //
-       // import (
-       //      "github.com/btcsuite/btcd/database"
-       //      _ "github.com/btcsuite/btcd/database/ffldb"
-       // )
-
-       // Create a database and schedule it to be closed and removed on exit.
-       // Typically you wouldn't want to remove the database right away like
-       // this, nor put it in the temp directory, but it's done here to ensure
-       // the example cleans up after itself.
-       dbPath := filepath.Join(os.TempDir(), "exampleblkstorage")
-       db, err := database.Create("ffldb", dbPath, wire.MainNet)
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-       defer os.RemoveAll(dbPath)
-       defer db.Close()
-
-       // Use the Update function of the database to perform a managed
-       // read-write transaction and store a genesis block in the database as
-       // and example.
-       err = db.Update(func(tx database.Tx) error {
-               genesisBlock := chaincfg.MainNetParams.GenesisBlock
-               return tx.StoreBlock(btcutil.NewBlock(genesisBlock))
-       })
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-
-       // Use the View function of the database to perform a managed read-only
-       // transaction and fetch the block stored above.
-       var loadedBlockBytes []byte
-       err = db.Update(func(tx database.Tx) error {
-               genesisHash := chaincfg.MainNetParams.GenesisHash
-               blockBytes, err := tx.FetchBlock(genesisHash)
-               if err != nil {
-                       return err
-               }
-
-               // As documented, all data fetched from the database is only
-               // valid during a database transaction in order to support
-               // zero-copy backends.  Thus, make a copy of the data so it
-               // can be used outside of the transaction.
-               loadedBlockBytes = make([]byte, len(blockBytes))
-               copy(loadedBlockBytes, blockBytes)
-               return nil
-       })
-       if err != nil {
-               fmt.Println(err)
-               return
-       }
-
-       // Typically at this point, the block could be deserialized via the
-       // wire.MsgBlock.Deserialize function or used in its serialized form
-       // depending on need.  However, for this example, just display the
-       // number of serialized bytes to show it was loaded as expected.
-       fmt.Printf("Serialized block size: %d bytes\n", len(loadedBlockBytes))
-
-       // Output:
-       // Serialized block size: 285 bytes
-}