mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.1 KiB
65 lines
1.1 KiB
package platform_test |
|
|
|
import ( |
|
"os" |
|
"path/filepath" |
|
"runtime" |
|
"testing" |
|
|
|
"github.com/xtls/xray-core/common" |
|
. "github.com/xtls/xray-core/common/platform" |
|
) |
|
|
|
func TestNormalizeEnvName(t *testing.T) { |
|
cases := []struct { |
|
input string |
|
output string |
|
}{ |
|
{ |
|
input: "a", |
|
output: "A", |
|
}, |
|
{ |
|
input: "a.a", |
|
output: "A_A", |
|
}, |
|
{ |
|
input: "A.A.B", |
|
output: "A_A_B", |
|
}, |
|
} |
|
for _, test := range cases { |
|
if v := NormalizeEnvName(test.input); v != test.output { |
|
t.Error("unexpected output: ", v, " want ", test.output) |
|
} |
|
} |
|
} |
|
|
|
func TestEnvFlag(t *testing.T) { |
|
if v := (EnvFlag{ |
|
Name: "xxxxx.y", |
|
}.GetValueAsInt(10)); v != 10 { |
|
t.Error("env value: ", v) |
|
} |
|
} |
|
|
|
func TestGetAssetLocation(t *testing.T) { |
|
exec, err := os.Executable() |
|
common.Must(err) |
|
|
|
loc := GetAssetLocation("t") |
|
if filepath.Dir(loc) != filepath.Dir(exec) { |
|
t.Error("asset dir: ", loc, " not in ", exec) |
|
} |
|
|
|
os.Setenv("xray.location.asset", "/xray") |
|
if runtime.GOOS == "windows" { |
|
if v := GetAssetLocation("t"); v != "\\xray\\t" { |
|
t.Error("asset loc: ", v) |
|
} |
|
} else { |
|
if v := GetAssetLocation("t"); v != "/xray/t" { |
|
t.Error("asset loc: ", v) |
|
} |
|
} |
|
}
|
|
|