@@ -4515,7 +4515,7 @@ func TestIsTarFileReference(t *testing.T) {
45154515 }
45164516}
45174517
4518- // TestEnforceLocalResolutionForTarFiles tests the automatic enforcement of local resolution when tar files are detected.
4518+ // TestEnforceLocalResolutionForTarFiles tests the automatic enforcement of local resolution when tar files or oci-dir are detected.
45194519// Container-security scan-type related test function.
45204520func TestEnforceLocalResolutionForTarFiles (t * testing.T ) {
45214521 testCases := []struct {
@@ -4530,15 +4530,20 @@ func TestEnforceLocalResolutionForTarFiles(t *testing.T) {
45304530 {"Already enabled" , "alpine.tar" , true , true , false },
45314531 {"Only image:tag" , "nginx:latest,alpine:3.18" , false , false , false },
45324532 {"Non-tar prefixes" , "docker:nginx:latest,registry:ubuntu:22.04" , false , false , false },
4533- {"Invalid tar:tag format" , "oci-dir:file.tar:latest" , false , false , false },
45344533
4535- // Should enable local resolution
4534+ // Should enable local resolution - tar files
45364535 {"Single tar" , "alpine.tar" , false , true , true },
45374536 {"Mixed tar+image" , "nginx:latest,alpine.tar" , false , true , true },
45384537 {"Tar with spaces/quotes" , " 'alpine.tar' ,nginx:latest" , false , true , true },
45394538 {"Prefixed tar" , "docker-archive:alpine.tar" , false , true , true },
45404539 {"oci-dir tar" , "oci-dir:image.tar" , false , true , true },
45414540 {"Tar at end" , "nginx:latest,ubuntu.tar" , false , true , true },
4541+
4542+ // Should enable local resolution - oci-dir directories
4543+ {"oci-dir directory" , "oci-dir:my-alpine-image" , false , true , true },
4544+ {"oci-dir with path" , "oci-dir:/path/to/oci-layout" , false , true , true },
4545+ {"oci-dir with tag suffix" , "oci-dir:file.tar:latest" , false , true , true },
4546+ {"Mixed oci-dir+image" , "nginx:latest,oci-dir:my-image" , false , true , true },
45424547 }
45434548
45444549 for _ , tc := range testCases {
@@ -4578,7 +4583,7 @@ func TestEnforceLocalResolutionForTarFiles(t *testing.T) {
45784583 t .Errorf ("Expected local resolution=%v, got=%v" , tc .expectedLocalResolution , actualLocalResolution )
45794584 }
45804585
4581- hasWarning := strings .Contains (output , "Warning:" ) && strings .Contains (output , "Tar file" )
4586+ hasWarning := strings .Contains (output , "Warning:" ) && ( strings .Contains (output , "Tar file" ) || strings . Contains ( output , "oci-dir" ) )
45824587 if tc .expectWarning && ! hasWarning {
45834588 t .Errorf ("Expected warning but got: %s" , output )
45844589 } else if ! tc .expectWarning && hasWarning {
0 commit comments