mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 14:46:42 +00:00
update readme & test
This commit is contained in:
parent
16a0421511
commit
a999db8cc1
2 changed files with 57 additions and 0 deletions
|
|
@ -43,6 +43,8 @@ directory.
|
||||||
| `evm` | Developer utility version of the EVM (Ethereum Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. `evm --code 60ff60ff --debug run`). |
|
| `evm` | Developer utility version of the EVM (Ethereum Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. `evm --code 60ff60ff --debug run`). |
|
||||||
| `rlpdump` | Developer utility tool to convert binary RLP ([Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp)) dumps (data encoding used by the Ethereum protocol both network as well as consensus wise) to user-friendlier hierarchical representation (e.g. `rlpdump --hex CE0183FFFFFFC4C304050583616263`). |
|
| `rlpdump` | Developer utility tool to convert binary RLP ([Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp)) dumps (data encoding used by the Ethereum protocol both network as well as consensus wise) to user-friendlier hierarchical representation (e.g. `rlpdump --hex CE0183FFFFFFC4C304050583616263`). |
|
||||||
|
|
||||||
|
| **`dump-balances`** | Export all non-zero accounts from the current state trie to a file `addresses_balances.txt`. The output is a two-column list (address and ETH balance with 6 decimal places), sorted in descending order by balance. |
|
||||||
|
|
||||||
## Running `geth`
|
## Running `geth`
|
||||||
|
|
||||||
Going through all the possible command line flags is out of scope here (please consult our
|
Going through all the possible command line flags is out of scope here (please consult our
|
||||||
|
|
|
||||||
55
cmd/geth/dumpbalancescmd_test.go
Normal file
55
cmd/geth/dumpbalancescmd_test.go
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestDumpBalancesCommandRegistered checks that our dump-balances
|
||||||
|
// command is present in app.Commands with the correct Usage text.
|
||||||
|
func TestDumpBalancesCommandRegistered(t *testing.T) {
|
||||||
|
found := false
|
||||||
|
for _, cmd := range app.Commands {
|
||||||
|
if cmd.Name == dumpBalancesCommand.Name {
|
||||||
|
found = true
|
||||||
|
// Ensure that the Usage string mentions "non-zero accounts"
|
||||||
|
if !strings.Contains(cmd.Usage, "non-zero accounts") {
|
||||||
|
t.Errorf("Usage for %q does not include expected text, got %q", cmd.Name, cmd.Usage)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
t.Fatalf("command %q is not registered in app.Commands", dumpBalancesCommand.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestDumpBalancesHelpInProcess simulates running `geth dump-balances --help`
|
||||||
|
// in memory and verifies that help output includes the command name and its Usage.
|
||||||
|
func TestDumpBalancesHelpInProcess(t *testing.T) {
|
||||||
|
// Create a fresh CLI app with our commands
|
||||||
|
app := cli.NewApp()
|
||||||
|
app.Commands = append([]*cli.Command{}, app.Commands...) // copy existing commands
|
||||||
|
// No need to re-register dumpBalancesCommand because init() already ran
|
||||||
|
|
||||||
|
// Capture the help output in a buffer
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
app.Writer = buf
|
||||||
|
|
||||||
|
// Run the help command; cli returns flag.ErrHelp on --help
|
||||||
|
err := app.Run([]string{"geth", "dump-balances", "--help"})
|
||||||
|
if err == nil {
|
||||||
|
t.Fatalf("expected error when running help, got nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
output := buf.String()
|
||||||
|
if !strings.Contains(output, "dump-balances") {
|
||||||
|
t.Errorf("help output missing command name; got:\n%s", output)
|
||||||
|
}
|
||||||
|
if !strings.Contains(output, "non-zero accounts") {
|
||||||
|
t.Errorf("help output missing Usage description; got:\n%s", output)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue