[hibernate-dev] Unit test failures using the new metamodel

Gail Badner gbadner at redhat.com
Thu Aug 2 01:56:43 EDT 2012


I'm seeing the following failures using hibernate.test.new_metadata_mappings=true that appear to be regressions:

- org.hibernate.jpa.test.connection.DataSourceInjectionTest fails (also fails using the old metadata);
- org.hibernate.test.annotations.lob.LobTest.testSerializableToBlob
- org.hibernate.test.naturalid.mutable.cached.CachedMutableNaturalIdTest.testChangedNaturalIdNotCachedAfterTransactionFailure

Strong and Hardy, do you have an ideas about any of these?

Also, there were numerous failures in hibernate-core when building with hibernate.test.validatefailureexpected=true, which validates that those tests annotated with @FailureExpected or @FailureExpectedWithNewMetamodel actually fail. If an annotated test does not fail as expected, org.hibernate.testing.junit4.FailureExpectedHandler$FailureExpectedTestPassedException is thrown causing the test to fail.

In most cases this is happening because there is some new functionality working now (e.g., sequences and other persistent ID generators) that was not working when John added @FailureExpectedWithNewMetamodel. The fix in these cases is to simply remove @FailureExpectedWithNewMetamodel.

When hibernate.test.validatefailureexpected is false (the default), the result from FailureExpected tests is simply ignored.

I've gone ahead and pushed a fix that removes @FailureExpectedWithNewMetamodel from those tests that succeed without the annotation.

There are 2 tests where this does not work:
    org.hibernate.test.annotations.interfaces.InterfacesTest
    org.hibernate.test.annotations.idmanytoone.alphabetical.AlphabeticalIdManyToOneTest

These tests fail with org.hibernate.cfg.NotYetImplementedException when the sources are being processed. For some reason. this failure is not recognized as an expected failure. I'm not sure of the reason for this.

It seems that now would be a good time to make both hibernate.test.new_metadata_mappings=true and hibernate.test.validatefailureexpected=true the default when building. That way we'll know when to remove @FailureExpectedWithNewMetamodel from tests that succeed due to added functionality. It will also help us know when there are regressions.

WDYT?

Regards,
Gail


More information about the hibernate-dev mailing list