Skip to content

Commit 4299df8

Browse files
VladoKurucdreab8
authored andcommitted
Informix tests fixes
Backport of hibernate#8874
1 parent 9e2aa7e commit 4299df8

File tree

18 files changed

+55
-7
lines changed

18 files changed

+55
-7
lines changed

docker_db.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,8 +908,11 @@ informix() {
908908
}
909909

910910
informix_14_10() {
911+
temp_dir=$(mktemp -d)
912+
echo "ALLOW_NEWLINE 1" >$temp_dir/onconfig.mod
913+
chmod 777 -R $temp_dir
911914
$PRIVILEGED_CLI $CONTAINER_CLI rm -f informix || true
912-
$PRIVILEGED_CLI $CONTAINER_CLI run --name informix --privileged -p 9088:9088 -e LICENSE=accept -e GL_USEGLU=1 -d ${DB_IMAGE_INFORMIX_14_10:-icr.io/informix/informix-developer-database:14.10.FC9W1DE}
915+
$PRIVILEGED_CLI $CONTAINER_CLI run --name informix --privileged -p 9088:9088 -v $temp_dir:/opt/ibm/config -e LICENSE=accept -e GL_USEGLU=1 -d ${DB_IMAGE_INFORMIX_14_10:-icr.io/informix/informix-developer-database:14.10.FC9W1DE}
913916
echo "Starting Informix. This can take a few minutes"
914917
# Give the container some time to start
915918
OUTPUT=

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/entity/Forest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.hibernate.annotations.SelectBeforeUpdate;
2828
import org.hibernate.annotations.Where;
2929

30+
import jakarta.persistence.Column;
3031
import jakarta.persistence.Convert;
3132
import jakarta.persistence.ElementCollection;
3233
import jakarta.persistence.Entity;
@@ -63,6 +64,7 @@ public class Forest {
6364

6465
@OptimisticLock(excluded=true)
6566
@JdbcTypeCode( Types.LONGVARCHAR )
67+
@Column(length = 10000)
6668
public String getLongDescription() {
6769
return longDescription;
6870
}

hibernate-core/src/test/java/org/hibernate/orm/test/annotations/uniqueconstraint/UniqueConstraintTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package org.hibernate.orm.test.annotations.uniqueconstraint;
88

99
import org.hibernate.JDBCException;
10+
import org.hibernate.community.dialect.InformixDialect;
1011
import org.hibernate.dialect.SybaseDialect;
1112

1213
import org.hibernate.testing.orm.junit.DomainModel;
@@ -27,6 +28,9 @@
2728
*/
2829
@DomainModel( annotatedClasses = { Room.class, Building.class, House.class } )
2930
@SessionFactory
31+
@SkipForDialect( dialectClass = InformixDialect.class,
32+
matchSubTypes = true,
33+
reason = "Informix does not properly support unique constraints on nullable columns" )
3034
@SkipForDialect( dialectClass = SybaseDialect.class,
3135
matchSubTypes = true,
3236
reason = "Sybase does not properly support unique constraints on nullable columns" )

hibernate-core/src/test/java/org/hibernate/orm/test/hql/HQLTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.hibernate.ScrollableResults;
2626
import org.hibernate.Session;
2727
import org.hibernate.community.dialect.FirebirdDialect;
28+
import org.hibernate.community.dialect.InformixDialect;
2829
import org.hibernate.dialect.CockroachDialect;
2930
import org.hibernate.dialect.DerbyDialect;
3031
import org.hibernate.dialect.H2Dialect;
@@ -1523,6 +1524,7 @@ public void test_hql_aggregate_functions_filter_example() {
15231524
@SkipForDialect(dialectClass = DerbyDialect.class)
15241525
@SkipForDialect(dialectClass = SybaseASEDialect.class)
15251526
@SkipForDialect(dialectClass = FirebirdDialect.class, reason = "order by not supported in list")
1527+
@SkipForDialect(dialectClass = InformixDialect.class)
15261528
public void test_hql_aggregate_functions_within_group_example() {
15271529
doInJPA(this::entityManagerFactory, entityManager -> {
15281530
//tag::hql-aggregate-functions-within-group-example[]

hibernate-core/src/test/java/org/hibernate/orm/test/id/array/PrimitiveByteArrayIdTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import jakarta.persistence.Id;
1414
import jakarta.persistence.Table;
1515

16+
import org.hibernate.community.dialect.InformixDialect;
1617
import org.hibernate.dialect.MySQLDialect;
1718
import org.hibernate.dialect.OracleDialect;
1819
import org.hibernate.query.Query;
@@ -35,6 +36,7 @@
3536
*/
3637
@SkipForDialect(dialectClass = MySQLDialect.class, majorVersion = 5, reason = "BLOB/TEXT column 'id' used in key specification without a key length")
3738
@SkipForDialect(dialectClass = OracleDialect.class, matchSubTypes = true, reason = "ORA-02329: column of datatype LOB cannot be unique or a primary key")
39+
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix does not support unique / primary constraints on binary columns")
3840
@DomainModel(
3941
annotatedClasses = PrimitiveByteArrayIdTest.DemoEntity.class
4042
)

hibernate-core/src/test/java/org/hibernate/orm/test/id/uuid/sqlrep/sqlbinary/UUIDBinaryTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.UUID;
1111

1212
import org.hibernate.annotations.JdbcTypeCode;
13+
import org.hibernate.community.dialect.InformixDialect;
1314
import org.hibernate.dialect.PostgreSQLDialect;
1415
import org.hibernate.dialect.SybaseDialect;
1516
import org.hibernate.metamodel.MappingMetamodel;
@@ -39,6 +40,7 @@
3940
@SkipForDialect(dialectClass = PostgreSQLDialect.class, reason = "Postgres has its own UUID type")
4041
@SkipForDialect( dialectClass = SybaseDialect.class, matchSubTypes = true,
4142
reason = "Skipped for Sybase to avoid problems with UUIDs potentially ending with a trailing 0 byte")
43+
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix does not support unique / primary constraints on binary columns")
4244
public class UUIDBinaryTest {
4345

4446
private static class UUIDPair {

hibernate-core/src/test/java/org/hibernate/orm/test/inheritance/InheritanceQueryGroupByTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
package org.hibernate.orm.test.inheritance;
88

9+
import org.hibernate.community.dialect.InformixDialect;
910
import org.hibernate.dialect.Dialect;
1011
import org.hibernate.dialect.FunctionalDependencyAnalysisSupport;
1112
import org.hibernate.metamodel.mapping.EntityMappingType;
@@ -16,6 +17,7 @@
1617
import org.hibernate.testing.orm.junit.Jira;
1718
import org.hibernate.testing.orm.junit.SessionFactory;
1819
import org.hibernate.testing.orm.junit.SessionFactoryScope;
20+
import org.hibernate.testing.orm.junit.SkipForDialect;
1921
import org.junit.jupiter.api.AfterAll;
2022
import org.junit.jupiter.api.BeforeAll;
2123
import org.junit.jupiter.api.Test;
@@ -86,6 +88,7 @@ public void testGroupBySingleTable(SessionFactoryScope scope) {
8688
}
8789

8890
@Test
91+
@SkipForDialect( dialectClass = InformixDialect.class , reason = "Informix does not support case expressions within the GROUP BY clause")
8992
public void testGroupByJoined(SessionFactoryScope scope) {
9093
testGroupBy( scope, "joinedParent", JoinedParent.class, "joined_child_one", 1 );
9194
}
@@ -162,6 +165,7 @@ public void testGroupByAndOrderBySingleTable(SessionFactoryScope scope) {
162165
}
163166

164167
@Test
168+
@SkipForDialect( dialectClass = InformixDialect.class , reason = "Informix does not support case expressions within the GROUP BY clause")
165169
public void testGroupByAndOrderByJoined(SessionFactoryScope scope) {
166170
testGroupByAndOrderBy( scope, "joinedParent", JoinedParent.class, "joined_child_one", 1 );
167171
}

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/criteria/QueryBuilderTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import jakarta.persistence.criteria.SetJoin;
2121
import jakarta.persistence.metamodel.EntityType;
2222
import jakarta.persistence.metamodel.Metamodel;
23+
24+
import org.hibernate.community.dialect.InformixDialect;
2325
import org.hibernate.dialect.CockroachDialect;
2426
import org.hibernate.orm.test.jpa.BaseEntityManagerFunctionalTestCase;
2527
import org.hibernate.orm.test.jpa.metamodel.Address;
@@ -38,8 +40,8 @@
3840
import org.hibernate.query.sqm.tree.predicate.SqmComparisonPredicate;
3941

4042
import org.hibernate.testing.FailureExpected;
41-
import org.hibernate.testing.SkipForDialect;
4243
import org.hibernate.testing.TestForIssue;
44+
import org.hibernate.testing.orm.junit.SkipForDialect;
4345
import org.junit.Test;
4446

4547
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
@@ -229,7 +231,7 @@ public void testMultiselectWithPredicates() {
229231
}
230232

231233
@Test
232-
@SkipForDialect(value = CockroachDialect.class, strictMatching = true)
234+
@SkipForDialect(dialectClass = CockroachDialect.class)
233235
public void testDateTimeFunctions() {
234236
EntityManager em = getOrCreateEntityManager();
235237
em.getTransaction().begin();
@@ -255,6 +257,7 @@ public void testDateTimeFunctions() {
255257
}
256258

257259
@Test
260+
@SkipForDialect(dialectClass = InformixDialect.class, majorVersion = 11, minorVersion = 70, reason = "Informix does not support count literals")
258261
public void testFunctionDialectFunctions() {
259262
EntityManager em = getOrCreateEntityManager();
260263
em.getTransaction().begin();

hibernate-core/src/test/java/org/hibernate/orm/test/length/LengthTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
package org.hibernate.orm.test.length;
22

33
import org.hibernate.Length;
4+
import org.hibernate.community.dialect.InformixDialect;
45
import org.hibernate.dialect.Dialect;
56
import org.hibernate.metamodel.mapping.BasicValuedMapping;
67
import org.hibernate.type.SqlTypes;
78

89
import org.hibernate.testing.orm.junit.DomainModel;
910
import org.hibernate.testing.orm.junit.SessionFactory;
1011
import org.hibernate.testing.orm.junit.SessionFactoryScope;
12+
import org.hibernate.testing.orm.junit.SkipForDialect;
1113
import org.junit.jupiter.api.Test;
1214

1315
import static org.junit.Assert.assertEquals;
1416

1517
@SessionFactory
1618
@DomainModel(annotatedClasses = {WithLongStrings.class,WithLongTypeStrings.class})
19+
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix rowsize to exceed the allowable limit (32767).")
1720
public class LengthTest {
1821
@Test
1922
public void testLength(SessionFactoryScope scope) {

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/generated/always/GeneratedAlwaysTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.hibernate.annotations.GeneratedColumn;
77
import org.hibernate.community.dialect.AltibaseDialect;
88
import org.hibernate.dialect.DerbyDialect;
9+
import org.hibernate.community.dialect.InformixDialect;
910
import org.hibernate.dialect.H2Dialect;
1011
import org.hibernate.dialect.HSQLDialect;
1112
import org.hibernate.dialect.PostgreSQLDialect;
@@ -33,6 +34,7 @@
3334
@SkipForDialect(dialectClass = PostgreSQLDialect.class, majorVersion = 10, matchSubTypes = true)
3435
@SkipForDialect(dialectClass = PostgreSQLDialect.class, majorVersion = 11, matchSubTypes = true) // 'generated always' was added in 12
3536
@SkipForDialect(dialectClass = AltibaseDialect.class, reason = "generated always is not supported in Altibase")
37+
@SkipForDialect(dialectClass = InformixDialect.class)
3638
public class GeneratedAlwaysTest {
3739

3840
@Test

0 commit comments

Comments
 (0)