31 lines
887 B
Go
31 lines
887 B
Go
package platform
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func TestAmd64CpuId_cpuHasFeature(t *testing.T) {
|
|
flags := cpuFeatureFlags{
|
|
flags: uint64(CpuFeatureAmd64SSE3),
|
|
extraFlags: uint64(CpuExtraFeatureAmd64ABM),
|
|
}
|
|
require.True(t, flags.Has(CpuFeatureAmd64SSE3))
|
|
require.False(t, flags.Has(CpuFeatureAmd64SSE4_2))
|
|
require.True(t, flags.HasExtra(CpuExtraFeatureAmd64ABM))
|
|
require.False(t, flags.HasExtra(1<<6)) // some other value
|
|
}
|
|
|
|
func TestAmd64CpuFeatureFlags_Raw(t *testing.T) {
|
|
flags := cpuFeatureFlags{
|
|
flags: uint64(CpuFeatureAmd64SSE3 | CpuFeatureAmd64SSE4_1 | CpuFeatureAmd64SSE4_2),
|
|
extraFlags: uint64(CpuExtraFeatureAmd64ABM),
|
|
}
|
|
require.Equal(t, uint64(0b1111), flags.Raw())
|
|
flags.flags = 0
|
|
require.Equal(t, uint64(0b1000), flags.Raw())
|
|
flags.extraFlags = 0
|
|
require.Equal(t, uint64(0), flags.Raw())
|
|
}
|