[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
<script src="https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca.js"></script>
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
> or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
<script src="https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca.js"></script>
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> <script src="https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca.js"></script>
> Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
> or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see [materialized_lambda_jenkins_output.pdf] for the full output.
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
> or see the attached file [materialized_lambda_jenkins_output.pdf] for the full output.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
or see [materialized_lambda_jenkins_output.pdf] for the full output.
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> Stacktrace here: https://gist.github.com/hellowdan/fc1ceb5b640239a4f284c980540eeaca
> or see [materialized_lambda_jenkins_output.pdf] for the full output.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up, I can't see all perspectives.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions. The tests might be changed to have the same behaviour of the operating system, but I believe that the software should take care of this situation.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up, I can't see all perspectives.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
> 03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
> 03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
> 03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
> 03:39:57 java.lang.AssertionError:
> 03:39:57
> 03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
> 03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
> 03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
> 03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
> 03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
> 03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
> 03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
> 03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> 03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> 03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> 03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
[ https://issues.redhat.com/browse/DROOLS-5065?page=com.atlassian.jira.plug... ]
Daniel Rosa updated DROOLS-5065:
--------------------------------
Description:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
was:
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up, I can't see all perspectives.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
> md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
> -----------------------------------------------------------------------------
>
> Key: DROOLS-5065
> URL: https://issues.redhat.com/browse/DROOLS-5065
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.33.0.Final
> Reporter: Daniel Rosa
> Assignee: Mario Fusco
> Priority: Minor
> Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
>
>
> Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions.
> If there is any customer's use case related to this usage, I believe that the software should deal with the compatibility between different operating systems.
> If the hash isn't stored and computed only on runtime, the test approch might be changed to compute the hash on the same way it is in production instead of loading it from stored files. Or a different solution might stood up.
> Failing tests:
> * MaterializedLambdaPredicateTest.createClassWithOneParameter
> * MaterializedLambdaPredicateTest.createClassWithTwoParameters
> * MaterializedLambdaExtractorTest.createExtractor
> * MaterializedLambdaConsequenceTest.createConsequence
> * ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
> * ExecModelLambdaPostProcessorTest.convertPatternLambda
> If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
> See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
> 03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
> 03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
> 03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
> 03:39:57 java.lang.AssertionError:
> 03:39:57
> 03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
> 03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
> 03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
> 03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
> 03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
> 03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
> 03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
> 03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> 03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> 03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> 03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
> 03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
> 03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5065) md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
by Daniel Rosa (Jira)
Daniel Rosa created DROOLS-5065:
-----------------------------------
Summary: md5Hash results with line endings \r\n on MaterializedLambda tests on Windows
Key: DROOLS-5065
URL: https://issues.redhat.com/browse/DROOLS-5065
Project: Drools
Issue Type: Bug
Affects Versions: 7.33.0.Final
Reporter: Daniel Rosa
Assignee: Mario Fusco
Attachments: materialized_lambda_hash.patch, materialized_lambda_jenkins_output.pdf
Several testes are failing on org.drools.modelcompiler.util.lambdareplace package due the md5Hash function called on className method on classes which extend MatarializedLamda class because Windows consider \r\n as line endings. So the md5Hash results different hashcodes than the expected on assertions. The tests might be changed to have the same behaviour of the operating system, but I believe that the software should take care of this situation.
Failing tests:
* MaterializedLambdaPredicateTest.createClassWithOneParameter
* MaterializedLambdaPredicateTest.createClassWithTwoParameters
* MaterializedLambdaExtractorTest.createExtractor
* MaterializedLambdaConsequenceTest.createConsequence
* ExecModelLambdaPostProcessorTest.convertFlowLambdaDoNotConvertConsequenceWhenDrools
* ExecModelLambdaPostProcessorTest.convertPatternLambda
If the \r is removed when calling md5Hash function, all testes pass. See the attachment [materialized_lambda_hash.patch].
See this output instance on Jenkins (see [materialized_lambda_jenkins_output.pdf] for the full output):
03:39:57 [INFO] Running org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest
03:39:57 [ERROR] createClassWithOneParameter(org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest) Time elapsed: 0.015 s <<< FAILURE!
03:39:57 java.lang.AssertionError:
03:39:57
03:39:57 Expected: equalToIgnoringWhiteSpace("package org.drools.modelcompiler.util.lambdareplace;\nimport static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicateE80C351B847736E5C59FD9AEAA280D96 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> {\n INSTANCE; \npublic static final String EXPRESSION_HASH = \"4DEB93975D9859892B1A5FD4B38E2155\"; @Override()\n public boolean test(org.drools.modelcompiler.domain.Person p) {\n return p.getAge() > 35;\n }\n }\n")
03:39:57 but: was package org.drools.modelcompiler.util.lambdareplace; import static rulename.*; import org.drools.modelcompiler.dsl.pattern.D; @org.drools.compiler.kie.builder.MaterializedLambda() public enum LambdaPredicate425FBB5FADBC73A980E3A8CE22FB92A0 implements org.drools.model.functions.Predicate1<org.drools.modelcompiler.domain.Person> { INSTANCE; public static final String EXPRESSION_HASH = "4DEB93975D9859892B1A5FD4B38E2155"; @Override() public boolean test(org.drools.modelcompiler.domain.Person p) { return p.getAge() > 35; } }
03:39:57 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
03:39:57 at org.junit.Assert.assertThat(Assert.java:956)
03:39:57 at org.junit.Assert.assertThat(Assert.java:923)
03:39:57 at org.drools.modelcompiler.util.lambdareplace.MaterializedLambdaPredicateTest.createClassWithOneParameter(MaterializedLambdaPredicateTest.java:34)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
03:39:57 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
03:39:57 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
03:39:57 at java.lang.reflect.Method.invoke(Method.java:498)
03:39:57 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
03:39:57 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
03:39:57 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
03:39:57 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
03:39:57 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
03:39:57 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
03:39:57 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
03:39:57 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
03:39:57 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
03:39:57 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
03:39:57 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
03:39:57 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
03:39:57 at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
03:39:57 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months