mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	… or could be in `opts` package. Having `runconfig/opts` and `opts` doesn't really make sense and make it difficult to know where to put some code. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package opts
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/docker/go-units"
 | 
						|
)
 | 
						|
 | 
						|
func TestUlimitOpt(t *testing.T) {
 | 
						|
	ulimitMap := map[string]*units.Ulimit{
 | 
						|
		"nofile": {"nofile", 1024, 512},
 | 
						|
	}
 | 
						|
 | 
						|
	ulimitOpt := NewUlimitOpt(&ulimitMap)
 | 
						|
 | 
						|
	expected := "[nofile=512:1024]"
 | 
						|
	if ulimitOpt.String() != expected {
 | 
						|
		t.Fatalf("Expected %v, got %v", expected, ulimitOpt)
 | 
						|
	}
 | 
						|
 | 
						|
	// Valid ulimit append to opts
 | 
						|
	if err := ulimitOpt.Set("core=1024:1024"); err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	// Invalid ulimit type returns an error and do not append to opts
 | 
						|
	if err := ulimitOpt.Set("notavalidtype=1024:1024"); err == nil {
 | 
						|
		t.Fatalf("Expected error on invalid ulimit type")
 | 
						|
	}
 | 
						|
	expected = "[nofile=512:1024 core=1024:1024]"
 | 
						|
	expected2 := "[core=1024:1024 nofile=512:1024]"
 | 
						|
	result := ulimitOpt.String()
 | 
						|
	if result != expected && result != expected2 {
 | 
						|
		t.Fatalf("Expected %v or %v, got %v", expected, expected2, ulimitOpt)
 | 
						|
	}
 | 
						|
 | 
						|
	// And test GetList
 | 
						|
	ulimits := ulimitOpt.GetList()
 | 
						|
	if len(ulimits) != 2 {
 | 
						|
		t.Fatalf("Expected a ulimit list of 2, got %v", ulimits)
 | 
						|
	}
 | 
						|
}
 |