Added result logging functionality #2
@ -2,6 +2,7 @@ package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
@ -30,7 +31,14 @@ var diskCmd = &cobra.Command{
|
||||
outfile := fmt.Sprintf("of=%s", tempfile)
|
||||
|
||||
ddCmd := exec.Command("dd", "bs=1M", blocksCount, "if=/dev/zero", outfile)
|
||||
|
||||
if Log != "false" {
|
||||
f, _ := os.Create(Log)
|
||||
ddCmd.Stderr = io.MultiWriter(os.Stderr, f)
|
||||
} else {
|
||||
ddCmd.Stderr = os.Stdout
|
||||
}
|
||||
|
||||
err = ddCmd.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("cmd.Run() failed with %s\n", err)
|
||||
|
11
cmd/net.go
11
cmd/net.go
@ -5,6 +5,8 @@ import (
|
||||
|
||||
"github.com/showwin/speedtest-go/speedtest"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"git.metaunix.net/bitgoblin/hardware-tests/lib"
|
||||
)
|
||||
|
||||
var netCmd = &cobra.Command{
|
||||
@ -22,7 +24,14 @@ var netCmd = &cobra.Command{
|
||||
s.DownloadTest(false)
|
||||
s.UploadTest(false)
|
||||
|
||||
fmt.Printf("Latency: %s, Download: %f, Upload: %f\n", s.Latency, s.DLSpeed, s.ULSpeed)
|
||||
// put together the result
|
||||
result := fmt.Sprintf("Latency: %s, Download: %f, Upload: %f\n", s.Latency, s.DLSpeed, s.ULSpeed)
|
||||
// log the result if it's configured, otherwise print it out
|
||||
if Log != "false" {
|
||||
lib.WriteToFile(Log, result)
|
||||
} else {
|
||||
fmt.Printf("%s", result)
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
15
cmd/ping.go
15
cmd/ping.go
@ -5,6 +5,8 @@ import (
|
||||
|
||||
"github.com/go-ping/ping"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"git.metaunix.net/bitgoblin/hardware-tests/lib"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -23,11 +25,18 @@ var pingCmd = &cobra.Command{
|
||||
}
|
||||
pinger.Count = count
|
||||
pinger.OnFinish = func(stats *ping.Statistics) {
|
||||
fmt.Printf("--- %s ping statistics ---\n", stats.Addr)
|
||||
fmt.Printf("%d packets transmitted, %d packets received, %v%% packet loss\n",
|
||||
result := fmt.Sprintf("--- %s ping statistics ---\n", stats.Addr)
|
||||
result += fmt.Sprintf("%d packets transmitted, %d packets received, %v%% packet loss\n",
|
||||
stats.PacketsSent, stats.PacketsRecv, stats.PacketLoss)
|
||||
fmt.Printf("round-trip min/avg/max/stddev = %v/%v/%v/%v\n",
|
||||
result += fmt.Sprintf("round-trip min/avg/max/stddev = %v/%v/%v/%v\n",
|
||||
stats.MinRtt, stats.AvgRtt, stats.MaxRtt, stats.StdDevRtt)
|
||||
|
||||
// log the result if it's configured, otherwise print it out
|
||||
if Log != "false" {
|
||||
lib.WriteToFile(Log, result)
|
||||
} else {
|
||||
fmt.Printf("%s", result)
|
||||
}
|
||||
}
|
||||
fmt.Printf("PING %s (%s):\n", pinger.Addr(), pinger.IPAddr())
|
||||
err = pinger.Run() // Blocks until finished.
|
||||
|
@ -7,6 +7,10 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var (
|
||||
Log string
|
||||
)
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "bgbench",
|
||||
Short: "Bit Goblin hardware benching tool.",
|
||||
@ -20,3 +24,7 @@ func Execute() {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.PersistentFlags().StringVarP(&Log, "log", "l", "false", "File location to write results to.")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user