diff options
| -rw-r--r-- | library/platform/platform.tcl | 10 | ||||
| -rw-r--r-- | tests/platform.test | 29 |
2 files changed, 35 insertions, 4 deletions
diff --git a/library/platform/platform.tcl b/library/platform/platform.tcl index 3bf1ff6..e93e2df 100644 --- a/library/platform/platform.tcl +++ b/library/platform/platform.tcl @@ -347,13 +347,14 @@ proc ::platform::patterns {id} { # 10.5+,11.0+ if {[regexp {macosx([^-]*)-(.*)} $id -> v cpu]} { + foreach {major minor} [split $v.15 .] break switch -exact -- $cpu { ix86 { lappend alt i386-x86_64 lappend alt universal } x86_64 { - if {[lindex [split $::tcl_platform(osVersion) .] 0] < 19} { + if {$major < 11 && $minor < 15} { set alt i386-x86_64 } else { set alt {} @@ -366,8 +367,6 @@ proc ::platform::patterns {id} { } if {$v ne ""} { - foreach {major minor} [split $v .] break - set res {} if {$major > 26} { # Add x.0 to x.minor to patterns. @@ -451,6 +450,9 @@ proc ::platform::patterns {id} { if {$cpu ne "arm"} { lappend res macosx${major}.${j}-${cpu} } + if {($cpu eq "x86_64") && ($j == 14)} { + set alt i386-x86_64 + } foreach a $alt { lappend res macosx${major}.${j}-$a } @@ -465,7 +467,7 @@ proc ::platform::patterns {id} { lappend res macosx${major}.${j}-$a } } - # Add unversioned patterns for 10.3/10.4 builds. + # Add unversioned patterns for 10.3/10.4 builds. lappend res macosx-${cpu} foreach a $alt { lappend res macosx-$a diff --git a/tests/platform.test b/tests/platform.test index 33aea3a..6a91410 100644 --- a/tests/platform.test +++ b/tests/platform.test @@ -72,6 +72,35 @@ test platform-4.2 {format of platform::generic result} -match regexp -body { platform::generic } -result {^([^-]+-)+[^-]+$} +test platform-5.0 {format of platform::generic result} -setup { + set old_machine $::tcl_platform(machine) + set old_os $::tcl_platform(os) + set old_wordsize $::tcl_platform(wordSize) + set old_version $tcl_platform(osVersion) + set ::tcl_platform(machine) arm + set ::tcl_platform(os) Darwin + set ::tcl_platform(wordSize) 8 + set ::tcl_platform(osVersion) 20.1 +} -body { + set res {} + set id [platform::identify] + lappend res $id + lappend res [platform::patterns $id] + set res +} -cleanup { + set ::tcl_platform(machine) $old_machine + set ::tcl_platform(os) $old_os + set ::tcl_platform(wordSize) $old_wordsize + set ::tcl_platform(osVersion) $old_version + unset res old_machine old_os old_wordsize old_version +} -result {macosx11.0-arm {macosx11.0-arm macosx11.0-x86_64 macosx10.15-x86_64 macosx10.14-x86_64 macosx10.13-x86_64 macosx10.12-x86_64 macosx10.11-x86_64 macosx10.10-x86_64 macosx10.9-x86_64 tcl}} +test platform-5.1 {format of platform::patterns macosx11.0-x86_64} -body { + platform::patterns macosx11.0-x86_64 +} -result {macosx11.0-x86_64 macosx10.15-x86_64 macosx10.14-x86_64 macosx10.14-i386-x86_64 macosx10.13-x86_64 macosx10.13-i386-x86_64 macosx10.12-x86_64 macosx10.12-i386-x86_64 macosx10.11-x86_64 macosx10.11-i386-x86_64 macosx10.10-x86_64 macosx10.10-i386-x86_64 macosx10.9-x86_64 macosx10.9-i386-x86_64 tcl} +test platform-5.2 {format of platform::patterns macosx11.0-arm} -body { + platform::patterns macosx11.0-arm +} -result {macosx11.0-arm macosx11.0-x86_64 macosx10.15-x86_64 macosx10.14-x86_64 macosx10.13-x86_64 macosx10.12-x86_64 macosx10.11-x86_64 macosx10.10-x86_64 macosx10.9-x86_64 tcl} + # cleanup cleanupTests |
