@@ -12,9 +12,25 @@ setup() {
1212 ' printf "%s=\"%s\"\n" "$var" "${!var}"' \
1313 ' done'
1414 export __GO_ETC_OS_RELEASE=" $BATS_TEST_ROOTDIR /os-release"
15+
16+ stub_program_in_path ' sw_vers' \
17+ ' if [[ "$*" == "-productVersion" ]]; then' \
18+ ' printf "$TEST_MACOS_VERSION\n"' \
19+ ' fi'
20+
21+ stub_program_in_path ' uname' \
22+ ' if [[ "$*" == "-r" ]]; then' \
23+ ' printf "$TEST_UNAME_VERSION\n"' \
24+ ' fi'
25+
26+ stub_program_in_path ' git' \
27+ ' if [[ "$*" == "--version" ]]; then' \
28+ ' printf "git version %s\n" "$TEST_GIT_VERSION"' \
29+ ' fi'
1530}
1631
1732teardown () {
33+ restore_programs_in_path ' git' ' uname' ' sw_vers'
1834 @go.remove_test_go_rootdir
1935}
2036
@@ -38,29 +54,46 @@ teardown() {
3854 ' _GO_PLATFORM_VERSION_ID="666"'
3955}
4056
41- @test " $SUITE : set _GO_PLATFORM_ID from OSTYPE" {
42- OSTYPE=' foobar' run " $TEST_GO_SCRIPT "
43- assert_success ' _GO_PLATFORM_ID="foobar"'
57+ @test " $SUITE : set _GO_PLATFORM_{ID,VERSION_ID} from OSTYPE, uname -r" {
58+ OSTYPE=' foobar' TEST_UNAME_VERSION=' 3.27' run " $TEST_GO_SCRIPT "
59+ assert_success
60+ assert_lines_equal \
61+ ' _GO_PLATFORM_ID="foobar"' \
62+ ' _GO_PLATFORM_VERSION_ID="3.27"'
4463}
4564
46- @test " $SUITE : set _GO_PLATFORM_ID to macos from OSTYPE" {
47- OSTYPE=' darwin16' run " $TEST_GO_SCRIPT "
48- assert_success ' _GO_PLATFORM_ID="macos"'
65+ @test " $SUITE : macos _GO_PLATFORM_{ID,VERSION_ID} from OSTYPE, sw_vers" {
66+ OSTYPE=' darwin16.3.0' TEST_UNAME_VERSION=' 17.0.0' \
67+ TEST_MACOS_VERSION=' 10.13' run " $TEST_GO_SCRIPT "
68+ assert_success
69+ assert_lines_equal \
70+ ' _GO_PLATFORM_ID="macos"' \
71+ ' _GO_PLATFORM_VERSION_ID="10.13"'
4972}
5073
51- @test " $SUITE : set _GO_PLATFORM_ID to freebsd from OSTYPE" {
52- OSTYPE=' freebsd11.0' run " $TEST_GO_SCRIPT "
53- assert_success ' _GO_PLATFORM_ID="freebsd"'
74+ @test " $SUITE : freebsd _GO_PLATFORM_{ID,VERSION_ID} from OSTYPE, uname -r" {
75+ OSTYPE=' freebsd11.0' TEST_UNAME_VERSION=' 11.1-RELEASE-p1' \
76+ run " $TEST_GO_SCRIPT "
77+ assert_success
78+ assert_lines_equal \
79+ ' _GO_PLATFORM_ID="freebsd"' \
80+ ' _GO_PLATFORM_VERSION_ID="11.1-RELEASE-p1"'
5481}
5582
56- @test " $SUITE : set _GO_PLATFORM_ID to msys from OSTYPE" {
57- stub_program_in_path ' git' ' printf "%s\n" "git version 2.13.0"'
58- OSTYPE=' msys' run " $TEST_GO_SCRIPT "
59- assert_success ' _GO_PLATFORM_ID="msys"'
83+ @test " $SUITE : msys _GO_PLATFORM_{ID,VERSION_ID} from OSTYPE, uname -r" {
84+ OSTYPE=' msys' TEST_UNAME_VERSION=' 2.9.0(0.318/5/3)' \
85+ TEST_GIT_VERSION=' 2.14.2' run " $TEST_GO_SCRIPT "
86+ assert_success
87+ assert_lines_equal \
88+ ' _GO_PLATFORM_ID="msys"' \
89+ ' _GO_PLATFORM_VERSION_ID="2.9.0(0.318/5/3)"'
6090}
6191
62- @test " $SUITE : set _GO_PLATFORM_ID to msys-git from OSTYPE and git --version" {
63- stub_program_in_path ' git' ' printf "%s\n" "git version 2.13.0.windows.1"'
64- OSTYPE=' msys' run " $TEST_GO_SCRIPT "
65- assert_success ' _GO_PLATFORM_ID="msys-git"'
92+ @test " $SUITE : msys-git _GO_PLATFORM_* from OSTYPE, git --version, uname -r" {
93+ OSTYPE=' msys' TEST_UNAME_VERSION=' 2.8.0(0.310/5/3)' \
94+ TEST_GIT_VERSION=' git version 2.13.0.windows.1' run " $TEST_GO_SCRIPT "
95+ assert_success
96+ assert_lines_equal \
97+ ' _GO_PLATFORM_ID="msys-git"' \
98+ ' _GO_PLATFORM_VERSION_ID="2.8.0(0.310/5/3)"'
6699}
0 commit comments