This is an automated email from the ASF dual-hosted git repository.

chengchengjin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 37ab260cec [GLUTEN-9335][VL] Enable tests ignored because lack 
metadata and enable spark35 CI (#10496)
37ab260cec is described below

commit 37ab260cec30ea5d5ef5e6d5c3496dedb77c7583
Author: Jin Chengcheng <[email protected]>
AuthorDate: Thu Aug 21 11:42:29 2025 +0100

    [GLUTEN-9335][VL] Enable tests ignored because lack metadata and enable 
spark35 CI (#10496)
---
 .../workflows/velox_backend_enhanced_features.yml  | 106 ++++++++++++++++++++-
 .../extensions/TestGlutenMergeOnReadDelete.java    |   5 -
 .../source/TestGlutenIcebergSourceHiveTables.java  |  21 +---
 .../gluten/sql/TestGlutenAggregatePushDown.java    |  96 +++++++++----------
 4 files changed, 152 insertions(+), 76 deletions(-)

diff --git a/.github/workflows/velox_backend_enhanced_features.yml 
b/.github/workflows/velox_backend_enhanced_features.yml
index 5ba5c785ec..10ab11b64e 100644
--- a/.github/workflows/velox_backend_enhanced_features.yml
+++ b/.github/workflows/velox_backend_enhanced_features.yml
@@ -149,4 +149,108 @@ jobs:
         uses: actions/upload-artifact@v4
         with:
           name: ${{ github.job }}-golden-files
-          path: /tmp/tpch-approved-plan/**
\ No newline at end of file
+          path: /tmp/tpch-approved-plan/**
+
+  spark-test-spark35:
+    needs: build-native-lib-centos-7
+    runs-on: ubuntu-22.04
+    container: apache/gluten:centos-8-jdk8
+    steps:
+      - uses: actions/checkout@v2
+      - name: Download All Artifacts
+        uses: actions/download-artifact@v4
+        with:
+          name: velox-native-lib-enhanced-centos-7-${{github.sha}}
+          path: ./cpp/build/releases
+      - name: Download Arrow Jars
+        uses: actions/download-artifact@v4
+        with:
+          name: arrow-jars-enhanced-centos-7-${{github.sha}}
+          path: /root/.m2/repository/org/apache/arrow/
+      - name: Prepare spark.test.home for Spark 3.4.4 (other tests)
+        run: |
+          dnf module -y install python39 && \
+          alternatives --set python3 /usr/bin/python3.9 && \
+          pip3 install setuptools==77.0.3 && \
+          pip3 install pyspark==3.4.4 cython && \
+          pip3 install pandas==2.2.3 pyarrow==20.0.0
+      - name: Build and Run unit test for Spark 3.5.5 (other tests)
+        run: |
+          cd $GITHUB_WORKSPACE/
+          export SPARK_SCALA_VERSION=2.12
+          yum install -y java-17-openjdk-devel
+          export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
+          export PATH=$JAVA_HOME/bin:$PATH
+          java -version
+          export SPARK_HOME=/opt/shims/spark34/spark_home/
+          ls -l $SPARK_HOME
+          $MVN_CMD clean test -Pspark-3.5 -Pjava-17 -Pbackends-velox -Piceberg 
-Pdelta -Phudi \
+          
-DtagsToExclude=org.apache.spark.tags.ExtendedSQLTest,org.apache.gluten.tags.UDFTest,org.apache.gluten.tags.SkipTest
 \
+          -DargLine="-Dspark.test.home=$SPARK_HOME"
+      - name: Upload test report
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ github.job }}-report
+          path: '**/surefire-reports/TEST-*.xml'
+      - name: Upload unit tests log files
+        if: ${{ !success() }}
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ github.job }}-test-log
+          path: |
+            **/target/*.log
+            **/gluten-ut/**/hs_err_*.log
+            **/gluten-ut/**/core.*
+      - name: Upload golden files
+        if: failure()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ github.job }}-golden-files
+          path: /tmp/tpch-approved-plan/**
+
+  spark-test-spark35-slow:
+    needs: build-native-lib-centos-7
+    runs-on: ubuntu-22.04
+    container: apache/gluten:centos-8-jdk8
+    steps:
+      - uses: actions/checkout@v2
+      - name: Download All Artifacts
+        uses: actions/download-artifact@v4
+        with:
+          name: velox-native-lib-enhanced-centos-7-${{github.sha}}
+          path: ./cpp/build/releases
+      - name: Download Arrow Jars
+        uses: actions/download-artifact@v4
+        with:
+          name: arrow-jars-enhanced-centos-7-${{github.sha}}
+          path: /root/.m2/repository/org/apache/arrow/
+      - name: Prepare Spark Resources for Spark 3.5.5
+        run: |
+          rm -rf /opt/shims/spark35
+          bash .github/workflows/util/install_spark_resources.sh 3.5
+      - name: Build and Run unit test for Spark 3.5.5 (slow tests)
+        run: |
+          cd $GITHUB_WORKSPACE/
+          yum install -y java-17-openjdk-devel
+          export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
+          export PATH=$JAVA_HOME/bin:$PATH
+          java -version
+          $MVN_CMD clean test -Pspark-3.5 -Pjava-17 -Pbackends-velox -Piceberg 
-Pdelta -Phudi -Ppaimon -Pspark-ut \
+          -DargLine="-Dspark.test.home=/opt/shims/spark35/spark_home/" \
+          -DtagsToInclude=org.apache.spark.tags.ExtendedSQLTest
+      - name: Upload test report
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ github.job }}-report
+          path: '**/surefire-reports/TEST-*.xml'
+      - name: Upload unit tests log files
+        if: ${{ !success() }}
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ github.job }}-test-log
+          path: |
+            **/target/*.log
+            **/gluten-ut/**/hs_err_*.log
+            **/gluten-ut/**/core.*
diff --git 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/extensions/TestGlutenMergeOnReadDelete.java
 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/extensions/TestGlutenMergeOnReadDelete.java
