mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
Tighten shim detection, profile repair, and install ordering while trimming over-specific doctor/info hints from the system-install path. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package setup
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/safedep/dry/usefulerror"
|
|
"github.com/safedep/pmg/errcodes"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestErrIfSystemInstallAllowed(t *testing.T) {
|
|
orig := setupGeteuid
|
|
t.Cleanup(func() { setupGeteuid = orig })
|
|
|
|
setupGeteuid = func() int { return 0 }
|
|
err := errIfSystemInstallAllowed()
|
|
if runtime.GOOS == "linux" {
|
|
assert.NoError(t, err)
|
|
} else {
|
|
require.Error(t, err)
|
|
usefulErr, ok := usefulerror.AsUsefulError(err)
|
|
require.True(t, ok)
|
|
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
|
|
}
|
|
|
|
setupGeteuid = func() int { return 1000 }
|
|
err = errIfSystemInstallAllowed()
|
|
require.Error(t, err)
|
|
usefulErr, ok := usefulerror.AsUsefulError(err)
|
|
require.True(t, ok)
|
|
if runtime.GOOS == "linux" {
|
|
assert.Equal(t, errcodes.PermissionDenied, usefulErr.Code())
|
|
} else {
|
|
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
|
|
}
|
|
}
|
|
|
|
func TestInstallSystemRequiresRoot(t *testing.T) {
|
|
orig := setupGeteuid
|
|
t.Cleanup(func() { setupGeteuid = orig })
|
|
|
|
setupGeteuid = func() int { return 1000 }
|
|
|
|
err := install(true)
|
|
require.Error(t, err)
|
|
usefulErr, ok := usefulerror.AsUsefulError(err)
|
|
require.True(t, ok)
|
|
if runtime.GOOS == "linux" {
|
|
assert.Equal(t, errcodes.PermissionDenied, usefulErr.Code())
|
|
} else {
|
|
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
|
|
}
|
|
}
|