You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2011/08/25 16:37:50 UTC
svn commit: r1161579 - in /maven/surefire/trunk:
maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/
surefire-booter/src/main/java/org/apache/maven/surefire/booter/
surefire-integration-tests/src/test/java/org/apache/mave...
Author: krosenvold
Date: Thu Aug 25 14:37:50 2011
New Revision: 1161579
URL: http://svn.apache.org/viewvc?rev=1161579&view=rev
Log:
[SUREFIRE-763] environmentVariables fails with useSystemClassLoader=false or forkMode=always
Fixed with testcase
Added:
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java (contents, props changed)
- copied, changed from r1160400, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java (with props)
Modified:
maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ForkModeTestNGIT.java (contents, props changed)
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java (contents, props changed)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/pom.xml (contents, props changed)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java (contents, props changed)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java (contents, props changed)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java (contents, props changed)
Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java Thu Aug 25 14:37:50 2011
@@ -26,22 +26,22 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
import org.apache.maven.surefire.booter.BooterDeserializer;
import org.apache.maven.surefire.booter.ClassLoaderConfiguration;
import org.apache.maven.surefire.booter.ClasspathConfiguration;
import org.apache.maven.surefire.booter.ProviderConfiguration;
import org.apache.maven.surefire.booter.StartupConfiguration;
import org.apache.maven.surefire.booter.SystemPropertyManager;
+import org.apache.maven.surefire.booter.TypeEncodedValue;
import org.apache.maven.surefire.report.ReporterConfiguration;
import org.apache.maven.surefire.testset.DirectoryScannerParameters;
import org.apache.maven.surefire.testset.TestArtifactInfo;
import org.apache.maven.surefire.testset.TestRequest;
import org.apache.maven.surefire.util.RunOrder;
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
/**
* Performs roundtrip testing of serialization/deserialization of the ProviderConfiguration
*
@@ -51,7 +51,7 @@ public class BooterDeserializerProviderC
extends TestCase
{
- private final String aTest = "aTest";
+ public static final TypeEncodedValue aTestTyped = new TypeEncodedValue( String.class.getName(), "aTest" );
private final String aUserRequestedTest = "aUserRequestedTest";
@@ -128,7 +128,7 @@ public class BooterDeserializerProviderC
throws IOException
{
final ProviderConfiguration reloaded = getReloadedProviderConfiguration();
- Assert.assertEquals( aTest, reloaded.getTestForForkString() );
+ Assert.assertEquals( aTestTyped, reloaded.getTestForFork() );
}
@@ -170,6 +170,7 @@ public class BooterDeserializerProviderC
final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration();
Properties props = new Properties();
BooterSerializer booterSerializer = new BooterSerializer( forkConfiguration, props );
+ String aTest = "aTest";
booterSerializer.serialize( booterConfiguration, testProviderConfiguration, aTest, "never" );
final File propsTest =
SystemPropertyManager.writePropertiesFile( props, forkConfiguration.getTempDirectory(), "propsTest", true );
@@ -181,15 +182,14 @@ public class BooterDeserializerProviderC
{
File cwd = new File( "." );
- ReporterConfiguration reporterConfiguration =
- new ReporterConfiguration( cwd, Boolean.TRUE );
+ ReporterConfiguration reporterConfiguration = new ReporterConfiguration( cwd, Boolean.TRUE );
String aUserRequestedTestMethod = "aUserRequestedTestMethod";
TestRequest testSuiteDefinition =
new TestRequest( getSuiteXmlFileStrings(), getTestSourceDirectory(), aUserRequestedTest,
aUserRequestedTestMethod );
return new ProviderConfiguration( directoryScannerParameters, true, reporterConfiguration,
new TestArtifactInfo( "5.0", "ABC" ), testSuiteDefinition, new Properties(),
- aTest );
+ aTestTyped );
}
private StartupConfiguration getTestStartupConfiguration( ClassLoaderConfiguration classLoaderConfiguration )
Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java Thu Aug 25 14:37:50 2011
@@ -50,8 +50,6 @@ public class BooterDeserializerStartupCo
{
private final ClasspathConfiguration classpathConfiguration = createClasspathConfiguration();
- private final String aTest = "aTest";
-
public void testProvider()
throws IOException
{
@@ -129,6 +127,7 @@ public class BooterDeserializerStartupCo
final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration();
Properties props = new Properties();
BooterSerializer booterSerializer = new BooterSerializer( forkConfiguration, props );
+ String aTest = "aTest";
booterSerializer.serialize( getProviderConfiguration(), startupConfiguration, aTest, "never" );
final File propsTest =
SystemPropertyManager.writePropertiesFile( props, forkConfiguration.getTempDirectory(), "propsTest", true );
@@ -150,7 +149,7 @@ public class BooterDeserializerStartupCo
aUserRequestedTestMethod );
return new ProviderConfiguration( directoryScannerParameters, true, reporterConfiguration,
new TestArtifactInfo( "5.0", "ABC" ), testSuiteDefinition, new Properties(),
- aTest );
+ BooterDeserializerProviderConfigurationTest.aTestTyped );
}
private StartupConfiguration getTestStartupConfiguration( ClassLoaderConfiguration classLoaderConfiguration )
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java Thu Aug 25 14:37:50 2011
@@ -60,7 +60,7 @@ public class BooterDeserializer
final File reportsDirectory = new File( properties.getProperty( REPORTSDIRECTORY ) );
final String testNgVersion = properties.getProperty( TESTARTIFACT_VERSION );
final String testArtifactClassifier = properties.getProperty( TESTARTIFACT_CLASSIFIER );
- final Object testForFork = properties.getTypeDecoded( FORKTESTSET );
+ final TypeEncodedValue typeEncodedTestForFork = properties.getTypeEncodedValue( FORKTESTSET );
final String requestedTest = properties.getProperty( REQUESTEDTEST );
final String requestedTestMethod = properties.getProperty( REQUESTEDTESTMETHOD );
final File sourceDirectory = properties.getFileProperty( SOURCE_DIRECTORY );
@@ -85,7 +85,7 @@ public class BooterDeserializer
return new ProviderConfiguration( dirScannerParams, properties.getBooleanProperty( FAILIFNOTESTS ),
reporterConfiguration, testNg, testSuiteDefinition,
- properties.getProperties(), testForFork );
+ properties.getProperties(), typeEncodedTestForFork );
}
public StartupConfiguration getProviderConfiguration()
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java Thu Aug 25 14:37:50 2011
@@ -51,7 +51,6 @@ public class ForkedBooter
{
try
{
- long start = System.currentTimeMillis();
if ( args.length > 1 )
{
SystemPropertyManager.setSystemProperties( new File( args[1] ) );
@@ -63,12 +62,11 @@ public class ForkedBooter
ProviderConfiguration booterConfiguration = booterDeserializer.deserialize();
final StartupConfiguration providerConfiguration = booterDeserializer.getProviderConfiguration();
-
SurefireStarter starter = new SurefireStarter( providerConfiguration, booterConfiguration, null );
- Object forkedTestSet = booterConfiguration.getTestForFork();
+ TypeEncodedValue forkedTestSet = booterConfiguration.getTestForFork();
final RunResult result = forkedTestSet != null
- ? starter.runSuitesInProcessWhenForked(forkedTestSet )
+ ? starter.runSuitesInProcessWhenForked( forkedTestSet )
: starter.runSuitesInProcessWhenForked();
// noinspection CallToSystemExit
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java Thu Aug 25 14:37:50 2011
@@ -19,14 +19,11 @@ package org.apache.maven.surefire.booter
* under the License.
*/
-import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
-import org.apache.maven.surefire.util.NestedRuntimeException;
-import org.apache.maven.surefire.util.ReflectionUtils;
import org.apache.maven.surefire.util.internal.StringUtils;
/**
@@ -83,7 +80,8 @@ public class PropertiesWrapper
{
return null;
}
- return (File) getParamValue( property, File.class.getName() );
+ TypeEncodedValue typeEncodedValue = new TypeEncodedValue( File.class.getName(), property );
+ return (File) typeEncodedValue.getDecodedValue();
}
public List getStringList( String propertyPrefix )
@@ -104,7 +102,7 @@ public class PropertiesWrapper
* @param key The key for the propery
* @return The object, of a supported type
*/
- public Object getTypeDecoded( String key )
+ public TypeEncodedValue getTypeEncodedValue( String key )
{
String typeEncoded = getProperty( key );
if ( typeEncoded == null )
@@ -114,89 +112,9 @@ public class PropertiesWrapper
int typeSep = typeEncoded.indexOf( "|" );
String type = typeEncoded.substring( 0, typeSep );
String value = typeEncoded.substring( typeSep + 1 );
- return getParamValue( value, type );
+ return new TypeEncodedValue( type, value );
}
- private Object getParamValue( String param, String typeName )
- {
- if ( typeName.trim().length() == 0 )
- {
- return null;
- }
- else if ( typeName.equals( String.class.getName() ) )
- {
- return param;
- }
- else if ( typeName.equals( Class.class.getName() ) )
- {
- return ReflectionUtils.loadClass( Thread.currentThread().getContextClassLoader(), param );
- }
- else if ( typeName.equals( File.class.getName() ) )
- {
- return new File( param );
- }
- else if ( typeName.equals( File[].class.getName() ) )
- {
- List stringList = processStringList( param );
- File[] fileList = new File[stringList.size()];
- for ( int j = 0; j < stringList.size(); j++ )
- {
- fileList[j] = new File( (String) stringList.get( j ) );
- }
- return fileList;
- }
- else if ( typeName.equals( ArrayList.class.getName() ) )
- {
- return processStringList( param );
- }
- else if ( typeName.equals( Boolean.class.getName() ) )
- {
- return Boolean.valueOf( param );
- }
- else if ( typeName.equals( Integer.class.getName() ) )
- {
- return Integer.valueOf( param );
- }
- else if ( typeName.equals( Properties.class.getName() ) )
- {
- final Properties result = new Properties();
- try
- {
- ByteArrayInputStream bais = new ByteArrayInputStream( param.getBytes( "8859_1" ) );
- result.load( bais );
- }
- catch ( Exception e )
- {
- throw new NestedRuntimeException( "bug in property conversion", e );
- }
- return result;
- }
- else
- {
- // TODO: could attempt to construct with a String constructor if needed
- throw new IllegalArgumentException( "Unknown parameter type: " + typeName );
- }
- }
-
- private static List processStringList( String stringList )
- {
- String sl = stringList;
-
- if ( sl.startsWith( "[" ) && sl.endsWith( "]" ) )
- {
- sl = sl.substring( 1, sl.length() - 1 );
- }
-
- List list = new ArrayList();
-
- String[] stringArray = StringUtils.split( sl, "," );
-
- for ( int i = 0; i < stringArray.length; i++ )
- {
- list.add( stringArray[i].trim() );
- }
- return list;
- }
public void setProperty( String key, File file )
{
@@ -214,7 +132,7 @@ public class PropertiesWrapper
}
}
- Classpath getClasspath( String prefix )
+ Classpath getClasspath( String prefix )
{
List elements = getStringList( prefix );
return new Classpath( elements );
@@ -246,7 +164,7 @@ public class PropertiesWrapper
return;
}
int i = 0;
- for (Iterator iterator = items.iterator(); iterator.hasNext();)
+ for ( Iterator iterator = items.iterator(); iterator.hasNext(); )
{
Object item = iterator.next();
if ( item == null )
@@ -254,7 +172,7 @@ public class PropertiesWrapper
throw new NullPointerException( propertyPrefix + i + " has null value" );
}
- String[] stringArray = StringUtils.split(item.toString(), ",");
+ String[] stringArray = StringUtils.split( item.toString(), "," );
for ( int j = 0; j < stringArray.length; j++ )
{
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java Thu Aug 25 14:37:50 2011
@@ -60,11 +60,12 @@ public class ProviderConfiguration
private final boolean failIfNoTests;
- private final Object forkTestSet;
+ private final TypeEncodedValue forkTestSet;
public ProviderConfiguration( DirectoryScannerParameters directoryScannerParameters, boolean failIfNoTests,
ReporterConfiguration reporterConfiguration, TestArtifactInfo testArtifact,
- TestRequest testSuiteDefinition, Properties providerProperties, Object forkTestSet )
+ TestRequest testSuiteDefinition, Properties providerProperties,
+ TypeEncodedValue typeEncodedTestSet )
{
this.providerProperties = providerProperties;
this.reporterConfiguration = reporterConfiguration;
@@ -72,7 +73,7 @@ public class ProviderConfiguration
this.testSuiteDefinition = testSuiteDefinition;
this.dirScannerParams = directoryScannerParameters;
this.failIfNoTests = failIfNoTests;
- this.forkTestSet = forkTestSet;
+ this.forkTestSet = typeEncodedTestSet;
}
@@ -123,19 +124,10 @@ public class ProviderConfiguration
return providerProperties;
}
- public Object getTestForFork()
+ public TypeEncodedValue getTestForFork()
{
return forkTestSet;
}
- public String getTestForForkString()
- {
- if ( forkTestSet instanceof File )
- {
- return forkTestSet.toString();
- }
- return (String) forkTestSet;
- }
-
}
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java Thu Aug 25 14:37:50 2011
@@ -25,6 +25,7 @@ import org.apache.maven.surefire.report.
import org.apache.maven.surefire.suite.RunResult;
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.NestedRuntimeException;
+import org.apache.maven.surefire.util.ReflectionUtils;
/**
* Invokes surefire with the correct classloader setup.
@@ -57,7 +58,7 @@ public class SurefireStarter
this.startupReportConfiguration = startupReportConfiguration;
}
- public RunResult runSuitesInProcessWhenForked( Object testSet )
+ public RunResult runSuitesInProcessWhenForked( TypeEncodedValue testSet )
throws SurefireExecutionException
{
writeSurefireTestClasspathProperty();
@@ -75,7 +76,9 @@ public class SurefireStarter
final Object forkingReporterFactory = createForkingReporterFactory( surefireReflector );
- return invokeProvider( testSet, testsClassLoader, surefireClassLoader, forkingReporterFactory );
+ Object test = testSet.getDecodedValue();
+
+ return invokeProvider( test, testsClassLoader, surefireClassLoader, forkingReporterFactory );
}
private Object createForkingReporterFactory( SurefireReflector surefireReflector )
Added: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java?rev=1161579&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java (added)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java Thu Aug 25 14:37:50 2011
@@ -0,0 +1,126 @@
+package org.apache.maven.surefire.booter;
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.util.Properties;
+import org.apache.maven.surefire.util.NestedRuntimeException;
+import org.apache.maven.surefire.util.ReflectionUtils;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class TypeEncodedValue
+{
+ String type;
+
+ String value;
+
+ public TypeEncodedValue( String type, String value )
+ {
+ this.type = type;
+ this.value = value;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public boolean isTypeClass()
+ {
+ return Class.class.getName().equals( type );
+ }
+
+ public Object getDecodedValue()
+ {
+ if ( type.trim().length() == 0 )
+ {
+ return null;
+ }
+ else if ( type.equals( String.class.getName() ) )
+ {
+ return value;
+ }
+ else if ( isTypeClass() )
+ {
+ return ReflectionUtils.loadClass( Thread.currentThread().getContextClassLoader(), value );
+ }
+ else if ( type.equals( File.class.getName() ) )
+ {
+ return new File( value );
+ }
+ else if ( type.equals( Boolean.class.getName() ) )
+ {
+ return Boolean.valueOf( value );
+ }
+ else if ( type.equals( Integer.class.getName() ) )
+ {
+ return Integer.valueOf( value );
+ }
+ else if ( type.equals( Properties.class.getName() ) )
+ {
+ final Properties result = new Properties();
+ try
+ {
+ ByteArrayInputStream bais = new ByteArrayInputStream( value.getBytes( "8859_1" ) );
+ result.load( bais );
+ }
+ catch ( Exception e )
+ {
+ throw new NestedRuntimeException( "bug in property conversion", e );
+ }
+ return result;
+ }
+ else
+ {
+ throw new IllegalArgumentException( "Unknown parameter type: " + type );
+ }
+ }
+
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ TypeEncodedValue that = (TypeEncodedValue) o;
+
+ if ( type != null ? !type.equals( that.type ) : that.type != null )
+ {
+ return false;
+ }
+ return !( value != null ? !value.equals( that.value ) : that.value != null );
+
+ }
+
+ public int hashCode()
+ {
+ int result = type != null ? type.hashCode() : 0;
+ result = 31 * result + ( value != null ? value.hashCode() : 0 );
+ return result;
+ }
+}
Propchange: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/TypeEncodedValue.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ForkModeTestNGIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ForkModeTestNGIT.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ForkModeTestNGIT.java
('svn:executable' removed)
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java
('svn:executable' removed)
Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java (from r1160400, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java&r1=1160400&r2=1161579&rev=1161579&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestMethodPatternAfterIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java Thu Aug 25 14:37:50 2011
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.its;
+package org.apache.maven.surefire.its.misc;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,26 +19,34 @@ package org.apache.maven.surefire.its;
*/
+import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+
/**
- * Test project using -Dtest=mtClass#myMethod*
+ * SUREFIRE-674 Asserts that the build fails when tests have errors
*
- * @author <a href="mailto:olamy@apache.org">Olivier Lamy</a>
+ * @author Kristian Rosenvold
*/
-public class TestNgTestMethodPatternAfterIT
- extends AsbtractTestMethodPattern
+public class Surefire763EnvironmentForkMode
+ extends SurefireVerifierTestClass
{
- public TestNgTestMethodPatternAfterIT()
+
+ public Surefire763EnvironmentForkMode()
{
- super( "/testng-method-pattern-after" );
+ super( "/environment-variables" );
+ }
+
+ public void okWhenUseSystemClassLoader()
+ throws Exception
+ {
+ addGoal( "-DuseSystemClassLoader=true" );
+ executeTest();
}
- public void testMethodPattern()
+ public void okeWhenDontUseSystemClassLoader()
throws Exception
{
+ addGoal( "-DuseSystemClassLoader=false" );
executeTest();
- verifyErrorFreeLog();
- verifyTextInLog( "Called tearDown" );
- assertTestSuiteResults( 2, 0, 0, 0 );
}
-}
+}
\ No newline at end of file
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkMode.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml?rev=1161579&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml Thu Aug 25 14:37:50 2011
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.plugins.surefire</groupId>
+ <artifactId>environment-variables</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <name>Test for checking environment variables into forks</name>
+
+ <properties>
+ <forkMode>always</forkMode>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <configuration>
+ <forkMode>${forkMode}</forkMode>
+ <useSystemClassLoader>${useSystemClassLoader}</useSystemClassLoader>
+ <environmentVariables>
+ <DUMMY_ENV_VAR>foo</DUMMY_ENV_VAR>
+ </environmentVariables>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java?rev=1161579&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java Thu Aug 25 14:37:50 2011
@@ -0,0 +1,21 @@
+package environment;
+import org.junit.Assert;
+import org.junit.Test;
+
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsNull.notNullValue;
+
+
+public class BasicTest
+{
+
+
+ @Test
+ public void testEnvVar()
+ {
+ Assert.assertThat( System.getenv( "PATH" ), notNullValue() );
+ Assert.assertThat( System.getenv( "DUMMY_ENV_VAR" ), is( "foo" ) );
+ }
+
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/environment-variables/src/test/java/environment/BasicTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/pom.xml?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/pom.xml
('svn:executable' removed)
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java
('svn:executable' removed)
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java
('svn:executable' removed)
Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java?rev=1161579&r1=1161578&r2=1161579&view=diff
==============================================================================
(empty)
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java
('svn:executable' removed)