index 7133ae2748..f2fe3e3341 100644
--- 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/extensions/TestGlutenMergeOnReadDelete.java
+++ 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/extensions/TestGlutenMergeOnReadDelete.java
@@ -60,9 +60,4 @@ public class TestGlutenMergeOnReadDelete extends 
TestMergeOnReadDelete {
   public synchronized void testDeleteWithSnapshotIsolation() throws 
ExecutionException {
     System.out.println("Run timeout");
   }
-
-  @Test
-  public void testDeleteFileThenMetadataDelete() {
-    System.out.println("Does not support metadata deletion");
-  }
 }
diff --git 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/source/TestGlutenIcebergSourceHiveTables.java
 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/source/TestGlutenIcebergSourceHiveTables.java
index 3e75ecbc50..c3e921e324 100644
--- 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/source/TestGlutenIcebergSourceHiveTables.java
+++ 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/source/TestGlutenIcebergSourceHiveTables.java
@@ -16,26 +16,7 @@
  */
 package org.apache.gluten.source;
 
-import org.apache.iceberg.PartitionSpec;
-import org.apache.iceberg.Schema;
-import org.apache.iceberg.catalog.TableIdentifier;
-import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
 import org.apache.iceberg.spark.source.TestIcebergSourceHiveTables;
-import org.apache.iceberg.types.Types;
-import org.junit.Test;
-
-import static org.apache.iceberg.types.Types.NestedField.optional;
 
 // Fallback all the table scan because source table is metadata table with 
format avro.
-public class TestGlutenIcebergSourceHiveTables extends 
TestIcebergSourceHiveTables {
-  private static final Schema SCHEMA =
-      new Schema(
-          optional(1, "id", Types.IntegerType.get()), optional(2, "data", 
Types.StringType.get()));
-
-  @Test
-  public void testAllEntriesTable() {
-    TableIdentifier tableIdentifier = TableIdentifier.of("db", "entries_test");
-    createTable(tableIdentifier, SCHEMA, PartitionSpec.unpartitioned(), 
ImmutableMap.of());
-    System.out.println("Ignore because lack metadata");
-  }
-}
+public class TestGlutenIcebergSourceHiveTables extends 
TestIcebergSourceHiveTables {}
diff --git 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/sql/TestGlutenAggregatePushDown.java
 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/sql/TestGlutenAggregatePushDown.java
