mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
// 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 dragonfly freebsd linux netbsd openbsd solaris
 | 
						|
 | 
						|
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)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |