summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--library/platform/platform.tcl10
-rw-r--r--tests/platform.test29
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