Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
8a0ae0d4
Commit
8a0ae0d4
authored
9 years ago
by
Anna Kozlova
Browse files
Options
Download
Email Patches
Plain Diff
sm runner: avoid firing form events for all open sessions at once
parent
1f97af84
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralIdBasedToSMTRunnerEventsConvertor.java
+10
-44
...k/sm/runner/GeneralIdBasedToSMTRunnerEventsConvertor.java
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralTestEventsProcessor.java
+104
-12
...n/testframework/sm/runner/GeneralTestEventsProcessor.java
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertor.java
+17
-44
...ramework/sm/runner/GeneralToSMTRunnerEventsConvertor.java
with
131 additions
and
100 deletions
+131
-100
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralIdBasedToSMTRunnerEventsConvertor.java
+
10
-
44
View file @
8a0ae0d4
...
...
@@ -65,7 +65,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public
void
run
()
{
myTestsRootNode
.
setState
(
State
.
RUNNING
,
GeneralIdBasedToSMTRunnerEventsConvertor
.
this
);
myTestsRootProxy
.
setStarted
();
myEventPublisher
.
o
nTestingStarted
(
myTestsRootProxy
);
fireO
nTestingStarted
(
myTestsRootProxy
);
}
});
}
...
...
@@ -74,7 +74,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public
void
onTestsReporterAttached
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myTestsRootProxy
.
set
TestsReporterAttached
();
fireOn
TestsReporterAttached
(
myTestsRootProxy
);
}
});
}
...
...
@@ -104,7 +104,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
myNodeByIdMap
.
clear
();
myRunningTestNodes
.
clear
();
myEventPublisher
.
o
nTestingFinished
(
myTestsRootProxy
);
fireO
nTestingFinished
(
myTestsRootProxy
);
}
});
stopEventProcessing
();
...
...
@@ -200,7 +200,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy
testProxy
=
node
.
getProxy
();
testProxy
.
setDuration
(
testFinishedEvent
.
getDuration
());
testProxy
.
setFinished
();
myEventPublisher
.
o
nTestFinished
(
testProxy
);
fireO
nTestFinished
(
testProxy
);
terminateNode
(
node
,
State
.
FINISHED
);
}
}
...
...
@@ -214,7 +214,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
if
(
node
!=
null
)
{
SMTestProxy
suiteProxy
=
node
.
getProxy
();
suiteProxy
.
setFinished
();
myEventPublisher
.
o
nSuiteFinished
(
suiteProxy
);
fireO
nSuiteFinished
(
suiteProxy
);
terminateNode
(
node
,
State
.
FINISHED
);
}
}
...
...
@@ -259,40 +259,6 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
});
}
public
void
onCustomProgressTestsCategory
(
@Nullable
final
String
categoryName
,
final
int
testCount
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestsCategory
(
categoryName
,
testCount
);
}
});
}
public
void
onCustomProgressTestStarted
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestStarted
();
}
});
}
@Override
public
void
onCustomProgressTestFinished
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFinished
();
}
});
}
public
void
onCustomProgressTestFailed
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFailed
();
}
});
}
public
void
onTestFailure
(
@NotNull
final
TestFailedEvent
testFailedEvent
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
...
...
@@ -325,7 +291,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
}
// fire event
myEventPublisher
.
o
nTestFailed
(
testProxy
);
fireO
nTestFailed
(
testProxy
);
terminateNode
(
node
,
State
.
FAILED
);
}
...
...
@@ -340,7 +306,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy
testProxy
=
node
.
getProxy
();
testProxy
.
setTestIgnored
(
testIgnoredEvent
.
getIgnoreComment
(),
testIgnoredEvent
.
getStacktrace
());
// fire event
myEventPublisher
.
o
nTestIgnored
(
testProxy
);
fireO
nTestIgnored
(
testProxy
);
terminateNode
(
node
,
State
.
IGNORED
);
}
}
...
...
@@ -369,7 +335,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public
void
onTestsCountInSuite
(
final
int
count
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
o
nTestsCountInSuite
(
count
);
fireO
nTestsCountInSuite
(
count
);
}
});
}
...
...
@@ -425,10 +391,10 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy
proxy
=
node
.
getProxy
();
proxy
.
setStarted
();
if
(
proxy
.
isSuite
())
{
myEventPublisher
.
o
nSuiteStarted
(
proxy
);
fireO
nSuiteStarted
(
proxy
);
}
else
{
myRunningTestNodes
.
add
(
lowestNode
);
myEventPublisher
.
o
nTestStarted
(
proxy
);
fireO
nTestStarted
(
proxy
);
}
node
=
node
.
getParentNode
();
}
...
...
This diff is collapsed.
Click to expand it.
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralTestEventsProcessor.java
+
104
-
12
View file @
8a0ae0d4
...
...
@@ -32,6 +32,7 @@ import org.jetbrains.annotations.NotNull;
import
org.jetbrains.annotations.Nullable
;
import
javax.swing.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -53,7 +54,7 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
return
true
;
}
},
getDisposedCondition
(),
300
);
pr
ivate
HashMap
<
SMTRunnerEventsListener
,
MessageBusConnection
>
myListenerAdapters
=
new
HashMap
<
SMTRunnerEventsListener
,
MessageBusConnection
>();
pr
otected
List
<
SMTRunnerEventsListener
>
myListenerAdapters
=
new
ArrayList
<
SMTRunnerEventsListener
>();
public
GeneralTestEventsProcessor
(
Project
project
)
{
myProject
=
project
;
...
...
@@ -72,28 +73,86 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
// progress events
public
abstract
void
onStartTesting
();
protected
void
fireOnTestingStarted
(
SMTestProxy
.
SMRootTestProxy
node
)
{
myEventPublisher
.
onTestingStarted
(
node
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestingStarted
(
node
);
}
}
public
abstract
void
onTestsCountInSuite
(
final
int
count
);
protected
void
fireOnTestsCountInSuite
(
int
count
)
{
myEventPublisher
.
onTestsCountInSuite
(
count
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestsCountInSuite
(
count
);
}
}
public
abstract
void
onTestStarted
(
@NotNull
TestStartedEvent
testStartedEvent
);
protected
void
fireOnTestStarted
(
SMTestProxy
testProxy
)
{
myEventPublisher
.
onTestStarted
(
testProxy
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestStarted
(
testProxy
);
}
}
public
abstract
void
onTestFinished
(
@NotNull
TestFinishedEvent
testFinishedEvent
);
protected
void
fireOnTestFinished
(
SMTestProxy
testProxy
)
{
myEventPublisher
.
onTestFinished
(
testProxy
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestFinished
(
testProxy
);
}
}
public
abstract
void
onTestFailure
(
@NotNull
TestFailedEvent
testFailedEvent
);
protected
void
fireOnTestFailed
(
SMTestProxy
testProxy
)
{
myEventPublisher
.
onTestFailed
(
testProxy
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestFailed
(
testProxy
);
}
}
public
abstract
void
onTestIgnored
(
@NotNull
TestIgnoredEvent
testIgnoredEvent
);
protected
void
fireOnTestIgnored
(
SMTestProxy
testProxy
)
{
myEventPublisher
.
onTestIgnored
(
testProxy
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestIgnored
(
testProxy
);
}
}
public
abstract
void
onTestOutput
(
@NotNull
TestOutputEvent
testOutputEvent
);
public
abstract
void
onSuiteStarted
(
@NotNull
TestSuiteStartedEvent
suiteStartedEvent
);
protected
void
fireOnSuiteStarted
(
SMTestProxy
newSuite
)
{
myEventPublisher
.
onSuiteStarted
(
newSuite
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onSuiteStarted
(
newSuite
);
}
}
public
abstract
void
onSuiteFinished
(
@NotNull
TestSuiteFinishedEvent
suiteFinishedEvent
);
protected
void
fireOnSuiteFinished
(
SMTestProxy
mySuite
)
{
myEventPublisher
.
onSuiteFinished
(
mySuite
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onSuiteFinished
(
mySuite
);
}
}
public
abstract
void
onUncapturedOutput
(
@NotNull
String
text
,
Key
outputType
);
public
abstract
void
onError
(
@NotNull
String
localizedMessage
,
@Nullable
String
stackTrace
,
boolean
isCritical
);
protected
static
void
fireOnTestsReporterAttached
(
SMTestProxy
.
SMRootTestProxy
rootNode
)
{
rootNode
.
setTestsReporterAttached
();
}
public
abstract
void
onFinishTesting
();
protected
void
fireOnTestingFinished
(
SMTestProxy
.
SMRootTestProxy
root
)
{
myEventPublisher
.
onTestingFinished
(
root
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onTestingFinished
(
root
);
}
}
// custom progress statistics
...
...
@@ -102,13 +161,50 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
* If name is null statistics will be switched to normal mode
* @param testCount 0 will be considered as unknown tests number
*/
public
abstract
void
onCustomProgressTestsCategory
(
@Nullable
String
categoryName
,
int
testCount
);
public
void
onCustomProgressTestsCategory
(
@Nullable
final
String
categoryName
,
final
int
testCount
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestsCategory
(
categoryName
,
testCount
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onCustomProgressTestsCategory
(
categoryName
,
testCount
);
}
}
});
}
public
abstract
void
onCustomProgressTestStarted
();
public
void
onCustomProgressTestStarted
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestStarted
();
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onCustomProgressTestStarted
();
}
}
});
}
public
abstract
void
onCustomProgressTestFinished
();
public
void
onCustomProgressTestFinished
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFinished
();
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onCustomProgressTestFinished
();
}
}
});
}
public
abstract
void
onCustomProgressTestFailed
();
public
void
onCustomProgressTestFailed
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFailed
();
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onCustomProgressTestFailed
();
}
}
});
}
// workflow/service methods
...
...
@@ -117,9 +213,7 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
public
abstract
void
setLocator
(
@NotNull
SMTestLocator
locator
);
public
void
addEventsListener
(
@NotNull
SMTRunnerEventsListener
listener
)
{
final
MessageBusConnection
connection
=
myProject
.
getMessageBus
().
connect
();
myListenerAdapters
.
put
(
listener
,
connection
);
connection
.
subscribe
(
SMTRunnerEventsListener
.
TEST_STATUS
,
listener
);
myListenerAdapters
.
add
(
listener
);
}
public
abstract
void
setPrinterProvider
(
@NotNull
TestProxyPrinterProvider
printerProvider
);
...
...
@@ -137,9 +231,7 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
}
protected
void
disconnectListeners
()
{
for
(
MessageBusConnection
connection
:
myListenerAdapters
.
values
())
{
connection
.
disconnect
();
}
myListenerAdapters
.
clear
();
}
public
Condition
getDisposedCondition
()
{
...
...
This diff is collapsed.
Click to expand it.
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertor.java
+
17
-
44
View file @
8a0ae0d4
...
...
@@ -69,7 +69,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myTestsRootNode
.
setStarted
();
//fire
myEventPublisher
.
o
nTestingStarted
(
myTestsRootNode
);
fireO
nTestingStarted
(
myTestsRootNode
);
}
});
}
...
...
@@ -78,7 +78,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public
void
onTestsReporterAttached
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myTestsRootNode
.
set
TestsReporterAttached
();
fireOn
TestsReporterAttached
(
myTestsRootNode
);
}
});
}
...
...
@@ -105,7 +105,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
//fire events
myEventPublisher
.
o
nTestingFinished
(
myTestsRootNode
);
fireO
nTestingFinished
(
myTestsRootNode
);
}
});
stopEventProcessing
();
...
...
@@ -138,6 +138,9 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
}
getCurrentSuite
().
addChild
(
testProxy
);
myEventPublisher
.
onSuiteTreeNodeAdded
(
testProxy
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onSuiteTreeNodeAdded
(
testProxy
);
}
}
});
}
...
...
@@ -158,6 +161,9 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
mySuitesStack
.
pushSuite
(
newSuite
);
myEventPublisher
.
onSuiteTreeStarted
(
newSuite
);
for
(
SMTRunnerEventsListener
adapter
:
myListenerAdapters
)
{
adapter
.
onSuiteTreeStarted
(
newSuite
);
}
}
});
}
...
...
@@ -213,7 +219,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
testProxy
.
setStarted
();
//fire events
myEventPublisher
.
o
nTestStarted
(
testProxy
);
fireO
nTestStarted
(
testProxy
);
}
});
}
...
...
@@ -243,7 +249,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
newSuite
.
setStarted
();
//fire event
myEventPublisher
.
o
nSuiteStarted
(
newSuite
);
fireO
nSuiteStarted
(
newSuite
);
}
});
}
...
...
@@ -278,7 +284,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myRunningTestsFullNameToProxy
.
remove
(
fullTestName
);
//fire events
myEventPublisher
.
o
nTestFinished
(
testProxy
);
fireO
nTestFinished
(
testProxy
);
}
});
}
...
...
@@ -292,7 +298,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
mySuite
.
setFinished
();
//fire events
myEventPublisher
.
o
nSuiteFinished
(
mySuite
);
fireO
nSuiteFinished
(
mySuite
);
}
}
});
...
...
@@ -324,40 +330,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
}
});
}
public
void
onCustomProgressTestsCategory
(
@Nullable
final
String
categoryName
,
final
int
testCount
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestsCategory
(
categoryName
,
testCount
);
}
});
}
public
void
onCustomProgressTestStarted
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestStarted
();
}
});
}
public
void
onCustomProgressTestFinished
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFinished
();
}
});
}
public
void
onCustomProgressTestFailed
()
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
onCustomProgressTestFailed
();
}
});
}
public
void
onTestFailure
(
@NotNull
final
TestFailedEvent
testFailedEvent
)
{
addToInvokeLater
(
new
Runnable
()
{
...
...
@@ -424,7 +397,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myFailedTestsSet
.
add
(
testProxy
);
// fire event
myEventPublisher
.
o
nTestFailed
(
testProxy
);
fireO
nTestFailed
(
testProxy
);
}
});
}
...
...
@@ -461,7 +434,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
testProxy
.
setTestIgnored
(
ignoreComment
,
stackTrace
);
// fire event
myEventPublisher
.
o
nTestIgnored
(
testProxy
);
fireO
nTestIgnored
(
testProxy
);
}
});
}
...
...
@@ -494,7 +467,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public
void
onTestsCountInSuite
(
final
int
count
)
{
addToInvokeLater
(
new
Runnable
()
{
public
void
run
()
{
myEventPublisher
.
o
nTestsCountInSuite
(
count
);
fireO
nTestsCountInSuite
(
count
);
}
});
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment