mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Speed up enry.IsVendor (#15213)
				
					
				
			`enry.IsVendor` is kinda slow as it simply iterates across all regexps. This PR ajdusts the regexps to combine them to make this process a little quicker. Related #15143 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										42
									
								
								modules/analyze/vendor_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								modules/analyze/vendor_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
// Copyright 2021 The Gitea Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package analyze
 | 
			
		||||
 | 
			
		||||
import "testing"
 | 
			
		||||
 | 
			
		||||
func TestIsVendor(t *testing.T) {
 | 
			
		||||
	tests := []struct {
 | 
			
		||||
		path string
 | 
			
		||||
		want bool
 | 
			
		||||
	}{
 | 
			
		||||
		{"cache/", true},
 | 
			
		||||
		{"random/cache/", true},
 | 
			
		||||
		{"cache", false},
 | 
			
		||||
		{"dependencies/", true},
 | 
			
		||||
		{"Dependencies/", true},
 | 
			
		||||
		{"dependency/", false},
 | 
			
		||||
		{"dist/", true},
 | 
			
		||||
		{"dist", false},
 | 
			
		||||
		{"random/dist/", true},
 | 
			
		||||
		{"random/dist", false},
 | 
			
		||||
		{"deps/", true},
 | 
			
		||||
		{"configure", true},
 | 
			
		||||
		{"a/configure", true},
 | 
			
		||||
		{"config.guess", true},
 | 
			
		||||
		{"config.guess/", false},
 | 
			
		||||
		{".vscode/", true},
 | 
			
		||||
		{"doc/_build/", true},
 | 
			
		||||
		{"a/docs/_build/", true},
 | 
			
		||||
		{"a/dasdocs/_build-vsdoc.js", true},
 | 
			
		||||
		{"a/dasdocs/_build-vsdoc.j", false},
 | 
			
		||||
	}
 | 
			
		||||
	for _, tt := range tests {
 | 
			
		||||
		t.Run(tt.path, func(t *testing.T) {
 | 
			
		||||
			if got := IsVendor(tt.path); got != tt.want {
 | 
			
		||||
				t.Errorf("IsVendor() = %v, want %v", got, tt.want)
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user