Decouple vttest tests from user's config

The screen capture tests were failing on my machine because the screen
capture based vttest tests were using my personal config in
~/.config/aminal/config.toml. This had different colours and a fixed
DPI scaling factor which mean the screen captures didn't match.

The sixel tests were also failing because my login shell is a highly
customised zsh.

A static test config is now passed by the vttest tests and the shell
is set to "/bin/sh" on Linux, OSX etc to help avoid problems due to
differences between shells and shell configs.
This commit is contained in:
Menno Finlay-Smits 2019-03-12 16:07:25 +13:00
parent 93bf686b9d
commit 31a1147d81
3 changed files with 28 additions and 6 deletions

View File

@ -22,6 +22,13 @@ func getActuallyProvidedFlags() map[string]bool {
return result return result
} }
func maybeGetConfig(override *config.Config) *config.Config {
if override != nil {
return override
}
return getConfig()
}
func getConfig() *config.Config { func getConfig() *config.Config {
showVersion := false showVersion := false
ignoreConfig := false ignoreConfig := false

View File

@ -7,6 +7,7 @@ import (
"runtime" "runtime"
"runtime/pprof" "runtime/pprof"
"github.com/liamg/aminal/config"
"github.com/liamg/aminal/gui" "github.com/liamg/aminal/gui"
"github.com/liamg/aminal/platform" "github.com/liamg/aminal/platform"
"github.com/liamg/aminal/terminal" "github.com/liamg/aminal/terminal"
@ -20,11 +21,12 @@ func init() {
} }
func main() { func main() {
initialize(nil) initialize(nil, nil)
} }
func initialize(unitTestfunc callback) { func initialize(unitTestfunc callback, configOverride *config.Config) {
conf := getConfig() conf := maybeGetConfig(configOverride)
logger, err := getLogger(conf) logger, err := getLogger(conf)
if err != nil { if err != nil {
fmt.Printf("Failed to create logger: %s\n", err) fmt.Printf("Failed to create logger: %s\n", err)

View File

@ -6,10 +6,12 @@ import (
"flag" "flag"
"fmt" "fmt"
"os" "os"
"runtime"
"strings" "strings"
"testing" "testing"
"time" "time"
"github.com/liamg/aminal/config"
"github.com/liamg/aminal/gui" "github.com/liamg/aminal/gui"
"github.com/liamg/aminal/terminal" "github.com/liamg/aminal/terminal"
@ -123,7 +125,7 @@ func TestCursorMovement(t *testing.T) {
g.Close() g.Close()
} }
initialize(testFunc) initialize(testFunc, testConfig())
}) })
} }
@ -159,7 +161,7 @@ func TestScreenFeatures(t *testing.T) {
g.Close() g.Close()
} }
initialize(testFunc) initialize(testFunc, testConfig())
}) })
} }
@ -184,7 +186,7 @@ func TestSixel(t *testing.T) {
g.Close() g.Close()
} }
initialize(testFunc) initialize(testFunc, testConfig())
}) })
} }
@ -192,3 +194,14 @@ func TestSixel(t *testing.T) {
func TestExit(t *testing.T) { func TestExit(t *testing.T) {
os.Exit(0) os.Exit(0)
} }
func testConfig() *config.Config {
c := config.DefaultConfig()
// Use a vanilla shell on POSIX to help ensure consistency.
if runtime.GOOS != "windows" {
c.Shell = "/bin/sh"
}
return c
}