IGNITE-26815 CDC: Override embedded PG directory in IgniteToPostgreSql tests (#327)

diff --git a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationAbstractTest.java b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationAbstractTest.java
index 33d123c..cc3be50 100644
--- a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationAbstractTest.java
+++ b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationAbstractTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.cdc.postgresql;
 
+import java.io.File;
+import java.io.IOException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -25,6 +27,7 @@
 import java.util.Set;
 import javax.sql.DataSource;
 import io.zonky.test.db.postgres.embedded.EmbeddedPostgres;
+import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
@@ -35,6 +38,7 @@
 import org.apache.ignite.internal.cdc.CdcMain;
 import org.apache.ignite.internal.util.function.ThrowableFunction;
 import org.apache.ignite.internal.util.lang.GridAbsPredicate;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 
 import static org.apache.ignite.testframework.GridTestUtils.runAsync;
@@ -47,6 +51,36 @@
     /** */
     protected static final int KEYS_CNT = 1024;
 
+    /** Embedded Postgres working directory. */
+    private static File pgDir;
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        super.beforeTestsStarted();
+
+        // Clean up and set PG working directory in order to overcome possible inconsistent cleanup of '/tmp'.
+        pgDir = U.resolveWorkDirectory(U.defaultWorkDirectory(), "embedded-pg", true, false);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        super.afterTestsStopped();
+
+        U.delete(pgDir);
+    }
+
+    /** */
+    protected EmbeddedPostgres initPostgres() throws IgniteCheckedException, IOException {
+        // Clean up and set PG data directory in order to overcome possible inconsistent cleanup of '/tmp'.
+        File pgDataDir = U.resolveWorkDirectory(pgDir.getAbsolutePath(), "data", true, false);
+
+        return EmbeddedPostgres.builder()
+            .setOverrideWorkingDirectory(pgDir)
+            .setDataDirectory(pgDataDir)
+            .setCleanDataDirectory(true)
+            .start();
+    }
+
     /** */
     protected void executeOnIgnite(IgniteEx src, String sqlText, Object... args) {
         SqlFieldsQuery qry = new SqlFieldsQuery(sqlText).setArgs(args);
diff --git a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationTest.java b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationTest.java
index 60d8030..9bc9309 100644
--- a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationTest.java
+++ b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/CdcPostgreSqlReplicationTest.java
@@ -129,7 +129,7 @@
 
         src.cluster().state(ClusterState.ACTIVE);
 
-        postgres = EmbeddedPostgres.builder().start();
+        postgres = initPostgres();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/JavaToSqlTypeMapperTest.java b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/JavaToSqlTypeMapperTest.java
index 2b35833..0435f5a 100644
--- a/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/JavaToSqlTypeMapperTest.java
+++ b/modules/cdc-ext/src/test/java/org/apache/ignite/cdc/postgresql/JavaToSqlTypeMapperTest.java
@@ -117,7 +117,7 @@
 
         src.cluster().state(ClusterState.ACTIVE);
 
-        postgres = EmbeddedPostgres.builder().start();
+        postgres = initPostgres();
     }
 
     /** {@inheritDoc} */