diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index f95111e..20fef82 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -2376,6 +2376,8 @@
                     str = applyS3Substitution(str, placeholders);
                 } else if (placeholder.getValue().equalsIgnoreCase("AzureBlob")) {
                     str = applyAzureSubstitution(str, placeholders);
+                } else if (placeholder.getValue().equalsIgnoreCase("GCS")) {
+                    str = applyGCSSubstitution(str, placeholders);
                 }
             } else {
                 // Any other place holders, just replace with the value
@@ -2481,6 +2483,11 @@
         return str;
     }
 
+    protected String applyGCSSubstitution(String str, List<Placeholder> placeholders) {
+        str = setGCSTemplateDefault(str);
+        return str;
+    }
+
     protected String setAzureTemplate(String str) {
         return str.replace("%template%", TEMPLATE);
     }
@@ -2489,6 +2496,10 @@
         return str.replace("%template%", TEMPLATE_DEFAULT);
     }
 
+    protected String setGCSTemplateDefault(String str) {
+        return str;
+    }
+
     protected void fail(boolean runDiagnostics, TestCaseContext testCaseCtx, CompilationUnit cUnit,
             List<TestFileContext> testFileCtxs, ProcessBuilder pb, File testFile, Exception e) throws Exception {
         if (runDiagnostics) {
