85 lines
1.6 KiB
Go
85 lines
1.6 KiB
Go
package env
|
|
|
|
import "testing"
|
|
|
|
func TestExpandEnvSlice(t *testing.T) {
|
|
envs := map[string]string{
|
|
"root": "/usr/local/llgo",
|
|
"port": "/dev/ttyUSB0",
|
|
}
|
|
|
|
input := []string{
|
|
"-I{root}/include",
|
|
"-DPORT={port}",
|
|
"static-flag",
|
|
}
|
|
|
|
expected := []string{
|
|
"-I/usr/local/llgo/include",
|
|
"-DPORT=/dev/ttyUSB0",
|
|
"static-flag",
|
|
}
|
|
|
|
result := ExpandEnvSlice(input, envs)
|
|
|
|
if len(result) != len(expected) {
|
|
t.Fatalf("expandEnvSlice length mismatch: got %d, want %d", len(result), len(expected))
|
|
}
|
|
|
|
for i, exp := range expected {
|
|
if result[i] != exp {
|
|
t.Errorf("expandEnvSlice[%d] = %q, want %q", i, result[i], exp)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestExpandEnvWithDefault(t *testing.T) {
|
|
envs := map[string]string{
|
|
"port": "/dev/ttyUSB0",
|
|
"hex": "firmware.hex",
|
|
"bin": "firmware.bin",
|
|
"img": "image.img",
|
|
}
|
|
|
|
tests := []struct {
|
|
template string
|
|
defaultValue string
|
|
expected string
|
|
}{
|
|
{
|
|
"simavr {}",
|
|
"firmware.hex",
|
|
"simavr firmware.hex",
|
|
},
|
|
{
|
|
"simavr {}",
|
|
"custom.elf", // Explicit default
|
|
"simavr custom.elf",
|
|
},
|
|
{
|
|
"qemu -kernel {}",
|
|
"vmlinux", // Custom kernel
|
|
"qemu -kernel vmlinux",
|
|
},
|
|
{
|
|
"no braces here",
|
|
"ignored",
|
|
"no braces here",
|
|
},
|
|
}
|
|
|
|
for i, test := range tests {
|
|
var result string
|
|
if test.defaultValue == "" {
|
|
result = ExpandEnvWithDefault(test.template, envs)
|
|
} else {
|
|
result = ExpandEnvWithDefault(test.template, envs, test.defaultValue)
|
|
}
|
|
|
|
if result != test.expected {
|
|
t.Errorf("Test %d: expandEnvWithDefault(%q, envs, %q) = %q, want %q",
|
|
i, test.template, test.defaultValue, result, test.expected)
|
|
}
|
|
}
|
|
}
|