mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-01 17:12:03 +00:00
Merge branch 'master' into weakref
This commit is contained in:
commit
5a9eeec452
6 changed files with 69 additions and 35 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2024-12-31 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSTimeZone.m: Add GNUSTEP_BUILTIN_TZ environment variable to
|
||||
force the use of the IANA standard based time zone files we provide
|
||||
in the distribution rather than the system supplied time zone data.
|
||||
This allows us to standardise test behavior across different systems.
|
||||
* Tests/base/NSCalendarDate/TestInfo: set GNUSTEP_BUILTIN_TZ=1
|
||||
* Tests/base/NSCalendarDate/test02.m: Change from using the MET zone
|
||||
to using CET for tests since the IANA data has changed to make MET
|
||||
behave aas CET.
|
||||
* Tests/base/NSTimeZone/TestInfo: set GNUSTEP_BUILTIN_TZ=1
|
||||
|
||||
2024-12-27 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Headers/GNUstepBase/GSIMap.h:
|
||||
|
@ -28,7 +40,7 @@
|
|||
|
||||
* Source/NSURLProtocol.m: fix leaks due to retain loops.
|
||||
* Source/Additions/NSObject+GNUstepBase.m: fix issues in new
|
||||
-trackOownership mechanism to log tracked instances at exist and to
|
||||
-trackOwnership mechanism to log tracked instances at exist and to
|
||||
handle cases where we track instances of a class and instances of
|
||||
its subclasses.
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
Time zone names can be different from system to system, but usually
|
||||
the user has already set up his timezone independant of GNUstep, so we
|
||||
should respect that information.
|
||||
For testing purposes, the GNUSTEP_BUILTIN_TZ environment variable can
|
||||
be set to force the system independent data to be used.
|
||||
|
||||
We do not use a dictionary for storing time zones, since such a
|
||||
dictionary would be VERY large (~500K). And we would have to use a
|
||||
|
@ -2500,14 +2502,20 @@ static NSString *zoneDirs[] = {
|
|||
}
|
||||
GS_MUTEX_UNLOCK(zone_mutex);
|
||||
}
|
||||
|
||||
if (NO == [[[[NSProcessInfo processInfo] environment]
|
||||
objectForKey: @"GNUSTEP_BUILTIN_TZ"] boolValue])
|
||||
{
|
||||
/* Use the system zone info if possible, otherwise, use our installed
|
||||
info. */
|
||||
* info.
|
||||
*/
|
||||
if (tzdir && [[NSFileManager defaultManager] fileExistsAtPath:
|
||||
[tzdir stringByAppendingPathComponent: name] isDirectory: &isDir] == YES
|
||||
[tzdir stringByAppendingPathComponent: name] isDirectory: &isDir]
|
||||
&& isDir == NO)
|
||||
{
|
||||
dir = tzdir;
|
||||
}
|
||||
}
|
||||
if (dir == nil)
|
||||
{
|
||||
dir = _time_zone_path(ZONES_DIR, nil);
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# On unix systems force testing using our inbuilt time zone data.
|
||||
export GNUSTEP_BUILTIN_TZ=1
|
|
@ -14,6 +14,7 @@ int main()
|
|||
NSMutableDictionary *myLocale;
|
||||
NSCalendarDate *myBirthday;
|
||||
NSCalendarDate *anotherDay;
|
||||
NSTimeZone *tz;
|
||||
|
||||
myLocale = westernLocale();
|
||||
|
||||
|
@ -72,13 +73,17 @@ int main()
|
|||
[tmpArray addObject: @"PM"];
|
||||
[myLocale setObject: tmpArray forKey: NSAMPMDesignation];
|
||||
|
||||
tz = [NSTimeZone timeZoneWithName: @"CET"];
|
||||
PASS_EQUAL([tz name], @"CET", "got time zone for dates")
|
||||
|
||||
myBirthday = [NSCalendarDate dateWithYear: 1974
|
||||
month: 11
|
||||
day: 20
|
||||
hour: 13
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: [NSTimeZone timeZoneWithName: @"MET"]];
|
||||
timeZone: tz];
|
||||
PASS_EQUAL([myBirthday timeZone], tz, "myBirthday has expected time zone")
|
||||
|
||||
anotherDay = [NSCalendarDate dateWithYear: 1974
|
||||
month: 1
|
||||
|
@ -86,7 +91,8 @@ int main()
|
|||
hour: 3
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: [NSTimeZone timeZoneWithName: @"MET"]];
|
||||
timeZone: tz];
|
||||
PASS_EQUAL([anotherDay timeZone], tz, "anotherDay has expected time zone")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%%"
|
||||
locale: myLocale] isEqualToString: @"%"],
|
||||
|
@ -168,9 +174,9 @@ int main()
|
|||
locale: myLocale] isEqualToString: @"1974"],
|
||||
"%%Y format works in description");
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%Z"
|
||||
locale: myLocale] isEqualToString: @"MET"],
|
||||
"%%Z format works in description");
|
||||
PASS_EQUAL([myBirthday
|
||||
descriptionWithCalendarFormat: @"%Z" locale: myLocale],
|
||||
@"CET", "%%Z format works in description")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%z"
|
||||
locale: myLocale] isEqualToString: @"+0100"],
|
||||
|
@ -192,9 +198,9 @@ int main()
|
|||
locale: myLocale] isEqualToString: @"13%00%00"],
|
||||
"%%H%%%%%%M%%%%%%S format works in description");
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%H:%M (%Z)"
|
||||
locale: myLocale] isEqualToString: @"13:00 (MET)"],
|
||||
"%%H%%M format works in description");
|
||||
PASS_EQUAL([myBirthday
|
||||
descriptionWithCalendarFormat: @"%H:%M (%Z)" locale: myLocale],
|
||||
@"13:00 (CET)", "%%H%%M format works in description")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%R"
|
||||
locale: myLocale] isEqualToString: @"13:00"],
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# On unix systems force testing using our inbuilt time zone data.
|
||||
export GNUSTEP_BUILTIN_TZ=1
|
||||
|
|
@ -9,31 +9,34 @@ int main()
|
|||
|
||||
current = [NSTimeZone defaultTimeZone];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+defaultTimeZone works");
|
||||
"+defaultTimeZone works")
|
||||
|
||||
current = [NSTimeZone localTimeZone];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+localTimeZone works");
|
||||
"+localTimeZone works")
|
||||
|
||||
current = [NSTimeZone systemTimeZone];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+systemTimeZone works");
|
||||
"+systemTimeZone works")
|
||||
|
||||
current = [NSTimeZone timeZoneForSecondsFromGMT: 900];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+timeZoneForSecondsFromGMT works");
|
||||
"+timeZoneForSecondsFromGMT: works")
|
||||
|
||||
current = [NSTimeZone timeZoneForSecondsFromGMT: 90000];
|
||||
PASS(current == nil,
|
||||
"+timeZoneForSecondsFromGMT fails for bad offset");
|
||||
"+timeZoneForSecondsFromGMT: fails for bad offset")
|
||||
|
||||
current = [NSTimeZone timeZoneWithAbbreviation: @"MST"];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+timeZoneWithAbbreviation works");
|
||||
"+timeZoneWithAbbreviation: works")
|
||||
|
||||
current = [NSTimeZone timeZoneWithName: @"GB"];
|
||||
PASS(current != nil && [current isKindOfClass: [NSTimeZone class]],
|
||||
"+timeZoneWithName works");
|
||||
"+timeZoneWithName: works")
|
||||
|
||||
current = [NSTimeZone timeZoneWithName: @"MET"];
|
||||
PASS_EQUAL([current name], @"MET", "+timeZoneWithName: preserved name")
|
||||
|
||||
[arp release]; arp = nil;
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue