From 7341dc14a0227881f8948d20b3987fc5c16f8c3b Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 15:14:53 +0300 Subject: [PATCH 1/9] (#2) Started test rework --- Tests/MagickWandTests/MagickWandTests.swift | 141 +++----------------- 1 file changed, 22 insertions(+), 119 deletions(-) diff --git a/Tests/MagickWandTests/MagickWandTests.swift b/Tests/MagickWandTests/MagickWandTests.swift index 8b2db4a..7ec7a98 100644 --- a/Tests/MagickWandTests/MagickWandTests.swift +++ b/Tests/MagickWandTests/MagickWandTests.swift @@ -2,135 +2,38 @@ import Foundation import XCTest @testable import MagickWand -class MagickWandTests: XCTestCase { - func testWand() { - - let version = MagickWand.version - print(version) - - XCTAssert(!version.isEmpty, "version should not be empty") - XCTAssertNotEqual(version, MagickWand.unknownVersion, "version should not be unknown") - - MagickWand.genesis() - - //100x50 - guard let data = try? Data(contentsOf: URL(fileURLWithPath: "rect.png")) else { - XCTFail("data should not be nil") - return - } - - do { //wand should not exist on terminus - guard let wand = ImageWand(data: data) else { - XCTFail("image should not be nil") - return - } - - XCTAssertEqual(wand.size.width, 100, "wrong image width") - XCTAssertEqual(wand.size.height, 50, "wrong image height") - - guard let cloned = wand.clone() else { - XCTFail("clone should exist") - return - } - - XCTAssertEqual(cloned.size.width, 100, "wrong cloned image width") - XCTAssertEqual(cloned.size.height, 50, "wrong cloned image height") - - wand.clear() - - XCTAssertEqual(wand.size.width, 0, "wrong image width after clear") - XCTAssertEqual(wand.size.height, 0, "wrong image height after clear") - - XCTAssertEqual(cloned.size.width, 100, "cloned image width should not change after parent clear") - XCTAssertEqual(cloned.size.height, 50, "cloned image height should not change after parent clear") - - cloned.resize(width: 40, height: 40, filter: .lanczos) - - XCTAssertEqual(cloned.size.width, 40, "cloned image width wasn't changed on resize") - XCTAssertEqual(cloned.size.height, 40, "cloned image height wasn't changed on resize") - - cloned.adaptiveResize(width: 90, height: 45) - - XCTAssertEqual(cloned.size.width, 90, "cloned image width wasn't changed on adaptive resize") - XCTAssertEqual(cloned.size.height, 45, "cloned image height wasn't changed on adaptive resize") - - cloned.scale(width: 100, height: 50) - - XCTAssertEqual(cloned.size.width, 100, "cloned image width wasn't changed on scale") - XCTAssertEqual(cloned.size.height, 50, "cloned image height wasn't changed on scale") - - wand.read(data: data) - - XCTAssertEqual(cloned.size.width, 100, "wrong image width after reading data") - XCTAssertEqual(cloned.size.height, 50, "wrong image height after reading data") - - let size = wand.size(for: 80) - - XCTAssertEqual(size.width, 80, "wrong size for dimension") - XCTAssertEqual(size.height, 40, "wrong size for dimension") - - print(wand[option: .custom("jpeg:perserve")]) - - print(wand.identity) - print(wand.format) - wand.format = "jpeg" - print(wand.format) - print(wand.filename) - print(wand.interlace) - print(wand.orientation) - print(wand.size) - print("resolution") - print(wand.resolution) - print(wand.compression) - print(wand.gravity) - print(wand.colorspace) - - - - func showColors(_ color: PixelWand?) { - print(color?.colors.rgba) - print(color?.colors.hsl) - print(color?.colors.cmy) - - print(color?.colors.info) - - print(color?.colors.string) - print(color?.colors.normalizedString) - - print(color?.colors.count) - } - - print("background") - print(wand.background) - showColors(wand.background) - - print("border") - print(wand.border) - showColors(wand.border) - - print("matte") - print(wand.matte) - showColors(wand.matte) - - print("pixel") - showColors(wand.pixel(x: 0, y: 0)) +func open(file: String, ofType type: String) -> Data? { + #if os(Linux) + fileData = try? Data(contentsOf: URL(fileURLWithPath: "\(file).\(type)")) + #else + if let path = Bundle(for: MagickWandTests.self).path(forResource: file, ofType: type) { + fileData = try? Data(contentsOf: URL(fileURLWithPath: path)) + } else { + fileData = try? Data(contentsOf: URL(fileURLWithPath: "\(file).\(type)")) } + #endif +} - let isInstantiatedBefore = MagickWand.isInstantiated - XCTAssertEqual(isInstantiatedBefore, true, "value of 'isInstantiated' value before 'terminus()' is wrong") +class MagickWandTests: XCTestCase { + + func testGenesisTerminus() { + XCTAssertFalse(MagickWand.isInstantiated) + + MagickWand.genesis() + + XCTAssertTrue(MagickWand.isInstantiated) + MagickWand.terminus() - - let isInstantiatedAfter = MagickWand.isInstantiated - - XCTAssertEqual(isInstantiatedAfter, false, "value of 'isInstantiated' value after 'terminus()' is wrong") + + XCTAssertFalse(MagickWand.isInstantiated) } static var allTests : [(String, (MagickWandTests) -> () throws -> Void)] { return [ - ("testWand", testWand), + ("Test Genesis - Terminus", testGenesisTerminus), ] } } From 15260ccd38176c641b630afc7a8bc086667bb73c Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 15:27:43 +0300 Subject: [PATCH 2/9] Change codecov file --- codecov.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codecov.yml b/codecov.yml index f070750..e5e5964 100644 --- a/codecov.yml +++ b/codecov.yml @@ -13,6 +13,6 @@ coverage: changes: no ignore: - - "*Tests*" - - "*Sources/CMagickWand*" + - "Tests/*" + - "Sources/CMagickWand/*" From e67b91397bbcd56d5c647c53bb6bfe9006e31684 Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:02:43 +0300 Subject: [PATCH 3/9] boolean change --- Sources/MagickWand/WandTypes/MagickWand+Boolean.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/MagickWand/WandTypes/MagickWand+Boolean.swift b/Sources/MagickWand/WandTypes/MagickWand+Boolean.swift index df7e5f8..f7740ff 100644 --- a/Sources/MagickWand/WandTypes/MagickWand+Boolean.swift +++ b/Sources/MagickWand/WandTypes/MagickWand+Boolean.swift @@ -29,6 +29,6 @@ extension MagickBooleanType { var bool: Bool { - return self.rawValue == 1 + return self.rawValue != 0 } } From 92548bec34234f82c50eab6cbba4e2f641e5f46f Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:10:24 +0300 Subject: [PATCH 4/9] revert tests --- Tests/MagickWandTests/MagickWandTests.swift | 127 ++++++++++++++++++-- 1 file changed, 120 insertions(+), 7 deletions(-) diff --git a/Tests/MagickWandTests/MagickWandTests.swift b/Tests/MagickWandTests/MagickWandTests.swift index e3432e0..b2fa5e8 100644 --- a/Tests/MagickWandTests/MagickWandTests.swift +++ b/Tests/MagickWandTests/MagickWandTests.swift @@ -20,22 +20,135 @@ func open(file: String, ofType type: String) -> Data? { class MagickWandTests: XCTestCase { - func testGenesisTerminus() { - XCTAssertFalse(MagickWand.isInstantiated) + func testWand() { + + let version = MagickWand.version + print(version) + + XCTAssert(!version.isEmpty, "version should not be empty") + XCTAssertNotEqual(version, MagickWand.unknownVersion, "version should not be unknown") MagickWand.genesis() - XCTAssertTrue(MagickWand.isInstantiated) + //100x50 + + guard let data = open(file: "rect", ofType: "png") else { + XCTFail("data should not be nil") + return + } + + do { //wand should not exist on terminus + guard let wand = ImageWand(data: data) else { + XCTFail("image should not be nil") + return + } + + XCTAssertEqual(wand.size.width, 100, "wrong image width") + XCTAssertEqual(wand.size.height, 50, "wrong image height") + + guard let cloned = wand.clone() else { + XCTFail("clone should exist") + return + } + + XCTAssertEqual(cloned.size.width, 100, "wrong cloned image width") + XCTAssertEqual(cloned.size.height, 50, "wrong cloned image height") + + wand.clear() + + XCTAssertEqual(wand.size.width, 0, "wrong image width after clear") + XCTAssertEqual(wand.size.height, 0, "wrong image height after clear") + + XCTAssertEqual(cloned.size.width, 100, "cloned image width should not change after parent clear") + XCTAssertEqual(cloned.size.height, 50, "cloned image height should not change after parent clear") + + cloned.resize(width: 40, height: 40, filter: .lanczos) + + XCTAssertEqual(cloned.size.width, 40, "cloned image width wasn't changed on resize") + XCTAssertEqual(cloned.size.height, 40, "cloned image height wasn't changed on resize") + + cloned.adaptiveResize(width: 90, height: 45) + + XCTAssertEqual(cloned.size.width, 90, "cloned image width wasn't changed on adaptive resize") + XCTAssertEqual(cloned.size.height, 45, "cloned image height wasn't changed on adaptive resize") + + cloned.scale(width: 100, height: 50) + + XCTAssertEqual(cloned.size.width, 100, "cloned image width wasn't changed on scale") + XCTAssertEqual(cloned.size.height, 50, "cloned image height wasn't changed on scale") + + wand.read(data: data) + + XCTAssertEqual(cloned.size.width, 100, "wrong image width after reading data") + XCTAssertEqual(cloned.size.height, 50, "wrong image height after reading data") + + let size = wand.size(for: 80) + + XCTAssertEqual(size.width, 80, "wrong size for dimension") + XCTAssertEqual(size.height, 40, "wrong size for dimension") + + print(wand[option: .custom("jpeg:perserve")]) + + print(wand.identity) + print(wand.format) + wand.format = "jpeg" + print(wand.format) + print(wand.filename) + print(wand.interlace) + print(wand.orientation) + print(wand.size) + print("resolution") + print(wand.resolution) + print(wand.compression) + print(wand.gravity) + print(wand.colorspace) + + + + func showColors(_ color: PixelWand?) { + print(color?.colors.rgba) + print(color?.colors.hsl) + print(color?.colors.cmy) + + print(color?.colors.info) + + print(color?.colors.string) + print(color?.colors.normalizedString) + + print(color?.colors.count) + } + + print("background") + print(wand.background) + showColors(wand.background) + + print("border") + print(wand.border) + showColors(wand.border) + + print("matte") + print(wand.matte) + showColors(wand.matte) + + print("pixel") + showColors(wand.pixel(x: 0, y: 0)) + + } + + let isInstantiatedBefore = MagickWand.isInstantiated + XCTAssertEqual(isInstantiatedBefore, true, "value of 'isInstantiated' value before 'terminus()' is wrong") MagickWand.terminus() - XCTAssertFalse(MagickWand.isInstantiated) + let isInstantiatedAfter = MagickWand.isInstantiated + + XCTAssertEqual(isInstantiatedAfter, false, "value of 'isInstantiated' value after 'terminus()' is wrong") } - - + + static var allTests : [(String, (MagickWandTests) -> () throws -> Void)] { return [ - ("Test Genesis - Terminus", testGenesisTerminus), + ("testWand", testWand), ] } } From 77809ab54b60dcb9054cbd34ea43fae5b4848b2f Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:11:25 +0300 Subject: [PATCH 5/9] test --- Tests/MagickWandTests/MagickWandTests.swift | 127 ++------------------ 1 file changed, 8 insertions(+), 119 deletions(-) diff --git a/Tests/MagickWandTests/MagickWandTests.swift b/Tests/MagickWandTests/MagickWandTests.swift index b2fa5e8..6e3a854 100644 --- a/Tests/MagickWandTests/MagickWandTests.swift +++ b/Tests/MagickWandTests/MagickWandTests.swift @@ -20,135 +20,24 @@ func open(file: String, ofType type: String) -> Data? { class MagickWandTests: XCTestCase { - func testWand() { - - let version = MagickWand.version - print(version) - - XCTAssert(!version.isEmpty, "version should not be empty") - XCTAssertNotEqual(version, MagickWand.unknownVersion, "version should not be unknown") + func testGenesisTerminus() { + XCTAssertFalse(MagickWand.isInstantiated) MagickWand.genesis() - //100x50 - - guard let data = open(file: "rect", ofType: "png") else { - XCTFail("data should not be nil") - return - } - - do { //wand should not exist on terminus - guard let wand = ImageWand(data: data) else { - XCTFail("image should not be nil") - return - } - - XCTAssertEqual(wand.size.width, 100, "wrong image width") - XCTAssertEqual(wand.size.height, 50, "wrong image height") - - guard let cloned = wand.clone() else { - XCTFail("clone should exist") - return - } - - XCTAssertEqual(cloned.size.width, 100, "wrong cloned image width") - XCTAssertEqual(cloned.size.height, 50, "wrong cloned image height") - - wand.clear() - - XCTAssertEqual(wand.size.width, 0, "wrong image width after clear") - XCTAssertEqual(wand.size.height, 0, "wrong image height after clear") - - XCTAssertEqual(cloned.size.width, 100, "cloned image width should not change after parent clear") - XCTAssertEqual(cloned.size.height, 50, "cloned image height should not change after parent clear") - - cloned.resize(width: 40, height: 40, filter: .lanczos) - - XCTAssertEqual(cloned.size.width, 40, "cloned image width wasn't changed on resize") - XCTAssertEqual(cloned.size.height, 40, "cloned image height wasn't changed on resize") - - cloned.adaptiveResize(width: 90, height: 45) - - XCTAssertEqual(cloned.size.width, 90, "cloned image width wasn't changed on adaptive resize") - XCTAssertEqual(cloned.size.height, 45, "cloned image height wasn't changed on adaptive resize") - - cloned.scale(width: 100, height: 50) - - XCTAssertEqual(cloned.size.width, 100, "cloned image width wasn't changed on scale") - XCTAssertEqual(cloned.size.height, 50, "cloned image height wasn't changed on scale") - - wand.read(data: data) - - XCTAssertEqual(cloned.size.width, 100, "wrong image width after reading data") - XCTAssertEqual(cloned.size.height, 50, "wrong image height after reading data") - - let size = wand.size(for: 80) - - XCTAssertEqual(size.width, 80, "wrong size for dimension") - XCTAssertEqual(size.height, 40, "wrong size for dimension") - - print(wand[option: .custom("jpeg:perserve")]) - - print(wand.identity) - print(wand.format) - wand.format = "jpeg" - print(wand.format) - print(wand.filename) - print(wand.interlace) - print(wand.orientation) - print(wand.size) - print("resolution") - print(wand.resolution) - print(wand.compression) - print(wand.gravity) - print(wand.colorspace) - - - - func showColors(_ color: PixelWand?) { - print(color?.colors.rgba) - print(color?.colors.hsl) - print(color?.colors.cmy) - - print(color?.colors.info) - - print(color?.colors.string) - print(color?.colors.normalizedString) - - print(color?.colors.count) - } - - print("background") - print(wand.background) - showColors(wand.background) - - print("border") - print(wand.border) - showColors(wand.border) - - print("matte") - print(wand.matte) - showColors(wand.matte) - - print("pixel") - showColors(wand.pixel(x: 0, y: 0)) - - } + sleep(1) - let isInstantiatedBefore = MagickWand.isInstantiated - XCTAssertEqual(isInstantiatedBefore, true, "value of 'isInstantiated' value before 'terminus()' is wrong") + XCTAssertTrue(MagickWand.isInstantiated) MagickWand.terminus() - let isInstantiatedAfter = MagickWand.isInstantiated - - XCTAssertEqual(isInstantiatedAfter, false, "value of 'isInstantiated' value after 'terminus()' is wrong") + XCTAssertFalse(MagickWand.isInstantiated) } - - + + static var allTests : [(String, (MagickWandTests) -> () throws -> Void)] { return [ - ("testWand", testWand), + ("Test Genesis - Terminus", testGenesisTerminus), ] } } From 2ab3fa9a495a64a0298fa9249272c5a8c187067f Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:28:50 +0300 Subject: [PATCH 6/9] update coverage --- codecov.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/codecov.yml b/codecov.yml index 919703e..99b107d 100644 --- a/codecov.yml +++ b/codecov.yml @@ -9,19 +9,13 @@ coverage: status: project: - default: - target: auto - threshold: null - branches: null + default: true patch: - default: - target: auto - branches: null + default: true changes: - default: - branches: null + default: true ignore: - "Tests/*" From 618560cb4528616682670c38839652345d4fedf1 Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:36:41 +0300 Subject: [PATCH 7/9] test --- Sources/MagickWand/Wand/ImageWand/ImageWand.swift | 2 ++ Sources/MagickWand/Wand/PixelWand/PixelWand.swift | 2 ++ Tests/MagickWandTests/MagickWandTests.swift | 8 +++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Sources/MagickWand/Wand/ImageWand/ImageWand.swift b/Sources/MagickWand/Wand/ImageWand/ImageWand.swift index a4ea7e0..b0aa73e 100644 --- a/Sources/MagickWand/Wand/ImageWand/ImageWand.swift +++ b/Sources/MagickWand/Wand/ImageWand/ImageWand.swift @@ -60,6 +60,7 @@ public class ImageWand: Wand { } deinit { + self.clear() self.destroy() } @@ -82,6 +83,7 @@ public class ImageWand: Wand { } public func destroy() { + guard MagickWand.isInstantiated else { return } DestroyMagickWand(self.pointer) } } diff --git a/Sources/MagickWand/Wand/PixelWand/PixelWand.swift b/Sources/MagickWand/Wand/PixelWand/PixelWand.swift index 3421bfe..ee7c9c0 100644 --- a/Sources/MagickWand/Wand/PixelWand/PixelWand.swift +++ b/Sources/MagickWand/Wand/PixelWand/PixelWand.swift @@ -37,6 +37,7 @@ public class PixelWand: Wand { } deinit { + self.clear() self.destroy() } @@ -59,6 +60,7 @@ public class PixelWand: Wand { } public func destroy() { + guard MagickWand.isInstantiated else { return } DestroyPixelWand(self.pointer) } } diff --git a/Tests/MagickWandTests/MagickWandTests.swift b/Tests/MagickWandTests/MagickWandTests.swift index 6e3a854..6859600 100644 --- a/Tests/MagickWandTests/MagickWandTests.swift +++ b/Tests/MagickWandTests/MagickWandTests.swift @@ -25,8 +25,14 @@ class MagickWandTests: XCTestCase { MagickWand.genesis() - sleep(1) + guard let data = open(file: "rect", ofType: "png") else { + XCTFail("data should not be nil") + return + } + + let image = ImageWand(data: data) + XCTAssertNotNil(image) XCTAssertTrue(MagickWand.isInstantiated) MagickWand.terminus() From 2664d91c2c93e6df033e1f8b8511a5a9db91f2c1 Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:46:30 +0300 Subject: [PATCH 8/9] Linux workaround for instantiated --- Sources/MagickWand/MagickWand.swift | 14 +++++++++++++- Tests/MagickWandTests/MagickWandTests.swift | 8 -------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Sources/MagickWand/MagickWand.swift b/Sources/MagickWand/MagickWand.swift index 754ee47..69fdb73 100644 --- a/Sources/MagickWand/MagickWand.swift +++ b/Sources/MagickWand/MagickWand.swift @@ -29,18 +29,30 @@ public struct MagickWand { static let unknownVersion = "unknown" + +#if os(Linux) + static private var _instantiated = false +#endif public static func genesis() { MagickWandGenesis() + + #if os(Linux) + self._instantiated = true + #endif } public static func terminus() { MagickWandTerminus() + + #if os(Linux) + self._instantiated = false + #endif } public static var isInstantiated: Bool { #if os(Linux) - return IsMagickInstantiated().bool + return IsMagickInstantiated().bool || self._instantiated #else return IsMagickWandInstantiated().bool #endif diff --git a/Tests/MagickWandTests/MagickWandTests.swift b/Tests/MagickWandTests/MagickWandTests.swift index 6859600..e3432e0 100644 --- a/Tests/MagickWandTests/MagickWandTests.swift +++ b/Tests/MagickWandTests/MagickWandTests.swift @@ -25,14 +25,6 @@ class MagickWandTests: XCTestCase { MagickWand.genesis() - guard let data = open(file: "rect", ofType: "png") else { - XCTFail("data should not be nil") - return - } - - let image = ImageWand(data: data) - - XCTAssertNotNil(image) XCTAssertTrue(MagickWand.isInstantiated) MagickWand.terminus() From 123f741993bc469db8b7e0558d50437d22d43982 Mon Sep 17 00:00:00 2001 From: Sergey Minakov Date: Wed, 23 Nov 2016 16:52:03 +0300 Subject: [PATCH 9/9] codeclimate fix --- Sources/MagickWand/MagickWand.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/MagickWand/MagickWand.swift b/Sources/MagickWand/MagickWand.swift index 69fdb73..7bd0695 100644 --- a/Sources/MagickWand/MagickWand.swift +++ b/Sources/MagickWand/MagickWand.swift @@ -31,14 +31,14 @@ public struct MagickWand { static let unknownVersion = "unknown" #if os(Linux) - static private var _instantiated = false + static private var wandInstantiated = false #endif public static func genesis() { MagickWandGenesis() #if os(Linux) - self._instantiated = true + self.wandInstantiated = true #endif } @@ -46,13 +46,13 @@ public struct MagickWand { MagickWandTerminus() #if os(Linux) - self._instantiated = false + self.wandInstantiated = false #endif } public static var isInstantiated: Bool { #if os(Linux) - return IsMagickInstantiated().bool || self._instantiated + return IsMagickInstantiated().bool || self.wandInstantiated #else return IsMagickWandInstantiated().bool #endif