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

gyfora pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f5240c9f91 [FLINK-31284][tests] Increase KerberosLoginProvider test 
coverage
7f5240c9f91 is described below

commit 7f5240c9f912ec68c0b18b0022147eaa27992e4f
Author: Gabor Somogyi <[email protected]>
AuthorDate: Wed Mar 1 16:52:35 2023 +0100

    [FLINK-31284][tests] Increase KerberosLoginProvider test coverage
---
 .../token/hadoop/KerberosLoginProviderITCase.java  | 48 ++++++++++++++--------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git 
a/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
 
b/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
index b0cd1c055a2..bbf49ce136f 100644
--- 
a/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
+++ 
b/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
@@ -23,6 +23,8 @@ import org.apache.flink.configuration.Configuration;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.MockedStatic;
 
 import java.io.IOException;
@@ -49,8 +51,10 @@ import static org.mockito.Mockito.when;
  */
 public class KerberosLoginProviderITCase {
 
-    @Test
-    public void isLoginPossibleMustReturnFalseByDefault() throws IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void isLoginPossibleMustReturnFalseByDefault(boolean 
supportProxyUser)
+            throws IOException {
         Configuration configuration = new Configuration();
         KerberosLoginProvider kerberosLoginProvider = new 
KerberosLoginProvider(configuration);
 
@@ -58,12 +62,14 @@ public class KerberosLoginProviderITCase {
             UserGroupInformation userGroupInformation = 
mock(UserGroupInformation.class);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            assertFalse(kerberosLoginProvider.isLoginPossible(false));
+            
assertFalse(kerberosLoginProvider.isLoginPossible(supportProxyUser));
         }
     }
 
-    @Test
-    public void isLoginPossibleMustReturnFalseWithNonKerberos() throws 
IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void isLoginPossibleMustReturnFalseWithNonKerberos(boolean 
supportProxyUser)
+            throws IOException {
         Configuration configuration = new Configuration();
         KerberosLoginProvider kerberosLoginProvider = new 
KerberosLoginProvider(configuration);
 
@@ -72,12 +78,14 @@ public class KerberosLoginProviderITCase {
             
ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(false);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            assertFalse(kerberosLoginProvider.isLoginPossible(false));
+            
assertFalse(kerberosLoginProvider.isLoginPossible(supportProxyUser));
         }
     }
 
-    @Test
-    public void isLoginPossibleMustReturnTrueWithKeytab(@TempDir Path tmpDir) 
throws IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void isLoginPossibleMustReturnTrueWithKeytab(
+            boolean supportProxyUser, @TempDir Path tmpDir) throws IOException 
{
         Configuration configuration = new Configuration();
         configuration.setString(KERBEROS_LOGIN_PRINCIPAL, "principal");
         final Path keyTab = Files.createFile(tmpDir.resolve("test.keytab"));
@@ -89,12 +97,13 @@ public class KerberosLoginProviderITCase {
             ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(true);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            assertTrue(kerberosLoginProvider.isLoginPossible(false));
+            
assertTrue(kerberosLoginProvider.isLoginPossible(supportProxyUser));
         }
     }
 
-    @Test
-    public void isLoginPossibleMustReturnTrueWithTGT() throws IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void isLoginPossibleMustReturnTrueWithTGT(boolean supportProxyUser) 
throws IOException {
         Configuration configuration = new Configuration();
         configuration.setBoolean(KERBEROS_LOGIN_USETICKETCACHE, true);
         KerberosLoginProvider kerberosLoginProvider = new 
KerberosLoginProvider(configuration);
@@ -105,7 +114,7 @@ public class KerberosLoginProviderITCase {
             ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(true);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            assertTrue(kerberosLoginProvider.isLoginPossible(false));
+            
assertTrue(kerberosLoginProvider.isLoginPossible(supportProxyUser));
         }
     }
 
@@ -143,8 +152,10 @@ public class KerberosLoginProviderITCase {
         }
     }
 
-    @Test
-    public void doLoginMustLoginWithKeytab(@TempDir Path tmpDir) throws 
IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void doLoginMustLoginWithKeytab(boolean supportProxyUser, @TempDir 
Path tmpDir)
+            throws IOException {
         Configuration configuration = new Configuration();
         configuration.setString(KERBEROS_LOGIN_PRINCIPAL, "principal");
         final Path keyTab = Files.createFile(tmpDir.resolve("test.keytab"));
@@ -155,13 +166,14 @@ public class KerberosLoginProviderITCase {
             UserGroupInformation userGroupInformation = 
mock(UserGroupInformation.class);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            kerberosLoginProvider.doLogin(false);
+            kerberosLoginProvider.doLogin(supportProxyUser);
             ugi.verify(() -> 
UserGroupInformation.loginUserFromKeytab(anyString(), anyString()));
         }
     }
 
-    @Test
-    public void doLoginMustLoginWithTGT() throws IOException {
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    public void doLoginMustLoginWithTGT(boolean supportProxyUser) throws 
IOException {
         Configuration configuration = new Configuration();
         configuration.setBoolean(KERBEROS_LOGIN_USETICKETCACHE, true);
         KerberosLoginProvider kerberosLoginProvider = new 
KerberosLoginProvider(configuration);
@@ -171,7 +183,7 @@ public class KerberosLoginProviderITCase {
             
when(userGroupInformation.hasKerberosCredentials()).thenReturn(true);
             
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
 
-            kerberosLoginProvider.doLogin(false);
+            kerberosLoginProvider.doLogin(supportProxyUser);
             ugi.verify(() -> UserGroupInformation.loginUserFromSubject(null));
         }
     }

Reply via email to