You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							894 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							29 lines
						
					
					
						
							894 B
						
					
					
				
								package util
							 | 
						|
								
							 | 
						|
								import "testing"
							 | 
						|
								
							 | 
						|
								func TestParseMinFreeSpace(t *testing.T) {
							 | 
						|
									tests := []struct {
							 | 
						|
										in    string
							 | 
						|
										ok    bool
							 | 
						|
										value *MinFreeSpace
							 | 
						|
									}{
							 | 
						|
										{in: "42", ok: true, value: &MinFreeSpace{Type: AsPercent, Percent: 42, Raw: "42"}},
							 | 
						|
										{in: "-1", ok: false, value: nil},
							 | 
						|
										{in: "101", ok: false, value: nil},
							 | 
						|
										{in: "100B", ok: false, value: nil},
							 | 
						|
										{in: "100Ki", ok: true, value: &MinFreeSpace{Type: AsBytes, Bytes: 100 * 1024, Raw: "100Ki"}},
							 | 
						|
										{in: "100GiB", ok: true, value: &MinFreeSpace{Type: AsBytes, Bytes: 100 * 1024 * 1024 * 1024, Raw: "100GiB"}},
							 | 
						|
										{in: "42M", ok: true, value: &MinFreeSpace{Type: AsBytes, Bytes: 42 * 1000 * 1000, Raw: "42M"}},
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									for _, p := range tests {
							 | 
						|
										got, err := ParseMinFreeSpace(p.in)
							 | 
						|
										if p.ok != (err == nil) {
							 | 
						|
											t.Errorf("failed to test %v", p.in)
							 | 
						|
										}
							 | 
						|
										if p.ok && err == nil && *got != *p.value {
							 | 
						|
											t.Errorf("failed to test %v", p.in)
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 |