You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2018/08/17 21:41:00 UTC
[jira] [Created] (DIRAPI-317) Non thread-safe tests could lead to
errors while running them
Emmanuel Lecharny created DIRAPI-317:
----------------------------------------
Summary: Non thread-safe tests could lead to errors while running them
Key: DIRAPI-317
URL: https://issues.apache.org/jira/browse/DIRAPI-317
Project: Directory Client API
Issue Type: Bug
Affects Versions: 2.0.0.AM1
Reporter: Emmanuel Lecharny
Fix For: 2.0.0
From time to time, we might get a test failure, like teh one reported on Jenkins :
{noformat}
java.lang.NullPointerException
at org.apache.directory.api.ldap.model.name.MultiThreadedTest.testNormalizeEquals(MultiThreadedTest.java:116)
{noformat}
This is due to the fact that we are modifying a static variable (the irony ;-) :
{code:java}
public class MultiThreadedTest
{
@Rule
public MultiThreadedMultiInvoker i = new MultiThreadedMultiInvoker( 100, 1000 );
private static Dn sharedDn;
...
@BeforeClass
public static void setup() throws Exception
{
schemaManager = new DefaultSchemaManager();
referenceDn = new Dn( schemaManager, "dc=example,dc=com" );
sharedDn = new Dn( schemaManager, "dc=example,dc=com" );
...
}
...
@Test
public void testNormalizeHashCode() throws Exception
{
assertEquals( referenceAva.hashCode(), sharedAva.hashCode() );
sharedRdn = new Rdn( schemaManager, sharedRdn );
assertEquals( referenceRdn.hashCode(), sharedRdn.hashCode() );
sharedDn = new Dn( schemaManager, sharedDn ); <------- This is *very* wrong
assertEquals( referenceDn.hashCode(), sharedDn.hashCode() );
}
...
{code}
Many of the tests are updating the {{sharedDn}} - and some of the other static declarations -, which may lead to invalid tests, as all the tests are ran concurrently.
This has to be fixed.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)