@@ -160,6 +160,8 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
160160 err := utilerrors .NewAggregate (cleanUpErrs )
161161 framework .ExpectNoError (err , "while cleaning up" )
162162 }
163+ gcsfuseVersion , branch := specs .GCSFuseVersionAndBranch (gcsfuseVersionStr )
164+ kernelParamsSupported := branch == utils .MasterBranchName || gcsfuseVersion .AtLeast (version .MustParseSemantic (utils .MinGCSFuseKernelParamsVersion ))
163165
164166 // skipTestOrProceedWithBranch works by skipping tests for gcsfuse versions that do not support them.
165167 // These tests run against all non-managed driver versions, and for selected gke managed driver versions. This is because when
@@ -234,6 +236,9 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
234236 if gcsfuseVersionStr == "" {
235237 gcsfuseVersionStr = specs .GetGCSFuseVersion (ctx , f )
236238 }
239+ gcsfuseVersion := version .MustParseSemantic (gcsfuseVersionStr )
240+ stripUnsupportedMountOptions (& mountOptions , gcsfuseVersion )
241+
237242 ginkgo .By (fmt .Sprintf ("Running integration test %v with GCSFuse version %v" , testName , gcsfuseVersionStr ))
238243 gcsfuseTestBranch := skipTestOrProceedWithBranch (gcsfuseVersionStr , testName )
239244 ginkgo .By (fmt .Sprintf ("Running integration test %v with GCSFuse branch %v" , testName , gcsfuseTestBranch ))
@@ -331,7 +336,6 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
331336
332337 ginkgo .By ("Getting gcsfuse testsuite go version" )
333338
334- gcsfuseVersion := version .MustParseSemantic (gcsfuseVersionStr )
335339 gcsfuseGoVersionCommand := getGoParsingCommand (* gcsfuseVersion , gcsfuseTestBranch )
336340
337341 gcsfuseTestSuiteVersion := tPod .VerifyExecInPodSucceedWithOutput (f , specs .TesterContainerName , gcsfuseGoVersionCommand )
@@ -560,8 +564,11 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
560564 }
561565 init ()
562566 defer cleanup ()
563-
564- gcsfuseIntegrationTest (testNameReadLargeFiles , false , "implicit-dirs=true" , "file-system:enable-kernel-reader:false" )
567+ mountOptions := []string {"implicit-dirs=true" }
568+ if kernelParamsSupported {
569+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
570+ }
571+ gcsfuseIntegrationTest (testNameReadLargeFiles , false , mountOptions ... )
565572 })
566573
567574 ginkgo .It (testNamePrefixSucceed + testNameWriteLargeFiles + testNameSuffix (1 ), func () {
@@ -624,7 +631,11 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
624631 init ()
625632 defer cleanup ()
626633
627- gcsfuseIntegrationTest (testNameConcurrentOperations , false , "implicit-dirs=true" , "kernel-list-cache-ttl-secs=-1" , "file-system:enable-kernel-reader:false" )
634+ mountOptions := []string {"implicit-dirs=true" , "kernel-list-cache-ttl-secs=-1" }
635+ if kernelParamsSupported {
636+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
637+ }
638+ gcsfuseIntegrationTest (testNameConcurrentOperations , false , mountOptions ... )
628639 })
629640
630641 ginkgo .It (testNamePrefixSucceed + testNameKernelListCache + testNameSuffix (1 ), func () {
@@ -749,43 +760,71 @@ func (t *gcsFuseCSIGCSFuseIntegrationTestSuite) DefineTests(driver storageframew
749760 ginkgo .It (testNamePrefixSucceed + testNameInactiveStreamTimeout + testNameSuffix (1 ), func () {
750761 init ()
751762 defer cleanup ()
752- gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutDisabledSuite" , false , "read-inactive-stream-timeout=0s" , "file-system:enable-kernel-reader:false" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" )
763+ mountOptions := []string {"read-inactive-stream-timeout=0s" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" }
764+ if kernelParamsSupported {
765+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
766+ }
767+ gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutDisabledSuite" , false , mountOptions ... )
753768 })
754769
755770 ginkgo .It (testNamePrefixSucceed + testNameInactiveStreamTimeout + testNameSuffix (2 ), func () {
756771 init ()
757772 defer cleanup ()
758- gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutEnabledSuite/TestReaderCloses" , false , "read-inactive-stream-timeout=1s" , "file-system:enable-kernel-reader:false" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" )
773+ mountOptions := []string {"read-inactive-stream-timeout=1s" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" }
774+ if kernelParamsSupported {
775+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
776+ }
777+ gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutEnabledSuite/TestReaderCloses" , false , mountOptions ... )
759778 })
760779
761780 ginkgo .It (testNamePrefixSucceed + testNameInactiveStreamTimeout + testNameSuffix (3 ), func () {
762781 init ()
763782 defer cleanup ()
764- gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutEnabledSuite/TestReaderStaysOpenWithinTimeout" , false , "read-inactive-stream-timeout=1s" , "file-system:enable-kernel-reader:false" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" )
783+ mountOptions := []string {"read-inactive-stream-timeout=1s" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , inactive_stream_timeout_log_file ), "log-severity=trace" }
784+ if kernelParamsSupported {
785+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
786+ }
787+ gcsfuseIntegrationTest (testNameInactiveStreamTimeout + ":TestTimeoutEnabledSuite/TestReaderStaysOpenWithinTimeout" , false , mountOptions ... )
765788 })
766789
767790 ginkgo .It (testNamePrefixSucceed + testNameBufferedReads + testNameSuffix (1 ), func () {
768791 init ()
769792 defer cleanup ()
770- gcsfuseIntegrationTest (testNameBufferedReads + ":TestSequentialReadSuite" , false , "enable-buffered-read" , "file-system:enable-kernel-reader:false" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=1" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" )
793+ mountOptions := []string {"enable-buffered-read" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=1" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" }
794+ if kernelParamsSupported {
795+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
796+ }
797+ gcsfuseIntegrationTest (testNameBufferedReads + ":TestSequentialReadSuite" , false , mountOptions ... )
771798 })
772799
773800 ginkgo .It (testNamePrefixSucceed + testNameBufferedReads + testNameSuffix (2 ), func () {
774801 init ()
775802 defer cleanup ()
776- gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestRandomRead_LargeFile_Fallback" , false , "enable-buffered-read" , "file-system:enable-kernel-reader:false" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" )
803+ mountOptions := []string {"enable-buffered-read" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" }
804+ if kernelParamsSupported {
805+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
806+ }
807+ gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestRandomRead_LargeFile_Fallback" , false , mountOptions ... )
777808 })
778809
779810 ginkgo .It (testNamePrefixSucceed + testNameBufferedReads + testNameSuffix (3 ), func () {
780811 init ()
781812 defer cleanup ()
782- gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestRandomRead_SmallFile_NoFallback" , false , "enable-buffered-read" , "file-system:enable-kernel-reader:false" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" )
813+ mountOptions := []string {"enable-buffered-read" , "read-block-size-mb=8" , "read-max-blocks-per-handle=20" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" }
814+ if kernelParamsSupported {
815+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
816+ }
817+ gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestRandomRead_SmallFile_NoFallback" , false , mountOptions ... )
783818 })
784819
785820 ginkgo .It (testNamePrefixSucceed + testNameBufferedReads + testNameSuffix (4 ), func () {
786821 init ()
787822 defer cleanup ()
788- gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestNewBufferedReader_InsufficientGlobalPool_NoReaderAdded" , false , "enable-buffered-read" , "file-system:enable-kernel-reader:false" , "read-block-size-mb=8" , "read-max-blocks-per-handle=10" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "read-global-max-blocks=1" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" )
823+ mountOptions := []string {"enable-buffered-read" , "read-block-size-mb=8" , "read-max-blocks-per-handle=10" , "read-start-blocks-per-handle=2" , "read-min-blocks-per-handle=2" , "read-global-max-blocks=1" , "logging:format:json" , fmt .Sprintf ("logging:file-path:%s" , buffered_reads_log_file ), "log-severity=trace" }
824+ if kernelParamsSupported {
825+ mountOptions = append (mountOptions , "file-system:enable-kernel-reader:false" )
826+ }
827+ gcsfuseIntegrationTest (testNameBufferedReads + ":TestFallbackSuites/TestNewBufferedReader_InsufficientGlobalPool_NoReaderAdded" , false , mountOptions ... )
789828 })
790829
791830 ginkgo .It (testNamePrefixSucceed + testNameRenameSymlink + testNameSuffix (1 ), func () {
0 commit comments