diff options
Diffstat (limited to 'p2p/protocols/reporter_test.go')
-rw-r--r-- | p2p/protocols/reporter_test.go | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/p2p/protocols/reporter_test.go b/p2p/protocols/reporter_test.go deleted file mode 100644 index 9b0da09b7..000000000 --- a/p2p/protocols/reporter_test.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2018 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. - -package protocols - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - "time" - - "github.com/ethereum/go-ethereum/log" -) - -//TestReporter tests that the metrics being collected for p2p accounting -//are being persisted and available after restart of a node. -//It simulates restarting by just recreating the DB as if the node had restarted. -func TestReporter(t *testing.T) { - //create a test directory - dir, err := ioutil.TempDir("", "reporter-test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - //setup the metrics - log.Debug("Setting up metrics first time") - reportInterval := 2 * time.Millisecond - metrics := SetupAccountingMetrics(reportInterval, filepath.Join(dir, "test.db")) - log.Debug("Done.") - - //change metrics - mBalanceCredit.Inc(12) - mBytesCredit.Inc(34) - mMsgDebit.Inc(9) - - //store expected metrics - expectedBalanceCredit := mBalanceCredit.Count() - expectedBytesCredit := mBytesCredit.Count() - expectedMsgDebit := mMsgDebit.Count() - - //give the reporter time to write the metrics to DB - time.Sleep(20 * time.Millisecond) - - //close the DB also, or we can't create a new one - metrics.Close() - - //clear the metrics - this effectively simulates the node having shut down... - mBalanceCredit.Clear() - mBytesCredit.Clear() - mMsgDebit.Clear() - - //setup the metrics again - log.Debug("Setting up metrics second time") - metrics = SetupAccountingMetrics(reportInterval, filepath.Join(dir, "test.db")) - defer metrics.Close() - log.Debug("Done.") - - //now check the metrics, they should have the same value as before "shutdown" - if mBalanceCredit.Count() != expectedBalanceCredit { - t.Fatalf("Expected counter to be %d, but is %d", expectedBalanceCredit, mBalanceCredit.Count()) - } - if mBytesCredit.Count() != expectedBytesCredit { - t.Fatalf("Expected counter to be %d, but is %d", expectedBytesCredit, mBytesCredit.Count()) - } - if mMsgDebit.Count() != expectedMsgDebit { - t.Fatalf("Expected counter to be %d, but is %d", expectedMsgDebit, mMsgDebit.Count()) - } -} |