Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions cmd/goal/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,13 @@ func resolveDataDir() string {
// Figure out what data directory to tell algod to use.
// If not specified on cmdline with '-d', look for default in environment.
var dir string
if len(dataDirs) > 0 {
dir = dataDirs[0]
if (len(dataDirs) > 0) && (dataDirs[0] != "") {
// calculate absolute path, see https://github.com/algorand/go-algorand/issues/589
absDir, err := filepath.Abs(dataDirs[0])
if err != nil {
reportErrorf("Absolute path conversion error: %s", err)
}
dir = absDir
}
if dir == "" {
dir = os.Getenv("ALGORAND_DATA")
Expand Down
44 changes: 44 additions & 0 deletions cmd/goal/commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,47 @@ func TestEnsureDataDirReturnsWhenDataDirIsProvided(t *testing.T) {
actualDir := ensureFirstDataDir()
require.Equal(t, expectedDir, actualDir)
}

func TestEnsureDataDirReturnsWhenWorkDirIsProvided(t *testing.T) {
partitiontest.PartitionTest(t)
expectedDir, err := os.Getwd()
if err != nil {
reportErrorf("Error getting work dir: %s", err)
}
dataDirs[0] = "."
actualDir := ensureFirstDataDir()
require.Equal(t, expectedDir, actualDir)
}

func TestEnsureDataDirReturnsWhenRelPath1IsProvided(t *testing.T) {
partitiontest.PartitionTest(t)
expectedDir, err := os.Getwd()
if err != nil {
reportErrorf("Error getting work dir: %s", err)
}
dataDirs[0] = "./../goal"
actualDir := ensureFirstDataDir()
require.Equal(t, expectedDir, actualDir)
}

func TestEnsureDataDirReturnsWhenRelPath2IsProvided(t *testing.T) {
partitiontest.PartitionTest(t)
expectedDir, err := os.Getwd()
if err != nil {
reportErrorf("Error getting work dir: %s", err)
}
dataDirs[0] = "../goal"
actualDir := ensureFirstDataDir()
require.Equal(t, expectedDir, actualDir)
}

func TestEnsureDataDirReturnsWhenRelPath3IsProvided(t *testing.T) {
partitiontest.PartitionTest(t)
expectedDir, err := os.Getwd()
if err != nil {
reportErrorf("Error getting work dir: %s", err)
}
dataDirs[0] = "../../cmd/goal"
actualDir := ensureFirstDataDir()
require.Equal(t, expectedDir, actualDir)
}