0636c889f5
Currently, we only change the places where they impact runtime. Mostly are filenames or paths for executables and databases. Docs and other textual changes will be updated later to reduce conflicts when we rebase. rename
72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"regexp"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
var (
|
|
rpcuserRegexp = regexp.MustCompile("(?m)^rpcuser=.+$")
|
|
rpcpassRegexp = regexp.MustCompile("(?m)^rpcpass=.+$")
|
|
)
|
|
|
|
func TestCreateDefaultConfigFile(t *testing.T) {
|
|
// find out where the sample config lives
|
|
_, path, _, ok := runtime.Caller(0)
|
|
if !ok {
|
|
t.Fatalf("Failed finding config file path")
|
|
}
|
|
sampleConfigFile := filepath.Join(filepath.Dir(path), "sample-chain.conf")
|
|
|
|
// Setup a temporary directory
|
|
tmpDir, err := ioutil.TempDir("", "chain")
|
|
if err != nil {
|
|
t.Fatalf("Failed creating a temporary directory: %v", err)
|
|
}
|
|
testpath := filepath.Join(tmpDir, "test.conf")
|
|
|
|
// copy config file to location of chain binary
|
|
data, err := ioutil.ReadFile(sampleConfigFile)
|
|
if err != nil {
|
|
t.Fatalf("Failed reading sample config file: %v", err)
|
|
}
|
|
appPath, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
|
if err != nil {
|
|
t.Fatalf("Failed obtaining app path: %v", err)
|
|
}
|
|
tmpConfigFile := filepath.Join(appPath, "sample-chain.conf")
|
|
err = ioutil.WriteFile(tmpConfigFile, data, 0644)
|
|
if err != nil {
|
|
t.Fatalf("Failed copying sample config file: %v", err)
|
|
}
|
|
|
|
// Clean-up
|
|
defer func() {
|
|
os.Remove(testpath)
|
|
os.Remove(tmpConfigFile)
|
|
os.Remove(tmpDir)
|
|
}()
|
|
|
|
err = createDefaultConfigFile(testpath)
|
|
|
|
if err != nil {
|
|
t.Fatalf("Failed to create a default config file: %v", err)
|
|
}
|
|
|
|
content, err := ioutil.ReadFile(testpath)
|
|
if err != nil {
|
|
t.Fatalf("Failed to read generated default config file: %v", err)
|
|
}
|
|
|
|
if !rpcuserRegexp.Match(content) {
|
|
t.Error("Could not find rpcuser in generated default config file.")
|
|
}
|
|
|
|
if !rpcpassRegexp.Match(content) {
|
|
t.Error("Could not find rpcpass in generated default config file.")
|
|
}
|
|
}
|