index a62b4f21f2..17a578bad8 100644
--- 
a/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/sql/TestGlutenAggregatePushDown.java
+++ 
b/backends-velox/src-iceberg-spark34/test/java/org/apache/gluten/sql/TestGlutenAggregatePushDown.java
@@ -16,54 +16,50 @@
  */
 package org.apache.gluten.sql;
 
-// import org.apache.gluten.TestConfUtil;
-//
-// import org.apache.iceberg.CatalogUtil;
-// import org.apache.iceberg.catalog.Namespace;
-// import org.apache.iceberg.exceptions.AlreadyExistsException;
-// import org.apache.iceberg.hive.HiveCatalog;
-// import org.apache.iceberg.hive.TestHiveMetastore;
-// import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
-// import org.apache.iceberg.spark.SparkTestBase;
-// import org.apache.iceberg.spark.sql.TestAggregatePushDown;
-// import org.apache.spark.sql.SparkSession;
-// import org.junit.BeforeClass;
-// import org.junit.Ignore;
-//
-// import java.util.Map;
+import org.apache.gluten.TestConfUtil;
 
-// The aggregate push down is described in 
https://github.com/apache/iceberg/pull/6252, which uses
-// statistic to get the result by LocalTableScan, Now stats is not supported.
-// @Ignore
-// public class TestGlutenAggregatePushDown extends TestAggregatePushDown {
-//  public TestGlutenAggregatePushDown(
-//      String catalogName, String implementation, Map<String, String> config) 
{
-//    super(catalogName, implementation, config);
-//  }
-//
-//  @BeforeClass
-//  public static void startMetastoreAndSpark() {
-//    SparkTestBase.metastore = new TestHiveMetastore();
-//    metastore.start();
-//    SparkTestBase.hiveConf = metastore.hiveConf();
-//
-//    SparkTestBase.spark =
-//        SparkSession.builder()
-//            .master("local[2]")
-//            .config("spark.sql.iceberg.aggregate_pushdown", "true")
-//            .config(TestConfUtil.GLUTEN_CONF)
-//            .enableHiveSupport()
-//            .getOrCreate();
-//
-//    SparkTestBase.catalog =
-//        (HiveCatalog)
-//            CatalogUtil.loadCatalog(
-//                HiveCatalog.class.getName(), "hive", ImmutableMap.of(), 
hiveConf);
-//
-//    try {
-//      catalog.createNamespace(Namespace.of("default"));
-//    } catch (AlreadyExistsException ignored) {
-//      // the default namespace already exists. ignore the create error
-//    }
-//  }
-// }
+import org.apache.iceberg.CatalogUtil;
+import org.apache.iceberg.catalog.Namespace;
+import org.apache.iceberg.exceptions.AlreadyExistsException;
+import org.apache.iceberg.hive.HiveCatalog;
+import org.apache.iceberg.hive.TestHiveMetastore;
+import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
+import org.apache.iceberg.spark.SparkTestBase;
+import org.apache.iceberg.spark.sql.TestAggregatePushDown;
+import org.apache.spark.sql.SparkSession;
+import org.junit.BeforeClass;
+
+import java.util.Map;
+
+public class TestGlutenAggregatePushDown extends TestAggregatePushDown {
+  public TestGlutenAggregatePushDown(
+      String catalogName, String implementation, Map<String, String> config) {
+    super(catalogName, implementation, config);
+  }
+
+  @BeforeClass
+  public static void startMetastoreAndSpark() {
+    SparkTestBase.metastore = new TestHiveMetastore();
+    metastore.start();
+    SparkTestBase.hiveConf = metastore.hiveConf();
+
+    SparkTestBase.spark =
+        SparkSession.builder()
+            .master("local[2]")
+            .config("spark.sql.iceberg.aggregate_pushdown", "true")
+            .config(TestConfUtil.GLUTEN_CONF)
+            .enableHiveSupport()
+            .getOrCreate();
+
+    SparkTestBase.catalog =
+        (HiveCatalog)
+            CatalogUtil.loadCatalog(
+                HiveCatalog.class.getName(), "hive", ImmutableMap.of(), 
hiveConf);
+
+    try {
+      catalog.createNamespace(Namespace.of("default"));
+    } catch (AlreadyExistsException ignored) {
+      // the default namespace already exists. ignore the create error
+    }
+  }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to