good morning!!!!

Skip to content
Snippets Groups Projects
Commit 516362bc authored by Taylor Gerring's avatar Taylor Gerring
Browse files

Allow specifying single depth directory

parent 30444db0
No related branches found
No related tags found
No related merge requests found
......@@ -22,62 +22,92 @@
package main
import (
"io/ioutil"
"os"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/tests"
)
func getFiles(path string) ([]string, error) {
var files []string
f, err := os.Open(path)
if err != nil {
return nil, err
}
defer f.Close()
fi, err := f.Stat()
if err != nil {
return nil, err
}
switch mode := fi.Mode(); {
case mode.IsDir():
fi, _ := ioutil.ReadDir(path)
files = make([]string, len(fi))
for i, v := range fi {
// only go 1 depth and leave directory entires blank
if !v.IsDir() {
files[i] = path + v.Name()
}
}
case mode.IsRegular():
files = make([]string, 1)
files[0] = path
}
return files, nil
}
func main() {
glog.SetToStderr(true)
var continueOnError bool = false
// vm.Debug = true
if len(os.Args) < 2 {
glog.Exit("Must specify test type")
}
test := os.Args[1]
testtype := os.Args[1]
var pattern string
if len(os.Args) > 2 {
pattern = os.Args[2]
}
// var code int
switch test {
case "vm", "VMTests":
if len(os.Args) > 2 {
if err := tests.RunVmTest(os.Args[2]); err != nil {
glog.Errorln(err)
}
} else {
glog.Exit("Must supply file argument")
}
case "state", "StateTest":
if len(os.Args) > 2 {
if err := tests.RunStateTest(os.Args[2]); err != nil {
glog.Errorln(err)
}
// code = RunVmTest(strings.NewReader(os.Args[2]))
} else {
glog.Exit("Must supply file argument")
// code = RunVmTest(os.Stdin)
files, err := getFiles(pattern)
if err != nil {
glog.Fatal(err)
}
for _, testfile := range files {
// Skip blank entries
if len(testfile) == 0 {
continue
}
case "tx", "TransactionTests":
if len(os.Args) > 2 {
if err := tests.RunTransactionTests(os.Args[2]); err != nil {
glog.Errorln(err)
}
} else {
glog.Exit("Must supply file argument")
// TODO allow io.Reader to be passed so Stdin can be piped
// RunVmTest(strings.NewReader(os.Args[2]))
// RunVmTest(os.Stdin)
var err error
switch testtype {
case "vm", "VMTests":
err = tests.RunVmTest(testfile)
case "state", "StateTest":
err = tests.RunStateTest(testfile)
case "tx", "TransactionTests":
err = tests.RunTransactionTests(testfile)
case "bc", "BlockChainTest":
err = tests.RunBlockTest(testfile)
default:
glog.Fatalln("Invalid test type specified")
}
case "bc", "BlockChainTest":
if len(os.Args) > 2 {
if err := tests.RunBlockTest(os.Args[2]); err != nil {
if err != nil {
if continueOnError {
glog.Errorln(err)
} else {
glog.Fatalln(err)
}
} else {
glog.Exit("Must supply file argument")
}
default:
glog.Exit("Invalid test type specified")
}
// os.Exit(code)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment