mirror of https://github.com/tinygo-org/tinygo.git
Dan Kegel
3 years ago
committed by
Ron Evans
4 changed files with 292 additions and 9 deletions
@ -0,0 +1,56 @@ |
|||
// Copyright 2013 The Go Authors. All rights reserved.
|
|||
// Use of this source code is governed by a BSD-style
|
|||
// license that can be found in the LICENSE file.
|
|||
|
|||
//+build darwin linux
|
|||
|
|||
package os_test |
|||
|
|||
import ( |
|||
"fmt" |
|||
. "os" |
|||
"testing" |
|||
) |
|||
|
|||
var setenvEinvalTests = []struct { |
|||
k, v string |
|||
}{ |
|||
{"", ""}, // empty key
|
|||
{"k=v", ""}, // '=' in key
|
|||
{"\x00", ""}, // '\x00' in key
|
|||
{"k", "\x00"}, // '\x00' in value
|
|||
} |
|||
|
|||
func TestSetenvUnixEinval(t *testing.T) { |
|||
for _, tt := range setenvEinvalTests { |
|||
err := Setenv(tt.k, tt.v) |
|||
if err == nil { |
|||
t.Errorf(`Setenv(%q, %q) == nil, want error`, tt.k, tt.v) |
|||
} |
|||
} |
|||
} |
|||
|
|||
var shellSpecialVarTests = []struct { |
|||
k, v string |
|||
}{ |
|||
{"*", "asterisk"}, |
|||
{"#", "pound"}, |
|||
{"$", "dollar"}, |
|||
{"@", "at"}, |
|||
{"!", "exclamation mark"}, |
|||
{"?", "question mark"}, |
|||
{"-", "dash"}, |
|||
} |
|||
|
|||
func TestExpandEnvShellSpecialVar(t *testing.T) { |
|||
for _, tt := range shellSpecialVarTests { |
|||
Setenv(tt.k, tt.v) |
|||
defer Unsetenv(tt.k) |
|||
|
|||
argRaw := fmt.Sprintf("$%s", tt.k) |
|||
argWithBrace := fmt.Sprintf("${%s}", tt.k) |
|||
if gotRaw, gotBrace := ExpandEnv(argRaw), ExpandEnv(argWithBrace); gotRaw != gotBrace { |
|||
t.Errorf("ExpandEnv(%q) = %q, ExpandEnv(%q) = %q; expect them to be equal", argRaw, gotRaw, argWithBrace, gotBrace) |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue