mirror of
				https://github.com/containers/podman.git
				synced 2025-10-31 10:00:01 +08:00 
			
		
		
		
	 ee5153c545
			
		
	
	ee5153c545
	
	
	
		
			
			Adds provider detection for LibKrun in `pkg/provider/platform_darwin.go`. Changes the macOS version check to 13 instead of 11, and now uses the `semver` package to verify current version. Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package provider
 | |
| 
 | |
| import (
 | |
| 	"runtime"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/containers/podman/v5/pkg/machine/define"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestSupportedProviders(t *testing.T) {
 | |
| 	switch runtime.GOOS {
 | |
| 	case "darwin":
 | |
| 		if runtime.GOARCH == "arm64" {
 | |
| 			assert.Equal(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
 | |
| 		} else {
 | |
| 			assert.Equal(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
 | |
| 		}
 | |
| 	case "windows":
 | |
| 		assert.Equal(t, []define.VMType{define.WSLVirt, define.HyperVVirt}, SupportedProviders())
 | |
| 	case "linux":
 | |
| 		assert.Equal(t, []define.VMType{define.QemuVirt}, SupportedProviders())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestInstalledProviders(t *testing.T) {
 | |
| 	installed, err := InstalledProviders()
 | |
| 	assert.Nil(t, err)
 | |
| 	switch runtime.GOOS {
 | |
| 	case "darwin":
 | |
| 		// TODO: need to verify if an arm64 machine reports {applehv, libkrun}
 | |
| 		assert.Equal(t, []define.VMType{define.AppleHvVirt}, installed)
 | |
| 	case "windows":
 | |
| 		provider, err := Get()
 | |
| 		assert.Nil(t, err)
 | |
| 		assert.Contains(t, installed, provider)
 | |
| 	case "linux":
 | |
| 		assert.Equal(t, []define.VMType{define.QemuVirt}, installed)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestHasPermsForProvider(t *testing.T) {
 | |
| 	provider, err := Get()
 | |
| 	assert.Nil(t, err)
 | |
| 	assert.True(t, HasPermsForProvider(provider.VMType()))
 | |
| }
 | |
| 
 | |
| func TestHasBadPerms(t *testing.T) {
 | |
| 	switch runtime.GOOS {
 | |
| 	case "darwin":
 | |
| 		assert.False(t, HasPermsForProvider(define.QemuVirt))
 | |
| 	case "windows":
 | |
| 		assert.False(t, HasPermsForProvider(define.QemuVirt))
 | |
| 	case "linux":
 | |
| 		assert.False(t, HasPermsForProvider(define.AppleHvVirt))
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestBadSupportedProviders(t *testing.T) {
 | |
| 	switch runtime.GOOS {
 | |
| 	case "darwin":
 | |
| 		assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
 | |
| 		if runtime.GOARCH != "arm64" {
 | |
| 			assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, SupportedProviders())
 | |
| 		}
 | |
| 	case "windows":
 | |
| 		assert.NotEqual(t, []define.VMType{define.QemuVirt}, SupportedProviders())
 | |
| 	case "linux":
 | |
| 		assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, SupportedProviders())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestBadInstalledProviders(t *testing.T) {
 | |
| 	installed, err := InstalledProviders()
 | |
| 	assert.Nil(t, err)
 | |
| 	switch runtime.GOOS {
 | |
| 	case "darwin":
 | |
| 		assert.NotEqual(t, []define.VMType{define.QemuVirt}, installed)
 | |
| 		if runtime.GOARCH != "arm64" {
 | |
| 			assert.NotEqual(t, []define.VMType{define.AppleHvVirt, define.LibKrun}, installed)
 | |
| 		}
 | |
| 	case "windows":
 | |
| 		assert.NotContains(t, installed, define.QemuVirt)
 | |
| 	case "linux":
 | |
| 		assert.NotEqual(t, []define.VMType{define.AppleHvVirt}, installed)
 | |
| 	}
 | |
| }
 |