From 12e8f11f003e970433622075c2d3de9558bc1be1 Mon Sep 17 00:00:00 2001 From: Mohammad Porooshani Date: Sun, 7 Oct 2018 15:10:52 +0330 Subject: [PATCH 1/4] Fixed persian calendar segmentation fault Signed-off-by: Mohammad Porooshani --- CoreFoundation/Locale.subproj/CFCalendar.c | 1 + 1 file changed, 1 insertion(+) diff --git a/CoreFoundation/Locale.subproj/CFCalendar.c b/CoreFoundation/Locale.subproj/CFCalendar.c index d2f13c8642..150a00af3e 100644 --- a/CoreFoundation/Locale.subproj/CFCalendar.c +++ b/CoreFoundation/Locale.subproj/CFCalendar.c @@ -273,6 +273,7 @@ CFCalendarRef CFCalendarCreateWithIdentifier(CFAllocatorRef allocator, CFStringR else if (CFEqual(kCFIslamicCalendar, identifier)) identifier = kCFIslamicCalendar; else if (CFEqual(kCFIslamicCivilCalendar, identifier)) identifier = kCFIslamicCivilCalendar; else if (CFEqual(kCFHebrewCalendar, identifier)) identifier = kCFHebrewCalendar; + else if (CFEqual(kCFPersianCalendar, identifier)) identifier = kCFPersianCalendar; else if (CFEqual(kCFISO8601Calendar, identifier)) identifier = kCFISO8601Calendar; // else if (CFEqual(kCFChineseCalendar, identifier)) identifier = kCFChineseCalendar; else return NULL; From 679963fa83f47a62c8a1d0a6d4f3ef9a865d91c2 Mon Sep 17 00:00:00 2001 From: Mohammad Porooshani Date: Wed, 10 Oct 2018 08:19:45 +0330 Subject: [PATCH 2/4] Added test case for persian calendar in TestFoundation/TestCalendar Signed-off-by: Mohammad Porooshani --- TestFoundation/TestCalendar.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/TestFoundation/TestCalendar.swift b/TestFoundation/TestCalendar.swift index f4d45bf878..e9b4c4c477 100644 --- a/TestFoundation/TestCalendar.swift +++ b/TestFoundation/TestCalendar.swift @@ -16,6 +16,8 @@ class TestCalendar: XCTestCase { ("test_gettingDatesOnHebrewCalendar", test_gettingDatesOnHebrewCalendar ), ("test_gettingDatesOnChineseCalendar", test_gettingDatesOnChineseCalendar), ("test_gettingDatesOnISO8601Calendar", test_gettingDatesOnISO8601Calendar), + ("test_gettingDatesOnPersianCalendar, + test_gettingDatesOnPersianCalendar) ("test_copy",test_copy), ("test_addingDates", test_addingDates), ("test_datesNotOnWeekend", test_datesNotOnWeekend), @@ -117,6 +119,18 @@ class TestCalendar: XCTestCase { XCTAssertEqual(components.isLeapMonth, true) } + func test_gettingDatesOnPersianCalendar() { + let date = Date(timeIntervalSince1970: 1539146705) + + var calendar = Calendar(identifier: .persian) + calendar.timeZone = TimeZone(identifier: "UTC")! + let components = calendar.dateComponents([.year, .month, .day], from: date) + XCTAssertEqual(components.year, 1397) + XCTAssertEqual(components.month, 7) + XCTAssertEqual(components.day, 18) + + } + func test_ampmSymbols() { let calendar = Calendar(identifier: .gregorian) XCTAssertEqual(calendar.amSymbol, "AM") From 1b77c68fb6f804a5dca90cfd62e2cebfafaee371 Mon Sep 17 00:00:00 2001 From: Mohammad Porooshani Date: Wed, 10 Oct 2018 09:27:32 +0330 Subject: [PATCH 3/4] Fixed test case in test collection. Signed-off-by: Mohammad Porooshani --- TestFoundation/TestCalendar.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestFoundation/TestCalendar.swift b/TestFoundation/TestCalendar.swift index e9b4c4c477..27091b7405 100644 --- a/TestFoundation/TestCalendar.swift +++ b/TestFoundation/TestCalendar.swift @@ -17,7 +17,7 @@ class TestCalendar: XCTestCase { ("test_gettingDatesOnChineseCalendar", test_gettingDatesOnChineseCalendar), ("test_gettingDatesOnISO8601Calendar", test_gettingDatesOnISO8601Calendar), ("test_gettingDatesOnPersianCalendar, - test_gettingDatesOnPersianCalendar) + test_gettingDatesOnPersianCalendar), ("test_copy",test_copy), ("test_addingDates", test_addingDates), ("test_datesNotOnWeekend", test_datesNotOnWeekend), From c1c9df8ad227c34a96482fe2aee9f2ddbef13d5b Mon Sep 17 00:00:00 2001 From: Mohammad Porooshani Date: Wed, 10 Oct 2018 10:39:17 +0330 Subject: [PATCH 4/4] fixed closing quote Signed-off-by: Mohammad Porooshani --- TestFoundation/TestCalendar.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestFoundation/TestCalendar.swift b/TestFoundation/TestCalendar.swift index 27091b7405..5349a57853 100644 --- a/TestFoundation/TestCalendar.swift +++ b/TestFoundation/TestCalendar.swift @@ -16,7 +16,7 @@ class TestCalendar: XCTestCase { ("test_gettingDatesOnHebrewCalendar", test_gettingDatesOnHebrewCalendar ), ("test_gettingDatesOnChineseCalendar", test_gettingDatesOnChineseCalendar), ("test_gettingDatesOnISO8601Calendar", test_gettingDatesOnISO8601Calendar), - ("test_gettingDatesOnPersianCalendar, + ("test_gettingDatesOnPersianCalendar", test_gettingDatesOnPersianCalendar), ("test_copy",test_copy), ("test_addingDates", test_addingDates),