mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-07 12:33:42 +00:00
a545f17d2e
This adds true GOOS=wasip1 support in addition to our existing -target=wasi support. The old support for WASI isn't removed, but should be treated as deprecated and will likely be removed eventually to reduce the test burden.
57 lines
1.2 KiB
Go
57 lines
1.2 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.
|
|
|
|
//go:build darwin || linux || wasip1
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|