29
29
import org .testng .internal .ClassHelper ;
30
30
import org .testng .internal .Configuration ;
31
31
import org .testng .internal .DynamicGraph ;
32
- import org .testng .internal .ExitCodeListener ;
32
+ import org .testng .internal .ExitCode ;
33
33
import org .testng .internal .IConfiguration ;
34
34
import org .testng .internal .IResultListener2 ;
35
35
import org .testng .internal .OverrideProcessor ;
@@ -143,14 +143,10 @@ public class TestNG {
143
143
private final Map <Class <? extends IReporter >, IReporter > m_reporters = Maps .newHashMap ();
144
144
private final Map <Class <? extends IDataProviderListener >, IDataProviderListener > m_dataProviderListeners = Maps .newHashMap ();
145
145
146
- protected static final int HAS_FAILURE = 1 ;
147
- protected static final int HAS_SKIPPED = 2 ;
148
- protected static final int HAS_FSP = 4 ;
149
146
protected static final int HAS_NO_TEST = 8 ;
150
147
151
148
public static final Integer DEFAULT_VERBOSE = 1 ;
152
149
153
- private int m_status ;
154
150
private boolean m_hasTests = false ;
155
151
156
152
// Command line suite parameters
@@ -186,7 +182,8 @@ public class TestNG {
186
182
private final Map <Class <? extends IAlterSuiteListener >, IAlterSuiteListener > m_alterSuiteListeners = Maps .newHashMap ();
187
183
188
184
private boolean m_isInitialized = false ;
189
- private org .testng .internal .ExitCodeListener m_exitCode ;
185
+ private org .testng .internal .ExitCodeListener exitCodeListener ;
186
+ private ExitCode exitCode ;
190
187
191
188
/**
192
189
* Default constructor. Setting also usage of default listeners/reporters.
@@ -213,11 +210,10 @@ private void init(boolean useDefaultListeners) {
213
210
}
214
211
215
212
public int getStatus () {
216
- return m_status ;
217
- }
218
-
219
- private void setStatus (int status ) {
220
- m_status = status ;
213
+ if (m_hasTests ) {
214
+ return exitCode .getExitCode ();
215
+ }
216
+ return HAS_NO_TEST ;
221
217
}
222
218
223
219
/**
@@ -965,8 +961,8 @@ private void addReporter(Class<? extends IReporter> r) {
965
961
}
966
962
967
963
private void initializeDefaultListeners () {
968
- this .m_exitCode = new org .testng .internal .ExitCodeListener ();
969
- addListener ((ITestNGListener ) this .m_exitCode );
964
+ this .exitCodeListener = new org .testng .internal .ExitCodeListener ();
965
+ addListener ((ITestNGListener ) this .exitCodeListener );
970
966
if (m_useDefaultListeners ) {
971
967
addReporter (SuiteHTMLReporter .class );
972
968
addReporter (Main .class );
@@ -1158,11 +1154,10 @@ public void run() {
1158
1154
}
1159
1155
1160
1156
runExecutionListeners (false /* finish */ );
1161
- m_hasTests = this .m_exitCode . isHasTests ();
1162
- setStatus ( this .m_exitCode .getStatus () );
1157
+ m_hasTests = this .exitCodeListener . hasTests ();
1158
+ exitCode = this .exitCodeListener .getStatus ();
1163
1159
1164
1160
if (!m_hasTests ) {
1165
- setStatus (HAS_NO_TEST );
1166
1161
if (TestRunner .getVerbose () > 1 ) {
1167
1162
System .err .println ("[TestNG] No tests found. Nothing was run" );
1168
1163
usage ();
@@ -1248,7 +1243,7 @@ private void generateReports(List<ISuite> suiteRunners) {
1248
1243
*/
1249
1244
public List <ISuite > runSuitesLocally () {
1250
1245
if (m_suites .isEmpty ()) {
1251
- setStatus ( HAS_NO_TEST ) ;
1246
+ this . m_hasTests = false ;
1252
1247
error ("No test suite found. Nothing to run" );
1253
1248
usage ();
1254
1249
return Collections .emptyList ();
@@ -1495,7 +1490,7 @@ public static TestNG privateMain(String[] argv, ITestListener listener) {
1495
1490
else {
1496
1491
error (ex .getMessage ());
1497
1492
}
1498
- result .setStatus ( HAS_FAILURE );
1493
+ result .exitCode = ExitCode . newExitCodeRepresentingFailure ( );
1499
1494
}
1500
1495
1501
1496
return result ;
@@ -1849,21 +1844,21 @@ protected static void validateCommandLineParameters(CommandLineArgs args) {
1849
1844
* @return true if at least one test failed.
1850
1845
*/
1851
1846
public boolean hasFailure () {
1852
- return ( getStatus () & HAS_FAILURE ) == HAS_FAILURE ;
1847
+ return this . exitCode . hasFailure () ;
1853
1848
}
1854
1849
1855
1850
/**
1856
1851
* @return true if at least one test failed within success percentage.
1857
1852
*/
1858
1853
public boolean hasFailureWithinSuccessPercentage () {
1859
- return ( getStatus () & HAS_FSP ) == HAS_FSP ;
1854
+ return this . exitCode . hasFailureWithinSuccessPercentage () ;
1860
1855
}
1861
1856
1862
1857
/**
1863
1858
* @return true if at least one test was skipped.
1864
1859
*/
1865
1860
public boolean hasSkip () {
1866
- return ( getStatus () & HAS_SKIPPED ) == HAS_SKIPPED ;
1861
+ return this . exitCode . hasSkip () ;
1867
1862
}
1868
1863
1869
1864
static void exitWithError (String msg ) {
@@ -1956,30 +1951,6 @@ public static TestNG getDefault() {
1956
1951
return m_instance ;
1957
1952
}
1958
1953
1959
- /**
1960
- * @deprecated since 5.1
1961
- */
1962
- @ Deprecated
1963
- public void setHasFailure (boolean hasFailure ) {
1964
- m_status |= HAS_FAILURE ;
1965
- }
1966
-
1967
- /**
1968
- * @deprecated since 5.1
1969
- */
1970
- @ Deprecated
1971
- public void setHasFailureWithinSuccessPercentage (boolean hasFailureWithinSuccessPercentage ) {
1972
- m_status |= HAS_FSP ;
1973
- }
1974
-
1975
- /**
1976
- * @deprecated since 5.1
1977
- */
1978
- @ Deprecated
1979
- public void setHasSkip (boolean hasSkip ) {
1980
- m_status |= HAS_SKIPPED ;
1981
- }
1982
-
1983
1954
@ Deprecated
1984
1955
/**
1985
1956
* @deprecated - This class stands deprecated as of TestNG v6.13
@@ -2002,21 +1973,16 @@ public void beforeConfiguration(ITestResult tr) {
2002
1973
@ Override
2003
1974
public void onTestFailure (ITestResult result ) {
2004
1975
setHasRunTests ();
2005
- m_mainRunner .setStatus (HAS_FAILURE );
2006
1976
}
2007
1977
2008
1978
@ Override
2009
1979
public void onTestSkipped (ITestResult result ) {
2010
1980
setHasRunTests ();
2011
- if ((m_mainRunner .getStatus () & HAS_FAILURE ) != 0 ) {
2012
- m_mainRunner .setStatus (HAS_SKIPPED );
2013
- }
2014
1981
}
2015
1982
2016
1983
@ Override
2017
1984
public void onTestFailedButWithinSuccessPercentage (ITestResult result ) {
2018
1985
setHasRunTests ();
2019
- m_mainRunner .setStatus (HAS_FSP );
2020
1986
}
2021
1987
2022
1988
@ Override
@@ -2047,15 +2013,13 @@ private void setHasRunTests() {
2047
2013
*/
2048
2014
@ Override
2049
2015
public void onConfigurationFailure (ITestResult itr ) {
2050
- m_mainRunner .setStatus (HAS_FAILURE );
2051
2016
}
2052
2017
2053
2018
/**
2054
2019
* @see org.testng.IConfigurationListener#onConfigurationSkip(org.testng.ITestResult)
2055
2020
*/
2056
2021
@ Override
2057
2022
public void onConfigurationSkip (ITestResult itr ) {
2058
- m_mainRunner .setStatus (HAS_SKIPPED );
2059
2023
}
2060
2024
2061
2025
/**
0 commit comments