Skip to content

Commit b64a85b

Browse files
committed
Improve error handling
1 parent 6c1cfe5 commit b64a85b

File tree

2 files changed

+39
-17
lines changed

2 files changed

+39
-17
lines changed

cls/TestCoverage/Manager.cls

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ ClassMethod OnBeforeAllTests(manager As TestCoverage.Manager, dir As %String, By
631631
{
632632
Set tSC = $$$OK
633633
Try {
634-
Do ##super(.manager, .dir, .qstruct, .userparam)
634+
Set tSC = ##super(.manager, .dir, .qstruct, .userparam)
635635
Set tCoverageClasses = $Get(userparam("CoverageClasses"))
636636
Set tCoverageRoutines = $Get(userparam("CoverageRoutines"))
637637
Set tCoverageDetail = $Get(userparam("CoverageDetail"))
@@ -719,9 +719,12 @@ ClassMethod OnAfterAllTests(manager As TestCoverage.Manager, dir As %String, ByR
719719
{
720720
Set tSC = $$$OK
721721
Try {
722-
Do ##super(.manager, .dir, .qstruct, .userparam)
722+
Set tSC = ##super(.manager, .dir, .qstruct, .userparam)
723723
If (manager.CoverageDetail = 0) {
724-
Set tSC = manager.EndCoverageTracking()
724+
Set sc = manager.EndCoverageTracking()
725+
If $$$ISERR(sc) {
726+
Set tSC = $$$ADDSC(tSC,sc)
727+
}
725728
if (manager.ListenerManager) {
726729
set tObj = {"message": "All tests complete"}
727730
Do manager.ListenerManager.BroadCastToAll(tObj)
@@ -745,7 +748,7 @@ Method OnBeforeAutoLoad(dir As %String, suite As %String, testspec As %String, B
745748
{
746749
Set tSC = $$$OK
747750
Try {
748-
Do ##super(.dir, .suite, .testspec, .qstruct)
751+
Set tSC = ##super(.dir, .suite, .testspec, .qstruct)
749752
// TODO: Flag to capture code coverage of compiling autoload classes? (e.g., to cover generators?)
750753
} Catch e {
751754
Set tSC = e.AsStatus()
@@ -760,7 +763,7 @@ Method OnBeforeTestSuite(dir As %String, suite As %String, testspec As %String,
760763
{
761764
Set tSC = $$$OK
762765
Try {
763-
Do ##super(.dir, .suite, .testspec, .qstruct)
766+
Set tSC = ##super(.dir, .suite, .testspec, .qstruct)
764767
If ..DynamicTargets && (dir '= "") {
765768
// Determine coverage targets based on directory contents (looking for coverage.list in that directory or the nearest ancestor containing it).
766769
Set tSC = ..UpdateCoverageTargetsForTestDirectory(dir)
@@ -775,7 +778,10 @@ Method OnBeforeTestSuite(dir As %String, suite As %String, testspec As %String,
775778
Do ..ListenerManager.BroadCastToAll(tObj)
776779
}
777780
If (..CoverageDetail = 1) {
778-
Set tSC = ..StartCoverageTracking()
781+
Set sc = ..StartCoverageTracking()
782+
If $$$ISERR(sc) {
783+
Set tSC = $$$ADDSC(tSC,sc)
784+
}
779785
}
780786

781787
} Catch e {
@@ -790,10 +796,13 @@ Method OnAfterTestSuite(dir As %String, suite As %String, testspec As %String, B
790796
{
791797
Set tSC = $$$OK
792798
Try {
793-
Do ##super(.dir, .suite, .testspec, .qstruct)
799+
Set tSC = ##super(.dir, .suite, .testspec, .qstruct)
794800

795801
If (..CoverageDetail = 1) {
796-
Set tSC = ..EndCoverageTracking($Case(suite,"":"(root)",:suite))
802+
Set sc = ..EndCoverageTracking($Case(suite,"":"(root)",:suite))
803+
If $$$ISERR(sc) {
804+
Set tSC = $$$ADDSC(tSC,sc)
805+
}
797806
}
798807
if (..ListenerManager) {
799808
set tObj = {"message": "Finished test suite: "}
@@ -812,7 +821,7 @@ Method OnBeforeTestCase(suite As %String, class As %String) As %Status
812821
{
813822
Set tSC = $$$OK
814823
Try {
815-
Do ##super(.suite, .class, .testcase)
824+
Set tSC = ##super(.suite, .class, .testcase)
816825
Set ..CurrentTestClass = class
817826
Set ..CurrentTestMethod = ""
818827
if (..ListenerManager) {
@@ -822,7 +831,10 @@ Method OnBeforeTestCase(suite As %String, class As %String) As %Status
822831
Do ..ListenerManager.BroadCastToAll(tObj)
823832
}
824833
If (..CoverageDetail = 2) {
825-
Set tSC = ..StartCoverageTracking()
834+
Set sc = ..StartCoverageTracking()
835+
If $$$ISERR(sc) {
836+
Set tSC = $$$ADDSC(tSC,sc)
837+
}
826838
}
827839
} Catch e {
828840
Set tSC = e.AsStatus()
@@ -836,9 +848,12 @@ Method OnAfterTestCase(suite As %String, class As %String) As %Status
836848
{
837849
Set tSC = $$$OK
838850
Try {
839-
Do ##super(.suite, .class, .testcase)
851+
Set tSC = ##super(.suite, .class, .testcase)
840852
If (..CoverageDetail = 2) {
841-
Set tSC = ..EndCoverageTracking(suite, class)
853+
Set sc = ..EndCoverageTracking(suite, class)
854+
If $$$ISERR(sc) {
855+
Set tSC = $$$ADDSC(tSC,sc)
856+
}
842857
}
843858
if (..ListenerManager) {
844859
set tObj = {"message": "Finished test case: "}
@@ -858,7 +873,7 @@ Method OnBeforeOneTest(suite As %String, class As %String, method As %String) As
858873
{
859874
Set tSC = $$$OK
860875
Try {
861-
Do ##super(.suite, .class, .method)
876+
Set tSC = ##super(.suite, .class, .method)
862877
Set ..CurrentTestMethod = method
863878
if (..ListenerManager) {
864879
set tObj = {"message": "Starting test method: "}
@@ -868,7 +883,10 @@ Method OnBeforeOneTest(suite As %String, class As %String, method As %String) As
868883
Do ..ListenerManager.BroadCastToAll(tObj)
869884
}
870885
If (..CoverageDetail = 3) {
871-
Set tSC = ..StartCoverageTracking()
886+
Set sc = ..StartCoverageTracking()
887+
If $$$ISERR(sc) {
888+
Set tSC = $$$ADDSC(tSC,sc)
889+
}
872890
}
873891
} Catch e {
874892
Set tSC = e.AsStatus()
@@ -882,9 +900,12 @@ Method OnAfterOneTest(suite As %String, class As %String, method As %String) As
882900
{
883901
Set tSC = $$$OK
884902
Try {
885-
Do ##super(.suite, .class, .method)
903+
Set tSC = ##super(.suite, .class, .method)
886904
If (..CoverageDetail = 3) {
887-
Set tSC = ..EndCoverageTracking(suite, class, method)
905+
Set sc = ..EndCoverageTracking(suite, class, method)
906+
If $$$ISERR(sc) {
907+
Set tSC = $$$ADDSC(tSC,sc)
908+
}
888909
}
889910
if (..ListenerManager) {
890911
set tObj = {"message": "Finished test method: "}

internal/testing/unit_tests/UnitTest/TestCoverage/Unit/Manager.cls

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ Parameter AutoUserNames As STRING = "TestA;TestB;TestC";
66
Method TestAutoUserNames()
77
{
88
// verify the 3 usernames are automatically created
9-
ZNSPACE "%SYS"
9+
New $NAMESPACE
10+
Set $NAMESPACE = "%SYS"
1011

1112
Do $$$AssertTrue(##class(Security.Users).Exists("TestA"))
1213
Do $$$AssertTrue(##class(Security.Users).Exists("TestB"))

0 commit comments

Comments
 (0)