mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 00:49:03 +00:00
#9253 - ~[ ] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information.~ - ~[ ] Documented any API changes (docs/Using-Fleet/REST-API.md or docs/Contributing/API-for-contributors.md)~ - ~[ ] Documented any permissions changes~ - ~[ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements)~ - ~[ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features.~ - [X] Added/updated tests - [X] Manual QA for all new/changed functionality - For Orbit and Fleet Desktop changes: - [X] Manual QA must be performed in the three main OSs, macOS, Windows and Linux. - ~[ ] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)).~ --------- Co-authored-by: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com>
110 lines
3.1 KiB
Go
110 lines
3.1 KiB
Go
//go:build darwin
|
|
// +build darwin
|
|
|
|
package pmset
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestParsePMSetOutput(t *testing.T) {
|
|
// pmset -g
|
|
sampleOutput := []byte(`System-wide power settings:
|
|
SleepDisabled 0
|
|
Currently in use:
|
|
lidwake 1
|
|
lowpowermode 0
|
|
standbydelayhigh 86400
|
|
proximitywake 1
|
|
standby 1
|
|
standbydelaylow 0
|
|
ttyskeepawake 1
|
|
hibernatemode 3
|
|
powernap 0
|
|
gpuswitch 2
|
|
hibernatefile /var/vm/sleepimage
|
|
highstandbythreshold 50
|
|
displaysleep 10
|
|
womp 1
|
|
networkoversleep 0
|
|
sleep 1 (sleep prevented by bluetoothd, coreaudiod)
|
|
acwake 0
|
|
halfdim 1
|
|
tcpkeepalive 1
|
|
disksleep 10`)
|
|
result := parsePMSetOutput(sampleOutput)
|
|
|
|
systemWide := result["System-wide power settings:"].(map[string]string)
|
|
require.NotNil(t, systemWide)
|
|
require.Equal(t, systemWide["SleepDisabled"], "0")
|
|
|
|
currInUse := result["Currently in use:"].(map[string]string)
|
|
require.Equal(t, currInUse["powernap"], "0")
|
|
require.Equal(t, currInUse["hibernatefile"], "/var/vm/sleepimage")
|
|
require.Equal(t, currInUse["highstandbythreshold"], "50")
|
|
require.Equal(t, currInUse["sleep"], "1 (sleep prevented by bluetoothd, coreaudiod)")
|
|
|
|
// pmset -g custom
|
|
sampleOutput = []byte(`Battery Power:
|
|
lidwake 1
|
|
lowpowermode 1
|
|
standbydelayhigh 86400
|
|
proximitywake 0
|
|
standby 1
|
|
standbydelaylow 10800
|
|
ttyskeepawake 1
|
|
hibernatemode 3
|
|
gpuswitch 2
|
|
powernap 0
|
|
hibernatefile /var/vm/sleepimage
|
|
highstandbythreshold 50
|
|
displaysleep 2
|
|
womp 0
|
|
networkoversleep 0
|
|
sleep 1
|
|
lessbright 1
|
|
halfdim 1
|
|
tcpkeepalive 1
|
|
acwake 0
|
|
disksleep 10
|
|
AC Power:
|
|
lidwake 1
|
|
lowpowermode 0
|
|
standbydelayhigh 86400
|
|
proximitywake 1
|
|
standby 1
|
|
standbydelaylow 0
|
|
ttyskeepawake 1
|
|
hibernatemode 3
|
|
powernap 0
|
|
gpuswitch 2
|
|
hibernatefile /var/vm/sleepimage
|
|
highstandbythreshold 50
|
|
displaysleep 10
|
|
womp 1
|
|
networkoversleep 0
|
|
sleep 1
|
|
acwake 0
|
|
halfdim 1
|
|
tcpkeepalive 1
|
|
disksleep 10
|
|
`)
|
|
result = parsePMSetOutput(sampleOutput)
|
|
|
|
batteryPower := result["Battery Power:"].(map[string]string)
|
|
require.NotNil(t, batteryPower)
|
|
require.Equal(t, batteryPower["powernap"], "0")
|
|
require.Equal(t, batteryPower["displaysleep"], "2")
|
|
require.Equal(t, batteryPower["highstandbythreshold"], "50")
|
|
require.Equal(t, batteryPower["hibernatefile"], "/var/vm/sleepimage")
|
|
require.Equal(t, batteryPower["disksleep"], "10")
|
|
|
|
acPower := result["AC Power:"].(map[string]string)
|
|
require.Equal(t, acPower["powernap"], "0")
|
|
require.Equal(t, acPower["displaysleep"], "10")
|
|
require.Equal(t, acPower["highstandbythreshold"], "50")
|
|
require.Equal(t, acPower["hibernatefile"], "/var/vm/sleepimage")
|
|
require.Equal(t, acPower["disksleep"], "10")
|
|
}
|